E:dpkg 被中断...运行“sudo dpkg --configure -a”

E:dpkg 被中断...运行“sudo dpkg --configure -a”

我正在使用 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 的解决方案,但对我不起作用。我通过以下方式解决了这个问题:

  1. 使用以下命令删除更新:

    cd /var/lib/dpkg/updates
    
    sudo rm *
    
  2. 尝试更新并升级:

    sudo apt update
    
    sudo apt upgrade
    
  3. 我不能,它说:

    E: Could not get lock /var/lib/dpkg/lock
    

    这意味着某些程序正在更新系统或安装新软件。

  4. 重要的:检查是否有其他进程正在锁定dpkg文件而不是立即删除它们。因为如果是这种情况,您应该等待它们完成。

  5. 检查某些程序是否锁定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
    
  6. 再试一次:

    sudo dpkg --configure -a
    

    它应该可以工作。

  7. 您应该尝试使用以下命令恢复当时正在安装的任何内容:

    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

相关内容