我自己在 Linux 上编译和安装软件(在我的例子中是 Debian Squeeze)。下载、解包、安装依赖的开发者库/头文件,运行 configure 然后 make。
到目前为止,所有内容仍保留在源目录中。一旦我运行make install,基本上我开始在/usr/localor 中/usr放置非包文件(取决于--path开关)。
我也尝试将它安装到不同的地方,例如/opt,但这通常会在某处引起麻烦。即我总是记得将它专门添加到标题/链接器路径中。或者我在那里安装了一个包,但系统范围pkg-config内不知道它(我再次需要添加额外的标志)。即使我在尔德每安装定制软件/opt,我不知道它在所有这些文件bin/,等等lib/等等属于彼此。如果我开始将它们安装到/opt/software1/.
但是当我直接在其中安装软件时,我/usr感觉很糟糕,无法正确分辨我的自定义安装文件属于哪里。确定给定文件是否属于某个包很容易,但如果不属于,则在大型自定义安装中,很难记住或找出文件所属的位置。
当我想删除文件时,情况会变得更糟。它们分散在bin/、lib/、man/等中。 因此,如果我想完全删除自定义安装的软件包,则必须执行手动工作,或者在最坏的情况下,我不再能够确定所有这些,我将保持陈旧周围的文件。
我知道我也可以开始构建一个自定义包。但这需要我分析我预先安装的每个软件吗?我没有创建.deb文件的实际经验,也不打算将它们分发到其他安装。我想要的只是一种跟踪自定义本地安装的好方法。
我可能可以自己想出一些办法,即列出所有文件 ( find / ...),安装软件,然后再次执行此操作并将差异保存在某处。只是想知道是否有更好的方法。
小智 4
您是否尝试过checkinstall(它位于 Debian 存储库中)?
make install您可以使用而不是使用checkinstall,它将使用该软件创建(并安装)一个软件包,以便您可以使用软件包管理器跟踪它。