标签: stow

XStow 和 Stow 的区别

根据XStow官方消息,该软件包最后更新于 2010-07-22。另一方面,GNU Stow git 存储库(由 Adam Spiers 维护)仅在 10 天前有活动,最新的稳定版本于 2012 年 2 月 18 日发布。

我可以在网上找到的关于 Stow 和 XStow 日期之间差异的大部分信息都是多年前的,并且似乎没有反映最近的任何变化。

有了这个,对 GNU Stow 和 XStow 之间的差异的现代看法是什么?

stow

12
推荐指数
1
解决办法
3112
查看次数

GNU Stow 可以使用作为符号链接的 stow 目录吗?

考虑这个脚本。

#! /usr/bin/env bash

mkdir -p target
mkdir -p mydir/package/
touch mydir/package/file

ln --symbolic mydir mylink
file mylink

stow --verbose --dir=./mylink --target=./target package

file target/file
Run Code Online (Sandbox Code Playgroud)

输出是

mylink: symbolic link to mydir
LINK: file => ../mydir/package/file
target/file: symbolic link to ../mydir/package/file
Run Code Online (Sandbox Code Playgroud)

在运行之前stow,它看起来像这样:

.
??? mydir
?   ??? package
?       ??? file
??? mylink -> mydir
??? target
Run Code Online (Sandbox Code Playgroud)

运行stow, on 后mylink,我希望它看起来像这样:

.
??? mydir
?   ??? package
?       ??? file
??? mylink -> mydir
??? target …
Run Code Online (Sandbox Code Playgroud)

symlink stow

10
推荐指数
1
解决办法
2812
查看次数

GNU Stow:如何仅存放选定的文件/文件夹?

让我们假设一个名为scripts.

??? scripts
?   ??? .scripts
?       ??? script1
?       ??? script2
?       ??? script3
?   ??? .config
?       ??? script4
?       ??? script5
?       ??? script6
Run Code Online (Sandbox Code Playgroud)

使用时stow scripts,其中的两个文件夹都scripts将符号链接到~/.scripts~/.config

我可以使用 stow 仅符号链接.scripts而不必.config从文件夹中删除但基本上忽略它吗?

stow

8
推荐指数
2
解决办法
3984
查看次数

与 GNU Stow 的“--adopt”选项相反?

我按照本指南使用GNU Stow来管理我的点文件。这对于机器上没有预先存在的点文件的情况非常有效。例如,如果没有文件,则以下内容可以正常工作:~/.config/foo.cfg

~/.dotfiles$ mkdir -p foo/.config
~/.dotfiles$ echo My config > foo/.config/foo.cfg
~/.dotfiles$ stow foo
~/.dotfiles$ ls -l ~/.config
lrwxrwxrwx 1 user group 21 Dec  6 19:03 ~/.config -> .dotfiles/foo/.config
Run Code Online (Sandbox Code Playgroud)

~/.config/foo.cfg如果已经存在,它就变得不那么简单:

~/.dotfiles$ stow foo
WARNING! stowing bar would cause conflicts:
  * existing target is neither a link nor a directory: foo.cfg
All operations aborted.
Run Code Online (Sandbox Code Playgroud)

到目前为止,我能找到的唯一解决方案是手动删除~/.config/foo.cfg并重新运行stow foo. 当向可能有数十个预先存在的 .dot 文件的新计算机配置 stow 存储库时,这是相当尴尬的,并且基本上违背了使用 stow 管理点文件的目的。

斯托有--adopt选择权。运行的stow --adopt foo效果是用计算机上 …

dot-files stow

8
推荐指数
1
解决办法
2150
查看次数

GNU stow 链接所有文件,而不仅仅是二进制文件

我必须做什么才能stow正确链接二进制文件(也许还有手册页)?

我想使用 GNUstow来管理我机器上的本地安装。但是,stow不会简单地对二进制文件进行符号链接,而是对程序文件夹中的所有文件进行符号链接。到目前为止我做了什么:

  • 创建了一个扩展的 stow-ignore 文件
  • 使用src/除二进制文件以外的所有文件所在的子文件夹,并手动更改 Makefile 以创建bin/子文件夹。然后稍后删除链接的local/src/文件夹

我想一定有更好的方法,但我用stow错了。

例子

文件夹结构

~home/
 |~local/
   |+bin/     <-- binarys should go here
   |+share/   <-- man page
   |~stow/
     |-.stowrc
     |~dwm-6.0/
       |-Makefile
       |-dwm.c
       |-dwm.h
       |-dwm
       |-config.mk
       |-README
     |~hub-1.11/
       |~bin/
         |-hub
       |+etc/
       |+feature/
       |+githook/
       |+lib/
       |-Gemfile
       |-Rakefile
       |-hub.gemspec
Run Code Online (Sandbox Code Playgroud)

从这里我将进入stow/文件夹类型

stow dwm-6.0
Run Code Online (Sandbox Code Playgroud)

然后平放链接的所有文件复制到local/文件夹,而不是只有二进制dwmlocal/bin/文件夹中。我现在可以更改Makefile它,以便它创建一个dwm-6.0/bin/文件夹并将二进制文件移动到那里。然后stow至少会链接dwmlocal/bin/ …

stow

5
推荐指数
1
解决办法
1061
查看次数

Stow 不使用 rc 文件中给出的“忽略”选项

概括

--ignore=<regex>我放入的行.stowrc不起作用。运行 Stow 时,它显示“从 .stowrc 加载默认值”,但它没有任何效果。但是将--ignore=<regex>行传递给命令直接有效。

问题

假设这个目录:

user@user-machine:~/test-stow/stow$ tree -a
.
??? a
?   ??? car
??? .stowrc

1 directory, 2 files
Run Code Online (Sandbox Code Playgroud)

内容./.stowrc

--ignore='car'
Run Code Online (Sandbox Code Playgroud)

所以我的期望是,stow --verbose=3 a/在该目录中运行命令等同于stow --ignore='car' --verbose=3 a/./.stowrc文件不存在的情况下运行。

现在我运行:

user@user-machine:~/test-stow/stow$ stow --verbose=3 a
Loading defaults from .stowrc
stow dir is /home/user/test-stow/stow
stow dir path relative to target /home/user/test-stow is stow
cwd now /home/user/test-stow
cwd restored to /home/user/test-stow/stow
cwd now /home/user/test-stow
Planning stow of package …
Run Code Online (Sandbox Code Playgroud)

stow rc

5
推荐指数
1
解决办法
860
查看次数

预先指定默认的 GNU Stow 目标目录

TLDR:除了GNU Stow之外/usr/local,我可以预定义一个 stow 文件夹吗?

我在用于工作的机器上没有管理员权限,有人告诉我可以使用GNU Stow来管理我的安装。该工具看起来很棒,但在我阅读的文档中到处都是stow /usr/local用作构建符号链接场的安装目录。

不幸的是,这个文件夹已经由 填充root,我对/usr/local.

-t我可以在命令行中使用一个标志来指定目标目录,但由于我将始终使用相同的标志(我希望我的安装始终位于同一目标目录下),我想知道是否有办法使用我选择的默认路径。

software-installation symlink stow

3
推荐指数
1
解决办法
1032
查看次数

dotfiles: can/should(?) gnu stow 创建硬链接,所以我仍然可以使用 xfce 设置 gui 程序

我正在尝试在版本控制下管理我的点文件。我的 dotfiles 存储库包含一个xfce-base文件夹,该文件夹包含.config/xfce4/.../xy-setting.xml内容。我可以将符号链接或更好地存放到正确的位置,一切都按预期工作。

但是,当我打开其中一个 xfce 设置编辑器(窗口管理器、键盘快捷键)时,所做的更改确实用普通文件覆盖了我的符号链接。所以,再见版本控制。我想这不会发生,如果我有硬链接,对吗?是否可以使用 gnu stow 进行硬链接(看起来不是这样?),还是有其他选择?

编辑:我遇到了这个,有硬链接,但不能递归地工作(抱怨现有的 .config 目录......)

编辑二:我仍然不确定硬链接是否是一个好的解决方案。

hard-link dot-files stow

3
推荐指数
1
解决办法
1121
查看次数

标签 统计

stow ×8

dot-files ×2

symlink ×2

hard-link ×1

rc ×1

software-installation ×1