这是关于何时使用打包软件以及何时自行构build和安装的典型问题 。
什么时候应该从我的操作系统发行版提供的软件包安装软件,而不是从源代码自己构build和安装它? 什么时候从源代码build立更好?
除非你有充分的理由不要使用你的发行包。 使用发行版的软件包给了你重要的好处:
如果您需要使用发行版提供的某个软件的更新版本,或启用必须编译的function,则可以从社区存储库中find更多最新版本或function更强的软件包。 Remi的回购版是一个众所周知的例子,除了那些随RHEL / CentOS提供的版本之外,还提供更多最新版本的PHP。 使用社区存储库可以获得操作系统回购许可的许多优势,但冒着作者释放恶意软件的风险,您随后可以以完全权限将其安装到您的系统上。 您必须根据具体情况自行作出风险/回报的判断。
如果这两个选项都不适合你,你将需要从源代码编译。 从源代码编译软件时,推荐的路线是创build自己的二进制包 。 build立你自己的软件包可以让你:
由于这使得你成为包维护者 ,你将需要订阅相关的安全邮件列表,所以你不会错过任何关键的错误和安全更新。
如果您最终安装本地构build的软件而不打包它, GNU Stow可以帮助保持良好的组织,并使其更易于清理卸载。
我喜欢安德鲁的回应。
我想指出一个具体的补充,以安德鲁的评论“更好的整合”。 如果从源(未来项目的依赖项)安装应用程序,然后尝试从二进制文件(例如deb或rpm包)安装软件包,则该软件包可能无法识别是否安装了依赖项。 如果您从RPM或DEB软件包安装了初始依赖项应用程序,未来的软件包将知道它已经安装。 使用相同的包装方法(例如yum,pip,rpm等)是最佳实践。 从源代码安装是另一种方法。 所以安德鲁所说的安逸是一个严肃的考虑。
我想补充一点,“创build自己的二进制包”具有logging安装过程的好处。 从源文件安装没有logging的好处。