我正在使用 apt-get 命令运行升级,但花费的时间特别长,因为在升级过程中,我的 ISP 突然向我提出了公平使用政策。
在外面坐了一会儿,看了一会儿雨,我的电子设备恢复了意识,所以我回去完成升级,我的终端责骂我
"E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem."
最后可读的信息如下:
Installing (ri/RDoc) documention for (stuff and such)
ERROR: Could not find a valid gem 'watobo-0.9.8.724.gem' (>= 0) in any repository
rm: cannot remove `watobo-0.9.8.724.gem': No such file or directory
Setting up metasploit (4.3.0-bt1) ...
Upgrading Pre-Existing Installation...
/opt/metasploit/postgresql/scripts/ctl.sh : postgresql (pid 1191) already running
prosvc is running
metasploit is running
[*]
[*] Attempting to update the Metasploit Framework...
[*]
就这样,我滔滔不绝地谈论着宝石藏匿处、红宝石和我希望拥有的东西。直到:
A lib/gemcache/ruby/1.9.1/gems/state_machine-1.1.2/gemfiles/active_record-2.1.2.gemfile.lock
...它就在那里,一整晚都待着。如果我停止它,我是否还会收到 dpkg 错误(万一不会呢),或者如果会,我需要做什么才能恢复使用 apt-get 命令及其超级牛能力?
答案1
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
这个错误实际上正在告诉您到底出了什么问题:dpkg
由于包配置不正确而被中断。
运行它告诉您的命令sudo dpkg --configure -a
,它应该能够自我纠正。
如果没有,请尝试运行sudo apt-get install -f
(修复损坏的包)然后sudo dpkg --configure -a
再次尝试运行。
只需确保您可以访问互联网,以便可以下载任何依赖项。
如果您所说的升级是指尝试进行发行版升级(例如 11.10 → 12.04),那么这些说明可能不起作用,apt-get dist-upgrade
您需要编辑您的问题以反映这一点。
答案2
我尝试了@TrailRider 的解决方案,但对我不起作用。我通过以下方式解决了这个问题:
使用以下命令删除更新:
cd /var/lib/dpkg/updates sudo rm *
尝试更新并升级:
sudo apt update sudo apt upgrade
我不能,它说:
E: Could not get lock /var/lib/dpkg/lock
这意味着某些程序正在更新系统或安装新软件。
重要的:检查是否有其他进程正在锁定
dpkg
文件而不是立即删除它们。因为如果是这种情况,您应该等待它们完成。检查某些程序是否锁定
dpkg
文件:ps aux | grep -i apt
如果你只有一个输出,那么结束的方式如下:
S+ 19:16 0:00 grep --color=auto -i apt
你很幸运。你可以删除
dpkg
锁定文件,然后手动逐个检查:sudo lsof /var/lib/dpkg/lock sudo lsof /var/lib/apt/lists/lock sudo lsof /var/cache/apt/archives/lock
要删除它们,请使用:
sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock
再试一次:
sudo dpkg --configure -a
它应该可以工作。
您应该尝试使用以下命令恢复当时正在安装的任何内容:
sudo apt update sudo apt upgrade
这应该会恢复该过程并使一切保持稳定。
这就是我修复它的方法。
笔记:我建议您无论如何都要跟踪/记录您正在应用的命令,如果出现问题,这种预防措施将有助于其他人帮助您。
答案3
启动到 GRUB 菜单,选择Ubuntu 的高级选项,然后选择第二个选项(具有(恢复模式)最后)。然后运行sudo dpkg --configure -a
以纠正问题。以下详细说明描述了如何逐步执行此操作。
启动进入恢复模式
计算机启动时,主板/计算机制造商徽标出现启动画面后,立即使用 BIOS 快速按住该Shift键,这将调出 GNU GRUB 菜单画面。使用 UEFI 按下(可能多次)该Esc键即可进入 GNU GRUB 菜单画面。有时制造商的启动画面是 Windows 引导加载程序的一部分,因此当您启动机器时,它会直接进入 GNU GRUB 菜单画面,然后Shift无需按下。
按下左键的时机Shift可能很难把握,所以有时如果你错过了,你需要再试一次。如果这不起作用,请尝试以下答案我无法在启动过程中显示 GRUB 菜单然后运行 sudo dpkg --configure -a' 来解决问题
您将看到如下所示的 GNU GRUB 菜单屏幕。选择Ubuntu 的高级选项然后按Enter。
将出现一个新的紫色屏幕,显示内核列表,其中包括正常启动内核或在恢复模式下启动内核的选项。
按向下箭头键,直到选择从顶部开始第二个条目(一个带有描述中的恢复模式),然后按Enter两次。
现在您应该看到这个恢复菜单:
使用箭头键向下滚动到网络(恢复菜单底部第三个条目),然后按Enter。
使用箭头键向下滚动到根(恢复菜单底部第二个条目),然后按Enter。
您现在应该看到一个 root 提示符,并且可以从中运行命令。
运行“sudo dpkg --configure -a”来解决问题
运行以下命令。
sudo mount -o remount,rw /
fsck -f /
sudo dpkg --configure -a
sudo apt-get install -f