我该如何修复apt / dpkg?

当我尝试运行时,Apt不断崩溃

apt-get upgrade xxx@xxx:/root/# sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done The following packages have been kept back: linux-generic linux-headers-generic linux-image-generic The following packages will be upgraded: cvs dovecot-common dovecot-pop3d language-pack-en language-pack-en-base language-pack-gnome-en language-pack-gnome-en-base libgssapi-krb5-2 libk5crypto3 libkrb5-3 libkrb5support0 libssl0.9.8 login openssl passwd 15 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. 1 not fully installed or removed. Need to get 0B/14.9MB of archives. After this operation, 3,731kB of additional disk space will be used. Do you want to continue [Y/n]? y Preconfiguring packages ... (Reading database ... dpkg: warning: files list file for package `cvs' missing, assuming package has no files currently installed. (Reading database ... 141611 files and directories currently installed.) Preparing to replace cvs 1:1.12.13-12ubuntu1 (using .../cvs_1%3a1.12.13-12ubuntu1_amd64.deb) ... Unpacking replacement cvs ... 

它只是挂在那里:(,CTRL + C什么都不做,我已经开车杀死dpkg,然后apt

 sudo killall -9 dpkg sudo killall -9 apt-get 

但dpkg仍然运行:(

我设法杀死所有进程,并试图删除CVS(认为这是问题,但我没有运气)。

尝试这个,

当你gt卡住在这种情况下背景当前进程与CTRL + Z

那应该再给你壳了。

然后做pgrep dpkg | xargs kill -9 pgrep dpkg | xargs kill -9 #杀死所有匹配stringdpkg的进程

pgrep apt-get | xargs kill -9 pgrep apt-get | xargs kill -9 #杀死所有匹配stringapt-get的进程

dpkg --purge cvs #删除当前安装的cvs软件包

apt-get update #更新apt存储库中的软件包列表

apt-get install cvs #从更新的存储库中安装cvs软件包

我首先试着找出过程正在做什么以及为什么它可能会卡在那里。 这很可能是一个独立于缺less的文件列表的问题(你已经通过在上面安装完全相同版本的软件来解决了这个问题;然后dpkg会从新的软件包中生成一个新的文件列表)。

我认为你的文件系统可能有问题,如目录硬链接的循环或其他不一致的内容在这里混淆内核; 因此我在这种情况下的第一步就是确认这一点(例如,通过检查哪个内核函数阻塞进程),如果确实如此,则重新启动并强制进行文件系统检查。

刚刚碰到了这个bug,显然已经知道并积极的在这里工作:

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/624877