httpd-devel 需要 CentOS 6.3 x86_64 和 Apache/2.2.15 上过时版本的 glibc-common。它需要 2.12-1.80.el6,我安装了 2.12-1.80.el6_3.3.x86_64(通过 CentOS @update repo)
这是我运行“yum install httpd-devel.x86_64”时出现的错误
错误:软件包:glibc-2.12-1.80.el6.i686(基础):
Requires: glibc-common = 2.12-1.80.el6
Installed: glibc-common-2.12-1.80.el6_3.3.x86_64 (@updates)
glibc-common = 2.12-1.80.el6_3.3
Available: glibc-common-2.12-1.80.el6.x86_64 (base)
glibc-common = 2.12-1.80.el6
使用“yum install httpd-devel.x86_64 --skip-broken”,我得到:
由于依赖性问题而跳过的包:
> apr-1.3.9-3.el6_1.2.i686 from base apr-devel-1.3.9-3.el6_1.2.x86_64
> from base apr-util-devel-1.3.9-3.el6_0.1.x86_64 from base
> cyrus-sasl-devel-2.1.23-13.el6.x86_64 from base
> db4-cxx-4.7.25-17.el6.x86_64 from base db4-devel-4.7.25-17.el6.x86_64
> from base glibc-2.12-1.80.el6.i686 from base
> 1:httpd-devel-2.2.15-15.el6.vm.1.x86_64 from virtualmin
> libuuid-2.17.2-12.7.el6.i686 from base
> nss-softokn-freebl-3.12.9-11.el6.i686 from base
> openldap-devel-2.4.23-26.el6.x86_64 from base
底线,我无法安装 httpd-devel。
这可能是一个优先问题吗?
priority = 1 [asl-3.0]
priority = 1 [base]
priority = 1 [virtualmin]
priority = 1 [virtualmin-universal]
priority = 50 [epel]
repo id | repo name | status
C6.0-base | CentOS-6.0 - Base | disabled
C6.0-centosplus | CentOS-6.0 - CentOSPlus | disabled
C6.0-contrib | CentOS-6.0 - Contrib | disabled
C6.0-extras | CentOS-6.0 - Extras | disabled
C6.0-updates | CentOS-6.0 - Updates | disabled
C6.1-base | CentOS-6.1 - Base | disabled
C6.1-centosplus | CentOS-6.1 - CentOSPlus | disabled
C6.1-contrib | CentOS-6.1 - Contrib | disabled
C6.1-extras | CentOS-6.1 - Extras | disabled
C6.1-updates | CentOS-6.1 - Updates | disabled
C6.2-base | CentOS-6.2 - Base | disabled
C6.2-centosplus | CentOS-6.2 - CentOSPlus | disabled
C6.2-contrib | CentOS-6.2 - Contrib | disabled
C6.2-extras | CentOS-6.2 - Extras | disabled
C6.2-updates | CentOS-6.2 - Updates | disabled
asl-3.0 | Atomicorp - - Atomic Secured Linux 3.0 | enabled: | 623
asl-3.0-testing | Atomicorp - - Atomic Secured Linux 3.0 (TESTING) | disabled
base | CentOS-6 - Base | enabled: | 6,346
c6-media | CentOS-6 - Media | disabled
centosplus | CentOS-6 - Plus | disabled
contrib | CentOS-6 - Contrib | disabled
debug | CentOS-6 - Debuginfo | disabled
epel | Extra Packages for Enterprise Linux 6 - x86_64 | enabled: 7,627+125
epel-debuginfo | Extra Packages for Enterprise Linux 6 - x86_64 - Debug | disabled
epel-source | Extra Packages for Enterprise Linux 6 - x86_64 - Source | disabled
epel-testing | Extra Packages for Enterprise Linux 6 - Testing - x86_64 | disabled
epel-testing-debuginfo | Extra Packages for Enterprise Linux 6 - Testing - x86_64 - Debug | disabled
epel-testing-source | Extra Packages for Enterprise Linux 6 - Testing - x86_64 - Source | disabled
extras | CentOS-6 - Extras | enabled: | 4
updates | CentOS-6 - Updates | enabled: | 0+523
virtualmin | RHEL/CentOS/Scientific 6 - x86_64 - Virtualmin | enabled: | 73
virtualmin-universal | Virtualmin Distribution Neutral Packages | enabled: | 187+1
阿帕奇来自:
rpm -qi httpd
Name : httpd Relocations: (not relocatable)
Version : 2.2.15 Vendor: (none)
Release : 15.el6.vm.1 Build Date: Thu 17 May 2012 03:35:08 AM UTC
Install Date: Thu 28 Jun 2012 05:13:47 AM UTC Build Host: srv1.cloud.virtualmin.com
Group : System Environment/Daemons Source RPM: httpd-2.2.15-15.el6.vm.1.src.rpm
Size : 3067984 License: ASL 2.0
Signature : DSA/SHA1, Thu 17 May 2012 03:09:42 PM UTC, Key ID e8dd3fa0a0bdbcf9
URL : http://httpd.apache.org/
Summary : Apache HTTP Server
答案1
禁用优先级允许“yum install httpd-devel”工作。
PS:我现在的优先事项是
priority = 10 [asl-3.0]
priority = 10 [asl-3.0-testing]
priority = 20 [virtualmin]
priority = 20 [virtualmin-universal]
priority = 30 [base]
priority = 30 [updates]
priority = 40 [extras]
priority = 50 [epel]
这看起来可以吗?
答案2
恭喜:你已经遇到了依赖地狱[tm]。好消息:这总是自己造成的;没有例外。
Virtualmin - 在离开 SCONJ 之前,我与 Jamie 合作过一个项目;这不像他——提供的 httpd-devel 违反了 Fedora 指南规定的命名约定,而 Fedora 指南又规范了 CentOS 周围的企业 Linux 打包。这种情况不应该发生——像 Virtualmin 这样的第三方存储库不应该重载上游交付的包的名称(例如 CentOS 本身中的包的名称)。
所以,简而言之,您使用的是一个糟糕的存储库。不要感到难过:他们中的很多人都有这个问题,而且没有办法知道其他问题。 Evan Dag 曾经在他的 RPM 中这样做过。
我从来没有使用过优先级设置,而且我从 98 年左右就开始使用 RedHat/derivs。我无法评论您的解决方案是否有效,整个事情似乎是为了解决法规现在避免的问题而进行的黑客攻击。
禁用 virtualmin 存储库。
sed -i '/^enabled/r\enabled=0' /etc/yum.repos.d/name-of-virtualmin.repo-file
仅在命令行上启用它以进行一次性操作,并在修复它之前了解它会导致依赖性问题。
yum --enablerepo virtualmin [command]
Jamie 是一位非常聪明、有能力的开发人员,他的产品和存储库应该更好。这只能是短期的事情。