如何从失败的升级中恢复(“apt-get -f install”和“dpkg --configure -a”失败)?

如何从失败的升级中恢复(“apt-get -f install”和“dpkg --configure -a”失败)?

在从 lucid (10.04) 升级到 precise (12.04) 期间,X 会话冻结,我一直在尝试恢复升级以获得稳定的系统。我已执行以下步骤:

  1. 使用 ssh 通过网络登录到停滞的系统。
  2. 检查了目录内容。或/var/log/dist-upgrade上没有活动main.logapt.logterm.log
  3. top显示进程“precise”使用了大约 3% 的 CPU,但我找不到任何证据表明升级过程仍在执行任何操作。
  4. 'dpkg' 没有出现在 top 中,但它出现了pgrep dpkg | xargs ps
  5. 终止 'dpkg' 和 'precise' 进程
  6. 尝试通过运行 来恢复升级sudo fuser -vki /var/lib/dpkg/lock;sudo dpkg --configure -a。此操作部分成功(已配置一些软件包),但失败并显示消息Processing was halted because there were too many errors。我运行了几次相同的命令,每次都配置了一些软件包,但其他软件包失败。
  7. 尝试运行sudo apt-get -f install。它失败并出现与 dpkg 类似的错误。

目前的情况是dpkg --configure -asudo apt-get -f install失败,出现两种错误:

  1. 依赖问题,例如:

    dpkg: dependency problems prevent configuration of cifs-utils:
    cifs-utils depends on samba-common; however:
    Package samba-common is not configured yet.
    dpkg: error processing cifs-utils (--configure):
    dependency problems - leaving unconfigured
    
  2. 资源冲突,例如:

    debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable
    

此外,似乎存在潜在的启动问题,因此如果不先修复安装,我就不愿意重新启动:

    dpkg: too many errors, stopping
    Processing triggers for initramfs-tools ...
    update-initramfs: Generating /boot/initrd.img-3.2.0-25-generic
    cryptsetup: WARNING: failed to detect canonical device of /dev/sda1
    cryptsetup: WARNING: could not determine root device from /etc/fstab

所以我的问题是,当失败时如何进行有效的安装dpkg --configure -a

答案1

我设法挽救了升级,尽管我不确定到底是什么起了作用。其他人可能仍会受益:

  1. 我设法通过切换到命令行终端 (Ctl+Alt+F2) 然后再切换回 X 终端 (Ctl+Alt+F7) 来恢复我的 X 会话,然后它要求我再次登录。系统不稳定但可以运行。然后我能够关闭几个与升级相关的提示。

  2. 更新管理器似乎没有禁用 PPA,所以我清理了/etc/apt/sources.list.d/(删除了所有条目)。IRC(#ubuntu)上有人建议我使用 ppa-purge 来清理 PPA,但最后我只是删除了它们。

  3. 此后,sudo apt-get updatesudo apt-get -f install解决了大部分剩余问题,但 仍然存在依赖性问题samba

  4. 我设法通过删除 ( sudo apt-get remove samba) 并重新安装 ( sudo apt-get install samba) 来修复 Samba。

此后,系统基本稳定了。我还必须在重启后删除并重新安装 Unity,但除此之外,它运行良好。

答案2

我今天尝试升级到 14.04 时遇到了这个问题。我注意到类似的消息:

debconf: DbDriver "config": /var/cache/debconf/config.dat is locked by another process: Resource temporarily unavailable

我曾经sudo fuser /var/cache/debconf/config.dat弄清楚哪个进程卡住了。请注意,您必须找到“卡住”的确切文件。显然是某些前端的东西没有正确弹出,但确实锁定了更新的进度。终止该进程后,我能够使用常规命令恢复修补系统。

答案3

我遇到了类似的问题:1. Synaptics 无法启动 ==> 错误消息:“运行 sudo dpkg--configure-a”

  1. “须藤 dpkg--配置-a”会失败并重启我的电脑(多次)

  2. 全部“sudo apt-get……”意图会失败并显示相同的错误消息: $ sudo apt-get autoclean E: 如果中断 dpkg 的执行,则必须手动执行“sudo dpkg --configure -a”来解决问题。

对我有用:1.运行多次“sudo apt-get update”直到不再下载包。

通过 N: 点火http://es.archive.ubuntu.comtrusty/universe Translation-es_ES 下载 4.294 kB 共 31 节。 (137 kB/s) E: 如果中断 dpkg 的执行,则需要手动执行“sudo dpkg --configure -a”来解决问题 $

通过 N+1: 点火http://es.archive.ubuntu.comtrusty/universe Translation-es_ES E: 如果中断 dpkg 的执行,则必须手动执行“sudo dpkg --configure -a”来解决问题 $ 直到没有出现“Descargados”消息(下载)。

  1. 再次奔跑“须藤 dpkg--配置-a”

当时它起作用了……不知道为什么/如何。但现在没问题了。

相关内容