一般来说,当我构建任何程序(例如,等等)时,我遵循以下emacs
工作tmux
流程
/home/opt/[name of the program]/builds/[version]/
bin
lib
share
例如,对于像我这样的程序,tmux
有以下内容:
/my_local_opt/tmux/builds/1.7.-227/
bin
lib
share
然后,我创建符号链接来/home/bin/
指向我拥有的特定构建,并且我永远不必触及我的PATH
变量,因为我将其修复为包含/home/bin
.
例如对于上面的例子,我会
- 创建符号链接:从:
/home/bin/tmux
到:/my_local_opt/tmux/builds/1.7.-227/bin/tmux
- 只
PATH
包含/home/bin
但是,我不确定是否可以对man
( MANPATH
) 和lib
( LD_LIBRARY_PATH
) 路径采用类似的方法。
例如,在我构建之后,
tmux
我注意到它创建了:.. /share/man/man1/tmux.1
所以我尝试从类似的地方创建到该文件的符号链接
/home/share
,然后修复MANPATH
以包含该路径。但是当我输入时man tmux
它不起作用(它说“No manual entry for tmux
”)。为什么?怎么样
lib
?我想我也许可以修复LD_LIBRARY_PATH
每个程序的特定目录,然后使用符号链接来控制包含哪个版本。这是个好主意吗?
更一般地说,使用符号链接管理系统中的版本是个好主意吗?从长远来看,我希望将符号链接保留在 git 存储库中以跟踪多个配置。
我在构建软件的计算机上没有管理员权限,因此我希望使用它作为一种轻松组织和管理我的构建的方式(无需不断编辑保存路径的环境变量)
答案1
您的目标与Gentoo 前缀系统;然而,它不会单独保存构建的应用程序,也不会将符号链接存储在 Git 中。
LD_LIBRARY_PATH
但是,它将修复您的联机帮助页和库需求(需要设置警告,或者配置和二进制文件具有硬编码的特定路径)。
另外,git-of-symlinks 模型本身在概念上与 OverlayFS/AUFS 模型类似,但有更多的混合和匹配。