2013-02-26 09:24:29 from—http://blog.chinaunix.net/uid-26552184-id-3499251.html

        apt-get安装软件的循环依赖问题,却不知如何解决卸载包时的循环依赖问题。如果A依赖于B,B又依赖于C,C又依赖于A,此时要想用apt-get remove/purge都是不能卸载软件的。要想解决的循环依赖软件的删除问题,必须要用到另一个包管理器dpkg.

dpkg和apt-get相比,两个都是软件包管理器,其不同点在于apt-get安装软件时可以解决包依赖问题,但dpkg却不能。

dpkg解决循环依赖软件的删除问题的方法如下:

#dpkg –ignore-depends=<软件包C>-P <软件包A>

注:用dpkg -r是不行的,P选项要删除所有的配置文件,而r选项不能。否则,在删除一个被依赖软件包时,会安装另外一个软件依赖包,做的是无用功。

–ignore-depneds选项,强制忽视列表当中的依赖包关系。

这样问题可解决。

插曲:如果在卸载某个软件之前,手动的卸载了它的配置文件,然后再次安装该软件,该软件包的配置文件不能把正确安装,此时如果要解决这个问题,需要查明系统当中所有的相关软件。

#dpkg –get-selections | grep <软件包名>

如果这些软件是循环依赖的,在用上面介绍的删除循环依赖软件的方法来删除软件。然后在重新安装需要安装的软件。