北京SEO

linux中yum更新遇到依赖错误问题解决办法

2019/10/10/17:46:01  阅读:3022  来源:谷歌SEO算法  标签: GDPR

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件了,但小编在使用yum更新遇到依赖错误了,下面给各位整理这些问题与处理办法.

redhat系列linux系统的yum,有时会出现错误的依赖,用linux早期,遇到该类问题简直是束手无策,无奈之下会在yum的“教唆“下使用“--skip-broken”参数,有时确实可以解决问题,但有时的后果,可以把系统玩儿坏,下次启动无法启动,或出现其它莫名其妙的问题.

列一个典型的错误依赖消息如下:

--> 正在处理依赖关系 /usr/sbin/ldconfig,它被软件包 libva1-1.3.1-11.el7.x86_64 需要

--> 正在处理依赖关系 /usr/sbin/ldconfig,它被软件包 libmad0-0.15.1b-4.el7.x86_64 需要

--> 正在处理依赖关系 /usr/sbin/ldconfig,它被软件包 librtmp0-2.3-1.el7.x86_64 需要

--> 正在处理依赖关系 /usr/sbin/ldconfig,它被软件包 libx264_142-0.142-20_20140406.2245.el7.x86_64 需要

--> 正在处理依赖关系 /usr/sbin/ldconfig,它被软件包 libxvidcore4-1.3.2-15.el7.x86_64 需要

.......

  1. 错误:软件包:libmad0-0.15.1b-4.el7.x86_64(@atrpms)
  2. 需要:/usr/sbin/ldconfig
  3. 正在删除:glibc-2.17-55.el7_0.1.i686(@updates)
  4. 未找到
  5. 更新,由:glibc-2.17-55.el7_0.3.i686(updates)
  6. 未找到
  7. 错误:软件包:librtmp0-2.3-1.el7.x86_64(@atrpms)
  8. 需要:/usr/sbin/ldconfig
  9. 正在删除:glibc-2.17-55.el7_0.1.i686(@updates)
  10. 未找到
  11. 更新,由:glibc-2.17-55.el7_0.3.i686(updates)
  12. 未找到

您可以尝试添加 --skip-broken 选项来解决该问题

您可以尝试执行:rpm -Va --nofiles --nodigest

看到了最后两行了吧,通常别听信它,小心,为了优雅的处理类似错误依赖的问题,要搞先了解一下该问题的原因,通常是在自己手动安装了一些非官方rpm包,或使用了多个yum源所致,尤其是升级安装了新版本的包,例如,在centos里为了安装某些软件而使用fedora里的包升级了系统自带的包.

个人经验如下:

先移除/etc/yum.repo.d/下非系统官方的源,备份到其它目录里,处理好问题后还移回来继续用.

yum list 查看系统都有哪些源的包,除了@base @anaconda @updates 之外的,都要留意一下,按“靠谱”程度从低到高逐渐移除。这里的“靠谱程度”,要凭一些经验的。 如本文前面列出错误依赖的这个例子,本人用了好多个源的包,@epel @atrpms @nux-dextop @google-chrome 等这几个第三方源,epel是很高质量的,google-chrome 只有chrome浏览器,其它几个就是不太靠谱的,先移除它们。

检查yum list列出的包名,是否用了fedora,或非本机架构的等的包(如x64系统下686的包),yum erase移除它们。卸载包时,注意着,别把重要的系统包卸载了。千万别这样带-y 参数据 yum erase {包名} -y,yum erase 卸载某个包时,系统提示会提示都移除哪些包,如果看着不对劲就按 N

最后,你会找到出问题的那个包名,即提示错误依赖的信息.

  1. -->正在处理依赖关系/usr/sbin/ldconfig,它被软件包libbluray1-0.4.0-6.el7.x86_64需要
  2. -->解决依赖关系完成
  3. 错误:软件包:libbluray1-0.4.0-6.el7.x86_64(@atrpms)
  4. 需要:/usr/sbin/ldconfig
  5. 正在删除:glibc-2.17-55.el7_0.1.x86_64(@updates)
  6. 未找到
  7. 更新,由:glibc-2.17-55.el7_0.3.x86_64(updates)
  8. 未找到//phpfensi.com

您可以尝试添加 --skip-broken 选项来解决该问题

您可以尝试执行:rpm -Va --nofiles --nodigest

会类似上面所示,只是少数一两个包,尝试卸载一下看看.

[root@fsc ~]# rpm -e libbluray1-0.4.0-6.el7.x86_64

错误:依赖检测失败:

  1. libbluray.so.1()(64bit)被(已安?)gvfs-1.16.4-7.el7.x86_64需要
  2. libbluray.so.1()(64bit)被(已安?)gvfs-fuse-1.16.4-7.el7.x86_64需要
  3. libbluray.so.1()(64bit)被(已安?)gvfs-afc-1.16.4-7.el7.x86_64需要
  4. libbluray.so.1()(64bit)被(已安?)gvfs-gphoto2-1.16.4-7.el7.x86_64需要
  5. libbluray.so.1()(64bit)被(已安?)gvfs-goa-1.16.4-7.el7.x86_64需要
  6. libbluray.so.1()(64bit)被(已安?)gvfs-mtp-1.16.4-7.el7.x86_64需要
  7. libbluray.so.1()(64bit)被(已安?)gvfs-smb-1.16.4-7.el7.x86_64需要
  8. libbluray.so.1()(64bit)被(已安?)gvfs-afp-1.16.4-7.el7.x86_64需要
  9. libbluray.so.1()(64bit)被(已安?)gvfs-archive-1.16.4-7.el7.x86_64需要
  10. libbluray.so.1()(64bit)被(已安?)libbluray-0.4.0-6.el7.x86_64需要
  11. libbluray1=0.4.0-6.el7被(已安?)libbluray-0.4.0-6.el7.x86_64需要

那查查系统里该包是什么版本吧 rpm -q {包名}

上面例子里,该包是atrpms源的包,比centos源里的包新。回忆时当时为了安装smplayer,装了一系列atrpms的包,而印象中,atrpms源有时会升级centos的包,所以就造成了yum update 升级系统时造成错误依赖。到centos镜像里下载这个rpm包,rpm --force -Uvh {包文件路径}覆盖安装一下,然后再yum更新试试。

如果没有问题,那就好了,再把yum 源的配置文件移回去,重新yum makecache,然后根据刚才卸载的包的记录,把它们安装上,可参考history 命令的记录.

广告内容

linux中yum更新遇到依赖错误问题解决办法 linux中yum更新遇到依赖错误问题解决办法 linux中yum更新遇到依赖错误问题解决办法

相关阅读

热门评论

sunshine技术博客 sunshine技术博客

sunshine技术博客

总篇数164

精选文章

Mysql数据库错误代码中文说明详解 php+mysql+session登录实例程序代码 MySQL选择数据库use与mysql_select_db使用详解 mysqldump数据备份与还原详细介绍 GitHub用户发起HTML5网页移植版《星际争霸》项目 mysql创建和删除索引的笔记 wdcp安装apache安装mod_proxy代理模块 Linux操作系统RPM与TAR的基本安装和卸载 mysql InnoDB数据无法启动解决办法 批量删除阿里云OSS Object的脚本

SEO最新算法