在Linux上更新PHP – “没有标记为更新的软件包”?

:我有一个需要5.2的应用程序,但我的服务器目前运行5.1.6。

我对服务器pipe理非常陌生,但我认为将PHP更新到5.2+的任务应该相对简单。 在线我发现以下据说足以做到这一点:

yum update php 

但是当我运行这个,输出如下:

  [root @ ip-XXX-XXX-XXX-XXX /]#php -v
 PHP 5.1.6(cli)(内置:2010年1月13日17时13分05秒)
版权所有(c)1997-2006 The PHP Group
 Zend Engine v2.1.0,版权所有(c)1998-2006 Zend Technologies
 [root @ ip-XXX-XXX-XXX-XXX /]#yum更新php
加载的插件:最快的镜像
确定最快速的镜像
  *插件:p3plmirror02.prod.phx3.secureserver.net
  * base:p3plmirror02.prod.phx3.secureserver.net
  * extras:p3plmirror02.prod.phx3.secureserver.net
  * turbopanel-base:p3plmirror02.prod.phx3.secureserver.net
  * turbopanel-centos5:p3plmirror02.prod.phx3.secureserver.net
  *更新:p3plmirror02.prod.phx3.secureserver.net
插件|  951 B 00:00
 addons / primary |  201 B 00:00
基地|  2.1 kB 00:00
 base / primary_db |  1.6 MB 00:00
额外|  1.1 kB 00:00
 extras / primary |  107 kB 00:00
额外325/325
 turbopanel-base |  951 B 00:00
 turbopanel-base / primary |  72 kB 00:00
 turbopanel-base 494/494
 turbopanel-centos5 |  951 B 00:00
 turbopanel-centos5 / primary |  2.1 kB 00:00
 turbopanel-centos5 8/8
更新|  1.9 kB 00:00
 update / primary_db |  463 kB 00:00
设置更新过程
没有软件包标记为更新
 [root @ ip-XXX-XXX-XXX-XXX /]#php -v
 PHP 5.1.6(cli)(内置:2010年1月13日17时13分05秒)
版权所有(c)1997-2006 The PHP Group
 Zend Engine v2.1.0,版权所有(c)1998-2006 Zend Technolog
 [root @ ip-XXX-XXX-XXX-XXX /]#否标记为更新的软件包
 [root @ ip-XXX-XXX-XXX-XXX /]#php -v
 bash:否:找不到命令
 [root @ ip-XXX-XXX-XXX-XXX /]#[root @ ip-XXX-XXX-XXX-XXX /]#php -v
 bash:[root @ ip-XXX-XXX-XXX-XXX:command not found
 [root @ ip-XXX-XXX-XXX-XXX /]#PHP 5.1.6(cli)(built:Jan 13 2010 17:13:05)
 bash:语法错误附近的意外标记`('
 [root @ ip-XXX-XXX-XXX-XXX /]#Copyright(c)1997-2006 The PHP Group
 bash:语法错误附近的意外令牌`c'
 [root @ ip-XXX-XXX-XXX-XXX /]#Zend Engine v2.1.0,版权所有(c)1998-2006 Zend Technologies
 bash:语法错误附近的意外标记`('
 [root @ ip-XXX-XXX-XXX-XXX /]# 

我的PHP版本是5.1.6之前的,并且在运行命令之后。 在这个更新过程中,我太天真了吗? 是否有一个更详细的路线是我需要采取?

您正试图升级发行版提供的软件包。 通常情况下,发行版不会更改版本,但会返回安全修复程序,这样做是为了保持更稳定的环境。 由于主要修订版本的变化会影响软件的运行,因此通常只会在分发的重大修订之间进行。

如果你想运行最新的PHP,你可能需要创build你自己的包,find第三方包,或者从源代码编译你自己的构build标准。

根据提供的输出,假定您正在运行可用于当前正在运行的发行版的最新版本的PHP是合理的。

它看起来像CentOS维基有一个使用开发回购更新到5.2的演练 。

不,你没有做错什么,只是5.1.6是最新的软件包 – 至less在CentOS软件库里。 你可以做一个yum info php来获得更详细的信息,包括在版本库中的版本号。