使用符号链接和 git 管理构建版本

使用符号链接和 git 管理构建版本

一般来说,当我构建任何程序(例如,等等)时,我遵循以下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) 路径采用类似的方法。

  1. 例如,在我构建之后,tmux我注意到它创建了:

    .. /share/man/man1/tmux.1

    所以我尝试从类似的地方创建到该文件的符号链接/home/share,然后修复MANPATH以包含该路径。但是当我输入时man tmux它不起作用(它说“ No manual entry for tmux”)。为什么?

  2. 怎么样lib?我想我也许可以修复LD_LIBRARY_PATH每个程序的特定目录,然后使用符号链接来控制包含哪个版本。这是个好主意吗?

更一般地说,使用符号链接管理系统中的版本是个好主意吗?从长远来看,我希望将符号链接保留在 git 存储库中以跟踪多个配置。

我在构建软件的计算机上没有管理员权限,因此我希望使用它作为一种轻松组织和管理我的构建的方式(无需不断编辑保存路径的环境变量)

答案1

您的目标与Gentoo 前缀系统;然而,它不会单独保存构建的应用程序,也不会将符号链接存储在 Git 中。

LD_LIBRARY_PATH但是,它将修复您的联机帮助页和库需求(需要设置警告,或者配置和二进制文件具有硬编码的特定路径)。

另外,git-of-symlinks 模型本身在概念上与 OverlayFS/AUFS 模型类似,但有更多的混合和匹配。

相关内容