如何强制 CentOS yum 使用已安装的软件包依赖项的更高版本(php-common 作为 php-xml 的依赖项)

如何强制 CentOS yum 使用已安装的软件包依赖项的更高版本(php-common 作为 php-xml 的依赖项)

当我尝试使用安装 时,似乎我拥有的版本php-common-5.2.10-1.el5.centos比要求的依赖版本更新。要求的依赖包如 所示。php-xmlphp-xmlyum install php-xmlphp-common = 5.1.6-34.el5_8rpm -qa |grep php

那么我该如何强制 php-xml 使用我已经拥有的更高版本?

(这似乎是相关 SF 问题中问题的根本原因:php-xml 安装抱怨依赖 php-common 但是它已经安装(CentOS)

更新

输出:

  • yum repolist
  • rpm -qi php-common

(根据@ewwhite 的要求)如下:

[root@dtsrvishvt2 ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: centos.mirroring.pulsant.co.uk
 * extras: centos.mirroring.pulsant.co.uk
 * updates: centos.mirroring.pulsant.co.uk
Reducing CentOS-5 Testing to included packages only
Finished
repo id                          repo name                                status
base                             CentOS-5 - Base                          2,725
c5-testing                       CentOS-5 Testing                          0+71
extras                           CentOS-5 - Extras                          280
updates                          CentOS-5 - Updates                         379
repolist: 3,384
[root@dtsrvishvt2 ~]#





[root@dtsrvishvt2 ~]# rpm -qi php-common
Name        : php-common                   Relocations: (not relocatable)
Version     : 5.2.10                            Vendor: CentOS
Release     : 1.el5.centos                  Build Date: Fri 13 Nov 2009 04:36:29 PM GMT
Install Date: Tue 13 Jul 2010 11:33:44 AM GMT      Build Host: builder10.centos.org
Group       : Development/Languages         Source RPM: php-5.2.10-1.el5.centos.src.rpm
Size        : 668395                           License: PHP
Signature   : DSA/SHA1, Fri 22 Jan 2010 03:22:25 PM GMT, Key ID 5c37c0b17203f491
URL         : http://www.php.net/
Summary     : Common files for PHP
Description :
The php-common package contains files used by both the php
package and the php-cli package.
[root@dtsrvishvt2 ~]#

答案1

您能提供以下命令的输出吗?

  • yum repolist
  • rpm -qi php-common

您的 CentOS 5 系统当前的 php-common 版本是php-common-5.1.6-34.el5_8。您的依赖性问题源于 php-common 的版本 (5.2.10-1.el5.centos) 比标准 CentOS 存储库中可用的版本更新。该yum repolist命令将帮助我们了解您从哪里提取软件包。将向rpm -qi php-common我们显示当前安装的软件包实际上来自哪里。

我猜想系统是通过另一个 repo 迁移到 PHP 5.2 的,或者可能是通过手动安装包。在线记录使用 CentOS 测试存储库。如果您的 php-common 包是一次性安装的,那么您应该能够获取相关的 php 包……但这取决于您的 repolist 输出……

答案2

你不能,yum 不会让你这么做。php-xml 的作者特别想要一个与他们的版本相匹配的 php-common 版本。

您的选择是:

  1. 查找较新版本的 php-xml rpm
  2. 降级 php-common 至版本5.2.10-1.el5.centos
  3. 用于rpm -i --nodeps执行可能无法正常工作的不安全安装(因为您没有安装任何依赖项)。
  4. 重建 php-xml rpm,更改其依赖的 php-commons 版本

我强烈推荐前两者之一,因为它们最简单并且最有可能正常工作。

答案3

您无法使用 php-commons 版本 5.2*,因为它已因安全问题被删除。剩下的唯一选择是升级到 PHP 5.3。我花了大约 4 个小时才在网上找到这些信息,希望这能对其他人有所帮助。

相关内容