我必须在我的 CentOS 服务器上安装 PHP 5.3。如果我这样做yum install php
,基础存储库会安装 5.1.6,这对于我需要安装的应用程序来说太旧了。所以我一直在尝试使用宫内节育器存储库,遵循 IUS 的官方说明:
root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/ius-release-1-2.ius.el5.noarch.rpm
root@linuxbox ~]# wget http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/x86_64/epel-release-1-1.ius.el5.noarch.rpm
root@linuxbox ~]# rpm -Uvh ius-release*.rpm epel-release*.rpm
好的。现在我只需执行yum install php53
等即可满足我的所有需要...但我收到此错误:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Check Error:
file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64
Error Summary
-------------
我不知道如何解决这个问题。我想我必须删除基础软件包。但是,作为 Linux 新手,我不知道该怎么做。
答案1
更新:显然是 RHEL 5.6包括 PHP 5.3,因此这将很快在 CentOS 上原生显示。
file /usr/bin/php from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/bin/php-cgi from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /usr/share/man/man1/php.1.gz from install of php53u-cli-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-cli-5.1.6-27.el5_5.3.x86_64
file /etc/php.ini from install of php53u-common-5.3.4-3.ius.el5.x86_64 conflicts with file from package php-common-5.1.6-27.el5_5.3.x86_64
这里的问题是,您安装的软件包有不同的名称(php53 而不是 php),但它们试图安装相同的文件...因此发生冲突。这不一定是将软件包组合在一起的最佳方式,但我不知道是否有更好的软件包可用,所以我们将忽略这一点。
要删除当前安装的软件包:
# yum remove php-cli php-common php
因此,一般来说,yum remove <list of packages>
将删除软件包。当然,yum list installed
还可以查看已安装软件包的列表(或rpm -qa
)。
答案2
截至 2011 年 1 月 13 日,这个问题的答案已经改变。Red Hat 已发布版本 5.6,其中包括 PHP 版本 5.3 作为单独的软件包(php53
)。
您必须删除旧版 PHP,然后单独安装 PHP 5.3。这听起来与您从 IUS 存储库获取的软件包类似,但现在它是官方的。
有关详细信息,请参阅For more information, seeRed Hat 发行说明。
请注意,这是 Red Hat 刚刚发布的,在 CentOS 中推出之前会稍微延迟一下。不过,RHEL 5.6 更新看起来相对较小,所以我预计更新不会太久。
答案3
在安装新版本之前,尝试删除旧版本的软件包:
yum 清除 php-cli php-comon
然后尝试 yum 安装。
警告:在提交之前查看 yum 想要进行的更改列表,以确保您没有删除其他重要软件包。
答案4
CentOS 6 现已推出,包含 PHP 5.3: