在 Linux 上从源安装时的良好实践

在 Linux 上从源安装时的良好实践

我想知道在 Linux 系统上编译和手动安装软件有哪些好的做法。我的意思是通过这种通常的方式获取、构建和安装代码:

git clone https://a-repo/foo.git
cd foo/
./configure
make
make install
  • 应该避免这种情况吗?或者推荐吗?也许为正在使用的发行版制作一个包更好?
  • 有一些管理版本和更新的技巧吗?
  • ./configure在做事时,尤其是在做事时,是否存在良好的做法--prefix= ?
  • 如何正确安装/卸载?我是否应该始终保留要执行的源make uninstall ?
  • 我见过一些工具,例如stow,但这似乎是一个有争议的解决方案......也许是另一个?

我更喜欢独立于发行版的解决方案,但欢迎所有建议和意见!
谢谢 !

编辑:看来大家不明白我的问题。我并不是要展开辩论,我只是想要对上述各点尽可能清楚地回答。我真的认为这对某些人可能有帮助。感谢您的贡献。

答案1

您的方法的问题是弄清楚当您想要卸载软件时必须删除哪些文件。

最佳实践是为发行版构建一个包。这有几个优点。它允许您轻松安装、升级和删除软件包。它允许您在单独的计算机上编译软件,从而避免在每台计算机上安装编译器。当上游转到另一个版本/发行版时,它允许您轻松升级软件包。而且,它允许您无需 root 即可构建软件。

在学习如何使用 rpmbuild 和规范文件之前,我使用的一个快速而肮脏的工作是:

./configure
make
make DESTDIR=/tmp/build install

这会将具有正确安装树的所有“已安装”文件放在 /tmp/build 目录下。然后更改目录中所有文件的所有者/组。然后:

tar cvfj <filename> -C /tmp/build/

要安装它们: tar xvf <filename> -C / 要卸载它们: tar tf <filename> | xargs rm

相关内容