组织本地构建

组织本地构建

对于那些在没有 root 权限的机器上工作的人来说,一个常见的事情是在本地构建自己喜欢的工具的小套装。

工作流程有点像这样:

tar xvzf fav_tool.tar.xvzf
cd fav_tool
./configure --prefix=$HOME
make install

它往往会变得有点混乱。您的主文件夹中会出现类似bin/, etc/, include, lib/和 的文件夹。source/您必须管理依赖项和$PATH.有一个聪明的方法来做到这一点吗?有没有工具可以在本地跟踪您的包裹?

答案1

它往往会变得有点混乱。您的主文件夹中会出现 bin/、etc/、include、lib/ 和 source/ 等文件夹。

通过选择,是的。如果这看起来不整洁,你可以使用

./configure --prefix=$HOME/mytools

反而。然后您将需要将其添加到您的 $PATH,或者,如果$HOME/bin已经是其中的一部分,您可以将当前的所有内容移入$HOME/mytools/bin

rm ~/bin
ln -s ~/mytools/bin ~/bin

如果您的工具将内容放入~/mytools/lib,您还需要LD_LIBRARY_PATH在某处进行适当的设置。

如果您使用通常用于设置环境变量的任何初始化文件,则这只需要完成一次,并且需要大约一分钟的时间。

你必须管理依赖关系

如果“管理”是指解决安装问题,那么这就是 的主要目的./configure。如果它不能正确完成这项工作,第三方工具不太可能做得更好。它可能,但也可能会这样做更差

如果您的意思是其他东西,那么“依赖”概念中确实不涉及任何其他内容。如果您的意思是您想要解决此问题的工具,下载依赖项并为您安装它,那么这就是普通包管理器的用途 - 但请记住您决定不需要预构建的二进制文件。您正在从源头构建。

非常不幸的是,Linux 包管理器对于非特权用户来说大多不友好或无用,但这是一个单独的问题(也是一个单独的问题,根据发行版有不同的答案)。

有没有工具可以在本地跟踪您的包裹?

是的,源代码包本身。当你构建时,解压到~/mytools/src.您可以将构建目录保留在那里,或者只保留 tarball。当你想卸载某些东西时,你只需进入相关目录(如果需要,再次解压它)和make uninstall.

系统永远不会将该src目录用于任何用途。它只包含您放入其中的内容,因此只要您不删除下载的内容,您就会有一个本地安装的源构建软件的整洁列表,其中包含实际用于构建所有内容的源。

相关内容