大部分LINUX系统都使用软件包管理系统来管理软件,处理软件包之间的依赖与冲突关系,并且实现自动更新与便捷安装。RED HAT(FEDORA)用的是rpm包+yum,而DEBIAN(UBUNTU)用的是deb包+apt,后者被认为是华丽的解决了前者常常遇到的令人困 惑的依赖问题。

然而,并不是UBUNTU就不会碰上囧事了。如果你爱折腾,尤其是爱折腾软件源列表,比如心血来潮加几个PPA源,就有可能陷入依赖的泥潭之中。

比如我前几天就给刚刚装好的UBUNTU 9.10加了一个TELEPATHY(包括empathy)的PPA源,然后更新了软件包,结果突然发现PPA里的某些包依赖非常奇怪,安装了 empathy-common却把empathy给卸载了,说是冲突,结果导致我empathy不能用。把PPA源删掉,更新了列表以后发现之前更新的软 件包全都变为“本地或陈旧的”,想要删除却发现会删除一大堆依赖它的软件包……大囧。

多方求助无果,最后是一位朋友给我提供了思路。想办法还原为官方源的版本。他给出的方法是去官方源里直接下载相应的deb包来手动安装,但是由于数量太多很不现实。

后来我突然发现新立得的“软件包”菜单里头有一个“强制版本”功能,点击以后有两个版本让我选择,一个是PPA(现在是本地了),另一个就是官方源karmic版本。就是这个!全选所有有问题的包,强制为官方版本,应用,搞定!

————–

总结:

“强制版本”对于解决很多莫名其妙的依赖问题十分有用。

如果你用非官方的软件包替换了系统默认安装的包导致出现依赖问题,这时不能删除包,只能用“强制版本”功能替换为官方版本,即可解决。

这个功能同时也适用于不想在使用PPA源,但是又不希望出现一大串的“本地”包的情况。