Linux命令+shell脚本大全:处理损坏的包依赖关系

有时在安装多个软件包时,某个包的软件依赖关系可能会被另一个包的安装覆盖掉。这叫作
损坏的包依赖关系(broken dependency)。
如果系统出现了这个问题,先试试下面的命令:
yum clean all
然后试着用 yum 命令的 update 选项。有时,只要清理了放错位置的文件就可以了。
如果这还解决不了问题,试试下面的命令:
yum deplist package_name
这个命令显示了所有包的库依赖关系以及什么软件可以提供这些库依赖关系。一旦知道某个
包需要的库,你就能安装它们了。下面是确定xterm包依赖关系的例子。

# yum deplist xterm
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: mirrors.bluehost.com
* extras: mirror.5ninesolutions.com
* updates: mirror.san.fastserv.com
Finding dependencies:
package: xterm.i686 253-1.el6
dependency: libncurses.so.5
provider: ncurses-libs.i686 5.7-3.20090208.el6
dependency: libfontconfig.so.1
provider: fontconfig.i686 2.8.0-3.el6
dependency: libXft.so.2
provider: libXft.i686 2.3.1-2.el6
dependency: libXt.so.6
provider: libXt.i686 1.1.3-1.el6
dependency: libX11.so.6
provider: libX11.i686 1.5.0-4.el6
dependency: rtld(GNU_HASH)
provider: glibc.i686 2.12-1.132.el6
provider: glibc.i686 2.12-1.132.el6_5.1
provider: glibc.i686 2.12-1.132.el6_5.2
dependency: libICE.so.6
provider: libICE.i686 1.0.6-1.el6
dependency: libXaw.so.7
provider: libXaw.i686 1.0.11-2.el6
dependency: libtinfo.so.5
provider: ncurses-libs.i686 5.7-3.20090208.el6
dependency: libutempter.so.0
provider: libutempter.i686 1.1.5-4.1.el6
dependency: /bin/sh
provider: bash.i686 4.1.2-15.el6_4
dependency: libc.so.6(GLIBC_2.4)
provider: glibc.i686 2.12-1.132.el6
provider: glibc.i686 2.12-1.132.el6_5.1
provider: glibc.i686 2.12-1.132.el6_5.2
dependency: libXmu.so.6
provider: libXmu.i686 1.1.1-2.el6
#


如果这样仍未解决问题,还有最后一招:
yum update --skip-broken
--skip-broken 选项允许你忽略依赖关系损坏的那个包,继续去更新其他软件包。这可能
救不了损坏的包,但至少可以更新系统上的其他包。
表9-6中列出了用 urpm 和 zypper 来尝试修复损坏的依赖关系的命令。用 zypper 时,只有一
个命令能够用来验证和修复损坏的依赖关系。用 urpm 时,如果 clean 选项不工作,你可以跳过
更新那些有问题的包。要这么做的话,就必须将有问题包的名字添加到文件/etc/urpmi/skip.list。

猜你喜欢

转载自blog.csdn.net/tysonchiu/article/details/125963183