为什么 yum 在 CentOS 上安装过时的软件包?(特别是 PHP 5.1)如何修复?

But*_*kus 16 mysql php debian centos yum

我正在一个新的 CentOS 服务器上工作,我非常恼火地发现 yum 不像 Ubuntu 上的“apt-get install”那样顺利和出色地工作。

安装 LAMP 堆栈,我运行了以下命令:

$ yum install php
$ yum install mysql
Run Code Online (Sandbox Code Playgroud)

此外:

$ yum install mysql-server
$ yum install mysql-devel
$ yum install php-mysql
Run Code Online (Sandbox Code Playgroud)

现在运行:

$ rpm -qa | grep php
Run Code Online (Sandbox Code Playgroud)

...表明我安装了各种 php 5.1.6 包,我至少需要 5.2。此外,我看到它安装了 mysql 5.0.77,即使当前版本是 5.5.20。但希望 mysql 5.0 会工作。PHP 5.1 不会。

所以真正的问题是(是):

如何修复我的 PHP 以使其成为最新的稳定版本(根据 PHP.net 为 5.3.9)?如何让我的 CentOS 机器更像 Ubuntu,这样我就不必再处理这个问题了?

非常感谢。

编辑:CentOS 5.7 上周由托管公司安装,所以我不知道他们为什么会安装旧版本的 CentOS,而不是最新版本。我至少需要 PHP 3.2,所以我很欣赏如何做到这一点的建议。我对软件包和存储库不是很熟悉,但似乎任何人都可以启动存储库,因此我担心从可能感染服务器的某个随机存储库安装东西。

Mag*_*lan 12

CentOS 是非常保守的 Red Hat Enterprise Linux 的衍生版本,因此软件包更新通常会比 RHEL 延迟更久。任一发行版中的软件包都会有点旧。

如果你正在运行 CentOS 5,你应该尝试 CentOS 6 看看它是否适合你的需要。

如果你需要比 CentOS 6 更先进的东西,你应该看看 Fedora。

后续:CentOS 已被“内部”引入,并且集成得更紧密。较新的 CentOS 版本会看到更紧的发布周期带来的好处,但对于较旧的版本,这个答案仍然适用。

  • @jgoldschrafe,对我来说,这个问题似乎并不是专门针对 php 版本的。看起来这个问题似乎是关于保守的发布政策,我认为这篇文章试图回答。我认为称这种错误信息是一种压力。 (4认同)
  • 该线程中的错误信息数量绝对令人震惊。CentOS 5 已经包含 PHP 5.3 一年多了,但由于 ABI 问题,它不是默认安装的版本。`yum install php53` 将助您一臂之力。 (2认同)
  • @jgoldschrafe - 我建议你自己写一个答案 - 这比仅仅评论更正更有成效。 (2认同)

Sha*_*den 6

它们并没有过时;它们是 CentOS 5 存储库中的最新版本。

红帽(和 Ubuntu 就此而言)永远不会为给定的操作系统版本将新的主要软件版本发布到他们的软件包存储库中,为了稳定性 - 您不想运行升级并且突然没有您的配置工作。

相反,他们将安全修复和重要的错误修复向后移植到操作系统发布时“稳定”的软件版本中,避免引入新功能(及其错误)。

由于您使用的是 CentOS 5,官方存储库中有一些相当旧版本的东西。但不要担心 - 您可能可以轻松找到包含您需要的软件版本的第三方存储库。

或者,为什么不升级到 6?