一些背景:我正在写一个厨师菜谱,为本地开发build立一个LNMP栈。 它需要PHP 5.4的php-mysql库(使用php包)。 我们使用yum-remi存储库来安装这些库。
对于我们的Web应用程序的本地开发,除了客户端之外,我们还需要安装Percona服务器(5.5)(这个问题在5.6中似乎不存在)。 为了testing只负责安装PHP及其模块的配方,我们只需要通过Percona客户端获得的libmysqlclient.so.16。 现在我只关注让PHP配方工作,但是安装服务器的解决scheme是理想的。 这些从http://repo.percona.com/centos/6/os/x86_64/的repo上使用Chef-Percona食谱
安装的软件包是:
install version 5.5.42-rel37.1.el6 of package Percona-Server-devel-55 install version 5.5.42-rel37.1.el6 of package Percona-Server-client-55
PHP-mysql是:
yum -d0 -e0 -y install php-mysql-5.4.40-1.el6.remi
总是会抛出这个错误:
STDOUT: You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest STDERR: Error: Percona-XtraDB-Cluster-shared-55 conflicts with Percona-Server-shared-55-5.5.42-rel37.1.el6.x86_64
本质上Percona-XtraDB-Cluster-shared-55是php-mysql的依赖。
如果我不先安装任何东西Percona,我得到这个错误:
STDOUT: ERROR with rpm_check_debug vs depsolve: libmysqlclient.so.16()(64bit) is needed by postfix-2:2.6.6-6.el6_5.x86_64 libmysqlclient.so.16(libmysqlclient_16)(64bit) is needed by postfix-2:2.6.6-6.el6_5.x86_64 You could try running: rpm -Va --nofiles --nodigest
如果我只包含percona::package_repo (它简单地将Percona存储库添加到yum repolist )并且不安装客户端,它实际上会安装php-mysql ,但是具有以下版本:
yum list installed | grep Percona Percona-Server-shared-51.x86_64 Percona-Server-shared-56.x86_64 Percona-XtraDB-Cluster-shared-55.x86_64
正如我之前提到的,在一个孤立的环境中这可能是好的,但是我的LNMP食谱中的另一个配方将在相同的环境中安装Percona服务器5.5,如果是这种情况,我预计会发生冲突。 我testing了这种情况 – 就像以前一样, Percona-XtraDB-Cluster-shared-55 conflicts with Percona-Server-shared-55-5.5.42-rel37.1.el6.x86_64错误Percona-XtraDB-Cluster-shared-55 conflicts with Percona-Server-shared-55-5.5.42-rel37.1.el6.x86_64了相同的Percona-XtraDB-Cluster-shared-55 conflicts with Percona-Server-shared-55-5.5.42-rel37.1.el6.x86_64 。
我已经尝试了许多可能的解决scheme,包括安装Percona-Server-shared-compat但它总是有冲突。 任何想法,我可以做什么来解决它?