5/03/2012

解决unmet dependencies问题

ubuntu 12.04 LTS发布后,顺利升级家里的desktop版本后,手欠升级server版本。登录服务器后do-release-upgrade命令升级,执行到一半突然报错,尼玛,kernel too old(坑爹的服务商,后来提交ticket也不答应升级),无奈,还原回11.10. 手工更新source.list后,执行apt-get update && apt-get upgrade 报错
The following packages have unmet dependencies:

 libc6 : Depends: libc-bin (= 2.13-20ubuntu5.1)
 libnih-dbus1 : Depends: libnih1 (= 1.0.3-4ubuntu9) but 1.0.3-4ubuntu2 is installed

提示apt-get -f install操作,按照要求也是无法通过。原因很明显,部分packages升级了,有些还没来得及升级就中断了,结果检查依赖关系不一致。

曾尝试apt-get install这些package ,无效;Google后,都是什么apt-get -f install 解释,删除/var/cache/apt/archive/* 等等,都不能解决根本问题。

最后灵感一来,下载原版本deb进行手工更新 (packages.ubuntu.com是个好网站)
dpkg -i *.deb 解决问题。