stow

之前一直在debian

Gnu Stow主要用来管理以makefile方式安装的程序。

原理是安装时指定prefix到用户管理的文件夹,stow可以帮忙在真正的sysroot下建立符号链接,需要删除程序的时候就不会删错删漏了。

使用Gnu Stow管理安装

参考: http://fatmouse.xyz/2016/03/07/2016-03-07-manage-package-using-stow/

建立stow文件夹

1
mkdir /usr/local/stow

安装程序时:

1
2
3
./configure --prefix=/usr/local/stow/ruby
make
sudo make install

安装后执行映射,创建软链接:

1
2
cd /usr/local/stow
sudo stow ruby

需要卸载程序时:

1
2
3
cd /usr/local/stow
sudo stow --delete ruby
rm -rf ruby

使用Gnu Stow管理linux配置文件

参考:http://brandon.invergo.net/news/2012-05-26-using-gnu-stow-to-manage-your-dotfiles.html

例如,假设您要管理Bash,VIM和Uzbl的配置。Bash在顶级目录中有几个文件; VIM通常在顶级和.vim目录中有.vimrc文件; 和Uzbl在${XDG_CONFIG_HOME}/uzbl和中有文件 ${XDG_DATA_HOME}/uzbl。因此,您的主目录如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
home/
brandon/
.config/
uzbl/
[...some files]
.local/
share/
uzbl/
[...some files]
.vim/
[...some files]
.bashrc
.bash_profile
.bash_logout
.vimrc

然后,您将创建一个dotfiles子目录并将所有文件移动到那里:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
home/
/brandon/
.config/
.local/
.share/
dotfiles/
bash/
.bashrc
.bash_profile
.bash_logout
uzbl/
.config/
uzbl/
[...some files]
.local/
share/
uzbl/
[...some files]
vim/
.vim/
[...some files]
.vimrc

然后,执行以下命令:

1
2
3
4
$ cd ~/dotfiles
$ stow bash
$ stow uzbl
$ stow vim