如何解决php-common冲突的最佳方法:忽略、修复或其他?

5
我正在尝试在运行PHP 5.3.3的CentOS 6上安装来自webtatic PHP 5.6的Soap模块。当我运行yum命令yum install php56w-soap进行安装时,出现以下消息:

Error: php56w-common与php-common-5.3.3-49.el6.x86_64冲突。
您可以尝试使用--skip-broken来避免此问题。
您可以尝试运行:rpm -Va --nofiles --nodigest

我的解决选项是什么?我应该只使用--skip-broken,还有其他选项吗? 我在VPS上运行php 5.6.3和CentOS 6。

你对此有了什么进展吗? - Andy
我尽可能使用 Gentoo,但有一个小任务需要在 Centos 上安装一些 Python 和 phpMyAdmin,我对自己说,这很好,他们把所有东西都安全地放在二叉树中...哦,该死,这是我面临的问题之一,不仅仅是一个...很高兴回到 Gentoo。 - kensai
否则我已经安装了skip-broken并正在测试,如果有效会发出ping。 - kensai
不,它不起作用... 糟糕 - kensai
1个回答

2
您正在使用第三方存储库,因此请理解,这可能会带来一些问题。 Webtatic存储库比其他一些存储库要好,但它并不完美:首先,这些软件包没有正确地包括我们在这种情况下真正需要的过时、依赖和冲突列表。 比较逻辑通常帮助我们,但它会因为 PHP 是 PHP 的唯一替代品而出现问题,而不是 'php56w'。因此,它不会自动删除当前已安装的 php533 栈,以满足依赖关系。您需要给它一个明确的提示。 在安装替代堆栈之前,先卸载PHP:找到从5.3.3软件包安装的所有内容,将其减少到名称,并将其传递到yum调用中:rpm -qa --qf "%{name}-%{version}\n" \ | grep 5.3.3 \ | sed 's/-5.3.3$//' \ | xargs yum erase 然后再执行yum install php56w-soap。 如果只尝试删除php-common并希望它会将其他所有内容一起删除,则可以使用相同的方法。这种方法比上面的方法更简单,但有时不完美。yum erase php-common然后再执行yum install php56w-soap。 特别是如果您有依赖项依赖于PHP(并且足够聪明以使用php56w),则可以使用IUSyum replace plugin。首先安装插件:yum install \ https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm \ https://centos6.iuscommunity.org/ius-release.rpm yum install yum-plugin-replace 然后执行yum replace php --replace-with php56w。该命令有时会抱怨缺少依赖项,这时您需要决定是否可以忍受缺少的部分,并承诺在完成后解决它们。最后一个选择是决定是否愿意使用第三方存储库以及它们可能存在的依赖关系和不稳定的更新程序。如果您可以接受最小的测试、没有支持和帮助,那么就可以继续前进。否则,请决定是否可以使用Centos 6提供的安全、支持、更安全的PHP 5.3.3版本。这个版本被RHEL/Centos认证,可以与所有认证的软件兼容。 “但是我在25年里变得有偏见了 :-)”

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,