升级失败后dpkg出现问题

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
ichenq
帖子: 43
注册时间: 2008-06-02 18:22

升级失败后dpkg出现问题

#1

帖子 ichenq » 2009-09-21 9:08

使用更新管理器下载更新,但是没有下载完就停止了,并且让它安装那些下载好的软件包,于是用apt的时候就有下面的问题:

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
E: _cache->open() failed, please report.

按提示输入命令,但是失败了,显示结果如下:

chenq@ubuntu:~$ sudo dpkg --configure -a
正在设置 initramfs-tools (0.92bubuntu29) ...
update-initramfs: deferring update (trigger activated)

正在设置 linux-image-2.6.28-15-generic (2.6.28-15.49) ...
Running depmod.
update-initramfs: Generating /boot/initrd.img-2.6.28-15-generic
cpio: ./lib/klibc-*.so: Cannot stat: 没有该文件或目录
update-initramfs: failed for /boot/initrd.img-2.6.28-15-generic
Failed to create initrd image.
dpkg:处理 linux-image-2.6.28-15-generic (--configure)时出错:
子进程 post-installation script 返回了错误号 2

...
后面还有一长串相似的信息(出错,返回错误号)。

看起来好像linux-image-generic这个包出现问题,apt(新立得,更新管理器)已经不能用(返回 dpkg was interrupted... ...)
如何解决?
上次由 ichenq 在 2009-09-23 13:44,总共编辑 2 次。
头像
wzssyqa
帖子: 4010
注册时间: 2008-04-07 17:36
来自: 泰安人在阜新

Re: 升级失败后dpkg出现问题

#2

帖子 wzssyqa » 2009-09-21 9:17

cpio: ./lib/klibc-*.so: Cannot stat: 没有该文件或目录
ichenq
帖子: 43
注册时间: 2008-06-02 18:22

Re: 升级失败后dpkg出现问题

#3

帖子 ichenq » 2009-09-23 13:33

我知道大概的原因了。

我更新linux-image-2.6.28-15-generic这个软件包,但是这个软件包要依赖initramfs-tools_0.92bubuntu29_all.deb这个包,地址在这里:http://packages.ubuntu.com/zh-cn/jaunty/initramfs-tools

下载安装,然后显示错误:


正在解压缩将用于更替的包文件 initramfs-tools ...
dpkg:依赖关系问题使得 initramfs-tools 的配置工作不能继续:
initramfs-tools 依赖于 udev (>= 117-5);然而:
软件包 udev 还没有被配置。
dpkg:处理 initramfs-tools (--install)时出错:
依赖关系问题 - 仍未被配置
正在处理用于 man-db 的触发器...
在处理时有错误发生:
initramfs-tools


发现是缺少依赖的udev包,网上搜索显示initramfs-tools要依赖cpio,udev和klibc-utils 等共六个包,安全起见,一一下载然安装,但是安装udev包的时候,问题出来了,它显示如下:



正在解压缩将用于更替的包文件 udev ...
dpkg:依赖关系问题使得 udev 的配置工作不能继续:
udev 依赖于 initramfs-tools (>= 0.40ubuntu30);然而:
软件包 initramfs-tools 还没有被配置。
dpkg:处理 udev (--install)时出错:
依赖关系问题 - 仍未被配置
正在处理用于 man-db 的触发器...
在处理时有错误发生:
udev

也就是说udev这个包还得依赖initramfs-tools这个包,即这两个包互相依赖,这又如何操作啊?
ichenq
帖子: 43
注册时间: 2008-06-02 18:22

Re: 升级失败后dpkg出现问题

#4

帖子 ichenq » 2009-09-23 15:45

最后很离奇的解决了这个问题,还是把方法贴一下,希望对后来再次遇到这个问题的人有所帮助。

二楼也说了,是在这一行:
cpio: ./lib/klibc-*.so: Cannot stat: 没有该文件或目录

就是/lib下面该有一个以klibc.so开头的动态库。我将klibc的源码下了下来,试图手动生成一个动态库,无奈过程不是一般人能搞定,需要设置linux kernel tree等。

最后在这里http://packages.ubuntu.com/zh-cn/jaunty/libklibc下载libklibc将其搞定。


感慨~
其实是一个小问题……
回复