如果我可以从类似的发行版的回购中获得任何优势,从源代码构build

我正在使用亚马逊Linux AMI,这似乎是一些RHEL或CentOS分支。 我读过它应该与RHEL二进制兼容。 我的问题是:从源代码编译软件包有什么好处,而不是使用RHEL或CentOS回购(因为它们也应该工作)?

理论上来说,编译你自己的源码可以利用特定的编译器优化来利用你的硬件。 在大多数应用程序的实践中,它并没有产生明显的差异,特别是当与依赖关系,更新,testing等相关的问题相比较时。这个优点也预设了一个编译器,它可以针对所讨论的特征进行优化,给出。

Donald Knuth有一句半名言:

“程序员浪费了大量的时间来思考或者担心程序中非关键部分的速度,而这些效率的尝试实际上在考虑debugging和维护时会产生很大的负面影响,我们应该忘记小的效率, 97%的时间: 不成熟的优化是万恶之源 ,但我们不应该把这个关键的3%放在一边。“

在这一点上滚动你自己的二进制文件的performance肯定会属于这个类别。 有些时候特定的function可能不需要(例如),但这些情况应该很less。

官方软件包经过testing,支持和安全补丁被反馈给他们也有缺点。 通过编译你自己,你正在走出这个networking,至less不必依靠多个维护者组来提供补丁。

编译从源代码给你比版本库更新的版本,它可能包括一些错误修正。 但是在生产服务器上安装编译器并不是最好的安全措施。

从源代码构build通常会得到最新版本,您也可以尝试testing版本。 但是,使用软件包可以使您的testing和稳定版本。 取决于你的需求。

通过编译,您可以像其他人所说的那样优化硬件,也可以启用不在二进制包中的function。

但是从源代码编译的定制软件包可能难以维护。 您必须自行检查更新和安全问题,并在需要时编译新版本。