![与Yum安装php和mysql冲突](https://linux22.com/image/570748/%E4%B8%8EYum%E5%AE%89%E8%A3%85php%E5%92%8Cmysql%E5%86%B2%E7%AA%81.png)
我正在尝试安装一个 php 扩展。
--> Running transaction check
---> Package mysql.x86_64 0:5.5.18-1.el5.art set to be updated
---> Package mysql-devel.x86_64 0:5.5.18-1.el5.art set to be updated
---> Package mysql-server.x86_64 0:5.5.18-1.el5.art set to be updated
--> Processing Conflict: mysql50 conflicts MySQL
--> Restarting Dependency Resolution with new changes.
--> Running transaction check
---> Package mysql50.x86_64 0:5.0.92-1.ius.el5 set to be updated
--> Processing Conflict: mysql50 conflicts MySQL
--> Finished Dependency Resolution
mysql50-5.0.92-1.ius.el5.x86_64 from ius has depsolving problems
--> mysql50 conflicts with mysql
Error: mysql50 conflicts with mysql
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
如何进行?
答案1
您似乎正在使用较旧版本的 MySQL,而第三方 yum 存储库有较新版本。您的 php 模块似乎也来自该第三方存储库,并且依赖于较新版本的 MySQL。
您有几种选择。
通过卸载 mysql50 包并安装 mysql 包来升级 MySQL。如果这是数据库服务器,您应该先备份数据库。
为您的 php 模块找到一个没有 mysql 包的其他 repo。
删除此第三方 repo。从 repo 下载 php 模块并使用 rpm 命令安装它,或者将其放入您自己的本地 yum repo。
根据所包含的 mysql 版本从源代码编译此 php 模块。
答案2
有几种方法可以使用 IUS 存储库。
一种是删除 RHEL 软件包。
http://iuscommunity.org/Docs/GettingStarted
IUS 软件包取代了原有的 RHEL 软件包,但它们并没有淘汰原有的 RHEL 软件包。也就是说,您不能只使用“yum upgrade”来获取我们的软件包……您需要先删除原有的 RHEL 软件包(例如 mysql),然后用 IUS 软件包(例如 mysql51)替换它。请参阅客户端使用指南,了解从 IUS 安装软件的完整示例。
另一种是使用 Replace 插件包
http://iuscommunity.org/Doc/ClientUsageGuide
冲突替换软件包:几乎所有 IUS 软件包都会发生冲突。这意味着,在安装 IUS 版本之前,必须先卸载它们替换的软件包。例如:mysql50 和 mysql51 都与 mysql 冲突。它们提供“mysql”,但不会淘汰 mysql,因此仅订阅 IUS Yum 存储库不会自动升级任何内容。如果您尝试从 IUS 安装 mysql5X 软件包,您将收到 Yum 错误。也就是说,一旦您删除原始软件包(mysql、mysql-server、mysql-devel 等)并安装 IUS 对应软件包,一切都将正常运行。
我推荐第二种选择,并确保在更改之前备份所有数据。