如何在centOS上更新php?

我有一个centOS服务器上安装php 5.1.6,我至less需要5.3.2(但宁愿安装最新的可用5. *版本)。

如果我跑

yum update php 

它说它会更新到5.1.6-34.el5_8(我的是5.1.6-27.el5_5.3)…..什么?

centOS的可用软件包比当前的版本落后多less,还是因为yum默认情况下只在第二个点(或者其他)后面的subversion中更新,我需要告诉它给我一个更新的版本? 如果是的话,我该怎么做?

你很可能正在运行老版本的Centos(5.5甚至更早版本),它没有PHP 5.2.x或5.3.x的版本。 你有两个select:将Centos更新到更新的版本(5.6是PHP 5.3中的第一个)或者使用http://iuscommunity.org/About

是的,正如我记得在CentOs 5.x上获得更新版本的php是非常痛苦的。

基本上有一个php53包在更新回购;

 # cat /etc/redhat-release CentOS release 5.8 (Final) # repoquery -i php53 Name : php53 Version : 5.3.3 Release : 7.el5_8 Repository : updates 

但如果你运行这样的东西,

  # yum provides php php-5.1.6-32.el5.x86_64 : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor) php-5.1.6-34.el5_8.x86_64 : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor) 

你会看到php53包实际上并不提供php,这意味着安装它将打破任何依赖于php包,尽pipe系统上有一个php。

最后,我使用了一个只包含一个提供线的垫片rpm,我在网上find了一个,因为我的所有php要求都很简单。

替代方法是@ c2h5oh提到,使用第三方重新打包的版本,(或升级到Centos 6.2: – <)。

你可以看到用php53replace所有的php将使用下面的命令:

 # rpm --whatrequires -V php Unsatisfied dependencies for pastebin-0.60-4.el5.noarch: php 

你可以从最后一个命令的输出中看到,在我的情况下,我没有使用任何需要php包,所以我只是用--nodeps来强制删除所有的php。

你可以使用yum shell来执行( php-* )的remove ,并在同一个事务中installphp53-* )操作。

使用yum update ,然后yum upgrade将CentOS升级到5.8,然后重试yum update php