Gig*_*uid 9 linux package-management centos
这是一个开放式问题,但我确实希望对这个话题进行建设性和有益的讨论。
所以澄清这个问题:在运行 CentOS 7(或任何其他 Linux 发行版/版本)的服务器上,最好坚持使用 Base/EPEL 存储库中的软件包版本,还是可以获得最新的稳定版本形成包裹站点?在这种情况下,我更具体地说是指 nginx、MariaDB 和 PHP 7 等软件包。例如,在 EPEL 1.6.3 版上安装 nginx 1.8.0 的优缺点是什么?这两种方式是否存在任何性能差异或安全风险?
欢迎所有讨论和经验,请尽量引用资源和事实。
通常,我非常努力地使用系统默认包。
然而,这有时是不可能的。要做出明智的选择,您必须回答以下问题:
Matthew Ife 和 shodanshok 的回答涵盖了一般问题,但我想通过将问题放在上下文中来解决您的具体问题,因为我管理的正是这类系统。
我当前用于部署 PHP/MySQL Web 应用程序的构建是:
首先,让我们考虑为什么选择特定的发行版或软件包集。要么我们看重稳定性胜过最新功能,要么我们看重最新功能胜过稳定性。通常不可能在同一个发行版中同时拥有两者,因为稳定软件需要时间来修复错误,而添加新功能会引入错误,从而导致不稳定。
作为一般规则,我希望运行应用程序的操作系统尽可能稳定,但具有相当现代的功能集。因此,我会选择 CentOS 7 而不是 CentOS 6,CentOS 6 在这一点上已经很老了,虽然它可以工作,但它的支持生命周期所剩时间不多,所以我不会将它用于新项目.
但是,我随后遇到了 CentOS 附带的 nginx 版本太旧并且没有一些必需的功能和错误修复的问题。因此我去寻找替代包,并发现 nginx.org 分发他们自己的。我几乎立即切换到它们,并发现它们在长期内非常稳定。
然后是PHP。我从历史上知道 CentOS 附带的 PHP 版本将是它唯一获得的版本,并且只会获得安全更新;没有新功能或错误修复。因此,一旦上游不再支持,如果我使用这些包,我最终将无法运行现代 PHP Web 应用程序。因此,也有必要更换这些。
从长期的经验中,我了解到最好使用 PHP 来跟踪错误修复版本,而不是简单地冻结某个版本并仅进行安全修复,因为我运行的 Web 应用程序也将更新并需要这些错误修复。所以在评估了许多不同的 PHP 包之后,我决定使用 remi 的 pacakges。Remi 恰好是 Red Hat 员工,同时还负责 RHEL/CentOS 中的 PHP 包。所以我知道他的包裹质量很高,而且一直如此。它们是系统包的直接替代品,工作完美。
最后我们来到了 MariaDB。您可以选择将系统包保留在此处而不会受到不良影响。我选择切换到 MariaDB 的 10.0 软件包(很快将转到 10.1)以利用 TokuDB 和其他一些在 CentOS 附带的 5.5 版本中不可用的其他性能增强,并且它永远不会获得重大升级。
总体而言,您需要基本系统的稳定性,但 Web 应用程序的变化速度比业务线软件快得多,而且您的服务器需要跟上。因此,我选择了目标点,在这些点升级包将获得明显的好处,而几乎没有额外的管理开销(也就是工作)。
简短的回答是,始终使用系统存储库提供的内容。要非常小心的软件仓库你就安装了。有些只是很糟糕。
您不应该用较新的版本覆盖系统包,Redhat 的设计和编排非常仔细,如果这样做,您最终可能会遇到奇怪的错误或问题。
一些需要考虑和注意的可能导致问题的事情包括。
php
包被放在系统上,但没有更新pear
引入问题的包。永远不要从源代码构建包并将它们安装在现有包的顶部。这会破坏您的系统包完整性,从而导致奇怪的 ABI 问题,例如接收unresolved symbol
或undefined reference
消息。对于在给定系统上部署了哪些软件,系统维护可靠且准确的索引以确保它们彼此正常工作非常重要,这就是我们首先使用 RPM 的原因。
解决这个问题的可行(和 Redhat 祝福)方法是使用软件集合。
它在自己的根目录中安装软件及其“新”依赖项。这可能会使在您的环境中应用程序包稍微困难一些,但确实可以保护您的系统免受奇怪的错误或问题的影响。它还在它们自己的命名空间中安装包,让您可以并行安装包的多个版本。
该网站提供了如何安装和激活这些软件包的说明,它包含了人们在旧版 CentOS 和 Redhat(尤其是 EL6)上错过的大部分内容。我从这个网站成功使用了一些东西。
请注意,您在此问题上的默认立场不应该根据 Redhat 存储库推送的内容进行调整。相反,请评估您是否真的需要更新版本的软件包,特别是您的具体要求是什么、它应该修复哪些问题以及它引入了哪些风险。
作为一般规则,如果您发现自己不断需要更新软件和/或需要相同软件包的多个并行版本才能使工作正常进行,这通常表明您做错了什么。
归档时间: |
|
查看次数: |
1087 次 |
最近记录: |