我刚刚用 32 位 Centos 5.8 创建了一个 VPS,并安装了 php53 和许多其他 php 5.3 软件包。我想使用 yum 安装 memcached,但出现以下错误
Resolving Dependencies
--> Running transaction check
---> Package php-pecl-memcached.i386 0:1.0.0-1.el5 set to be updated
--> Processing Dependency: php-zend-abi = 20050922 for package: php-pecl-memcached
--> Processing Dependency: libmemcached.so.2(libmemcached_2) for package: php-pecl-memcached
--> Processing Dependency: libmemcached.so.2 for package: php-pecl-memcached
--> Running transaction check
---> Package libmemcached.i386 0:0.31-1.1.el5 set to be updated
---> Package php-common.i386 0:5.1.6-40.el5_9 set to be updated
--> Processing Conflict: php53-common conflicts php-common
--> Finished Dependency Resolution
php53-common-5.3.3-13.el5_9.1.i386 from installed has depsolving problems
--> php53-common conflicts with php-common
Error: php53-common conflicts with php-common
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
尝试了包清理和上面消息中提到的所有其他方法,但仍然无法安装,所以我想从 PECL 库中安装它,然后继续为 PHP5.3 安装 PEAR
yum install php53-pear
我收到错误
No package php53-pear available.
Nothing to do
所以我尝试了(做蠢事!)
yum install php-pear
并成功安装。然后
pecl install memcached
并且在运行 /var/tmp/pear-build-root/memcached-2.1.0 时出现以下错误: /tmp/tmpCW9TMv/memcached-2.1.0/configure 检查 egrep... grep -E 检查不截断输出的 sed... /bin/sed 检查 cc... 否 检查 gcc... 否 configure:错误:在 $PATH 中未找到可接受的 C 编译器 请参阅config.log' for more details. ERROR:
/tmp/tmpCW9TMv/memcached-2.1.0/configure' 失败
我有点困惑。有没有办法在 Centos 5.8 上安装 PEAR for PHP5.3 并同时安装 memcached。
答案1
看来您有 2 个版本的 php:5.1.6 和 5.3.3
Processing Conflict: php53-common conflicts php-common
我建议添加 ius 社区仓库并从中安装所有必要的软件包。在我看来,在基于 RHEL 的系统上从源代码安装不是一个好主意
# rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/epel-release-5-4.noarch.rpm
# rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-11.ius.el5.noarch.rpm
# yum install php53u-pear php53u-pecl-memcached
答案2
你缺少编译器(可能还有 php 头文件)。尝试
yum install gcc php53-devel
首先。然后
pecl install memcached
再次。
答案3
这里您的问题是 PHP 5.3.3 公共文件和 PHP 5.1.6 文件之间的冲突,yum 在这里告诉您这一点:
php53-common-5.3.3-13.el5_9.1.i386 from installed has depsolving problems
--> php53-common conflicts with php-common
Error: php53-common conflicts with php-common
要解决这个问题,只需删除 php-common,然后再次运行原来的 yum 命令。
yum remove php-common
yum install php-pecl-memcached
除非您有特殊要求,否则我建议坚持使用这些文件的打包版本,而不是从源代码进行编译。
编辑:您可能需要清除所有 php 包并重新开始:
rpm -qa | grep php | xargs rpm -e