在 /usr 中的 Linux 上跟踪自定义软件安装的最佳实践?

在 /usr 中的 Linux 上跟踪自定义软件安装的最佳实践?

我在 Linux 上自己编译和安装软件(我使用的是 Debian Squeeze)。下载、解压、安装依赖的开发库/头文件,然后运行 ​​configure 和 make。

到目前为止,所有内容仍保留在源目录中。一旦我运行,基本上我就会开始在或make install中放置非软件包文件(取决于开关)。/usr/local/usr--path

我也尝试将它安装到不同的地方,例如/opt,但这经常会在某些地方引起麻烦。也就是说,我总是要记得将它专门添加到标头/链接器路径中。或者我在那里安装了一个包,但整个系统pkg-config都不知道它(我又需要添加额外的标志)。即使我安装了 中的每个自定义软件/opt,我也不知道bin/等中的所有这些文件lib/彼此属于哪些。如果我开始将它们安装到/opt/software1/,维护问题就会成倍增加,我必须跟踪更多路径,我需要添加这些路径来编译其他包,或者需要将它们放在 LD 库路径中,等等。

但是当我直接在其中安装软件时,/usr我感觉很糟糕,无法再正确分辨我的自定义安装文件属于哪个位置。很容易确定给定文件是否属于某个包,但如果不属于,在大型自定义安装中,记住或弄清楚文件属于哪里会很麻烦。

当我想删除文件时,情况会变得更糟。它们分散在、、等中。bin/因此lib/man/如果我想完全删除自定义安装的软件包,我必须执行手动操作,或者最糟糕的情况是,我无法再确定所有软件包,并且会留下陈旧的文件。

我知道我也可以开始用它构建自定义包。但这需要我预先分析我安装的每个软件吗?我没有创建.deb文件的实际经验,也不打算将它们分发到其他安装中。我想要的只是一种跟踪自定义本地安装的好方法。

我可能可以自己想出一些办法,即列出所有文件(find / ...),安装软件,然后再次执行此操作并将差异保存在某处。我只是想知道是否有更好的方法。

答案1

你有没有尝试过检查安装(它在 Debian 仓库中)?

make install您可以使用而不是使用checkinstall,它将创建(并安装)一个包含软件的包,以便您可以使用包管理器来跟踪它。

答案2

既然您要求最佳实践:最好的做法是不要安装不在存储库中的软件。如果这不可能,那么最佳做法是从中构建软件包并使用系统软件包管理器来管理它们。

您需要想出一种方法来检查重要更新,但具体怎么做取决于您自己。但如果有更新,您需要重新构建并从新软件包进行更新。

答案3

我不知道你最终是否会发现这很有用,但我至少会分享它:“… NetBSD 软件包集合 (pkgsrc) 是一个在 NetBSD 上构建第三方软件的框架和其他类 UNIX 系统…”

相关内容