ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
![](https://ws1.sinaimg.cn/large/006tNc79ly1g1sogauqq4j30k009gq36.jpg) 不是所有的程序都可以在官方或者第三方库中找到,因此你不能使用常规的包管理来安装它们。有时你不得不从源代码中手动构建这些程序。就如你已经知道的一样,当你从源代码中安装一个程序的时候,这个软件包所包含的文件将会复制到本地的多个位置,例如 `/usr/local/bin`、`/usr/local/etc/`。如果从源代码中安装的程序没有内置的卸载程序,当你不再需要这个程序的时候,卸载它就会很麻烦。你可能会花费双倍(甚至更多)的时间找出这些文件然后手动删除它们。我以前一直是这样做的,直到我发现了 GNU Stow。 引用官方网站里的一段介绍: > GNU Stow 是一个符号链接归集管理器,它可以收集文件系统上不同目录中的不同软件和/或数据包,使它们看起来像是一个整体。 ## 安装 ```bash # centos/redhat $ sudo yum install epel-release $ sudo yum install stow # ubuntu $ sudo apt install stow ``` ## 安装测试软件 ```bash $ wget http://dl.echosoul.cn/hello-2.10.tar.gz $ tar xf hello-2.10.tar.gz $ cd hello-2.10 $ ./conifgure --prefix=/usr/local/stow/hello $ make && make install ``` ## 创建连接 ~~~bash $ cd /usr/local/stow/ $ sudo stow hello ~~~ 刚才那一步是将包含在 hello 这个程序中的所有文件或者目录创建了链接到 `/usr/local/` 目录中。换一种说法, `/usr/local/stow/hello/bin` 链接到 `/usr/local/bin`,以及 `/usr/local/stow/hello/share/man` 链接到 `/usr/local/share`,还有 `/usr/local/stow/hello/share/man` 链接到 `/usr/local/share/man` ## 删除 ```bash $ sudo stow --delete hello ```