像大多数人一样,我偶尔会安装来自发行版存储库外部或“手工制作”的东西或编写/使用脚本,因此它们可能不会出现在系统默认路径中,或者不应添加到该路径中。
现在有不同的方法可以继续。
我可能只想偶尔运行或只需要在某个目录中运行的东西无论如何都可以保持原样,cd ~/stuff/fancyapp
然后./fancyexecutable
就足够了。
但有时,我可能希望能够简单地backup.sh
从我所在的任何位置执行某些操作,或者其他程序需要知道某个可执行文件,为此,我可以使用类似的内容更新我的 $PATH PATH=$PATH:~/bin/backup/
,export PATH
然后重新启动我的会议。然而,这导致我遇到一个问题:要么有一个“home bin”,我将每个可执行文件移动/符号链接到~/bin/
,要么当我想要有一个有序的 home bin 时,必须将每个子目录添加到我的路径中。 (或者,我可以将某些东西组合在一起以使路径递归)
bin
那么,处理您自己的具有多个可执行文件和子目录的正确、推荐和安全的方法是什么?
答案1
我将本地内置的所有软件安装到/home/user/.local
目录中。该目录基本上复制了/usr
您所看到的目录结构:
> ls ~/.local
bin etc include jars lib lib64 libexec man share
您可以指向构建工具将此目录设置为安装前缀。有些工具使用环境变量的值PREFIX
来确定安装位置,因此最好也设置它,但不要依赖它。
请注意,您必须相应地设置几个环境的值,例如PATH
, LD_LIBRARY_PATH
, PKG_CONFIG_PATH
, CLASSPATH
。