我正在 RHEL 5.5 上进行系统范围的 yum 更新,而 IUS EPEL 存储库抛出了缺少依赖项错误:
php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt- 5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)
有没有办法对所有其他存储库忽略 IUS EPEL 存储库以跳过此依赖问题?
澄清
我正在尝试仅从 Redhat 网络安装更新。我找不到存储库名称,因此无法执行类似操作,sudo yum --disablerepo=* --enablerepo=rhel update
因为我使用的 yum 版本不支持在 后列出的多个存储库--disablerepo
。
更新
我的临时解决方法是运行sudo yum --exclude=php53* update
。我确信有更好的方法。这个更好的方法包括修复实际问题,所以我向IUS 社区项目也一样。
更新 #2
看来我发现了这个问题依赖性。我仍然认为应该有一个可行的解决办法。
谢谢!
答案1
尝试禁用 repo 开关:
--disablerepo=REPONAME
更新
查找当前“已知”(启用和禁用)的所有存储库:
yum repolist all
然后,要找到哪个存储库因上述软件包而给您带来麻烦,请尝试:
yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates
这将显示您的哪些存储库提供上述包(您还会在列表中看到“已安装”,以显示本地安装的包)。
一旦您知道使用禁用 repo 开关的存储库,请再次尝试禁用开关。
yum update --disablerepo=[from above]
如果无法通过上述步骤找出您想要忽略的存储库,请尝试查看/etc/yum.repos.d/,这是 RHEL 存储库定义的默认位置。进入此目录后,找到所有非标准 RHEL 基础和更新存储库文件并包括已启用=0例如,
[repo]
enabled=0
希望这可以帮助。
答案2
您可以在 yum 命令行上禁用多个存储库:
yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3
但是,如果这样做,您必须明确启用所需的 repo:
yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
--disablerepo=myrepo3 --enablerepo=TheRepoIWant
答案3
最简单的方法是用你不需要的 repo 注释掉以下行/etc/yum.repos.d/
答案4
您可以添加enabled=0
到存储库配置文件来禁用它。
存储库配置文件示例http://www.cyberciti.biz/tips/rhel5-fedora-core-add-new-yum-repository.html。