一些背景知识:我正在编写 Chef 手册,以设置用于本地开发的 LNMP 堆栈。它需要php-mysql
PHP 5.4 的库(使用php
包)。我们正在使用yum-remi
存储库来安装这些库。
对于我们的 Web 应用程序的本地开发,除了客户端之外,我们还需要安装 Percona 服务器 (5.5)(这个问题似乎在 5.6 中不存在)。为了测试仅负责安装 PHP 及其模块的配方,我们只需要 libmysqlclient.so.16,这是我们通过 Percona 客户端获得的。现在我专注于让 PHP 配方工作,但安装服务器后工作的解决方案将是理想的。这些从 repo 安装http://repo.percona.com/centos/6/os/x86_64/使用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,如果是这种情况,我预计会与上述情况发生冲突。我对此进行了测试,情况确实如此 - 我得到了Percona-XtraDB-Cluster-shared-55 conflicts with Percona-Server-shared-55-5.5.42-rel37.1.el6.x86_64
与以前相同的错误。
我尝试过多种可能的解决方案,包括安装,Percona-Server-shared-compat
但似乎总是发生冲突。有什么办法可以解决这个问题吗?