当我尝试运行时,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(我认为那是问题所在但我没有运气)。
答案1
尝试这个,
当你陷入这种情况时,使用 CTRL+Z 在后台处理当前进程
这应该会再次给你 shell。
然后执行
pgrep dpkg | xargs kill -9
# 终止所有匹配字符串 dpkg 的进程
pgrep apt-get | xargs kill -9
# 终止所有匹配字符串 apt-get 的进程
dpkg --purge cvs
# 删除当前安装的 cvs 包
apt-get update
# 从你的 apt 存储库更新软件包列表
apt-get install cvs
# 从更新的存储库安装 cvs 包
答案2
我首先会尝试找出该进程正在做什么以及为什么它会卡在那里。这很可能是一个与缺少文件列表无关的问题(您已经通过在上面安装完全相同版本的软件包解决了这个问题;然后 dpkg 只会从新软件包生成新的文件列表)。
我认为您的文件系统可能有问题,例如目录硬链接循环或其他不一致之处使内核感到困惑;因此,在这种情况下,我的第一步是确认这一点(例如,通过检查进程在哪个内核函数中被阻止),如果确实如此,则重新启动并强制进行文件系统检查。
答案3
我自己刚刚遇到了这个错误 - 它显然是已知的并且在这里积极地工作: