在从 lucid (10.04) 升级到 precise (12.04) 期间,X 会话冻结,我一直在尝试恢复升级以获得稳定的系统。我已执行以下步骤:
- 使用 ssh 通过网络登录到停滞的系统。
- 检查了目录内容。或
/var/log/dist-upgrade
上没有活动main.log
。apt.log
term.log
top
显示进程“precise”使用了大约 3% 的 CPU,但我找不到任何证据表明升级过程仍在执行任何操作。- 'dpkg' 没有出现在 top 中,但它出现了
pgrep dpkg | xargs ps
- 终止 'dpkg' 和 'precise' 进程
- 尝试通过运行 来恢复升级
sudo fuser -vki /var/lib/dpkg/lock;sudo dpkg --configure -a
。此操作部分成功(已配置一些软件包),但失败并显示消息Processing was halted because there were too many errors
。我运行了几次相同的命令,每次都配置了一些软件包,但其他软件包失败。 - 尝试运行
sudo apt-get -f install
。它失败并出现与 dpkg 类似的错误。
目前的情况是dpkg --configure -a
和sudo apt-get -f install
失败,出现两种错误:
依赖问题,例如:
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
资源冲突,例如:
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
我设法挽救了升级,尽管我不确定到底是什么起了作用。其他人可能仍会受益:
我设法通过切换到命令行终端 (Ctl+Alt+F2) 然后再切换回 X 终端 (Ctl+Alt+F7) 来恢复我的 X 会话,然后它要求我再次登录。系统不稳定但可以运行。然后我能够关闭几个与升级相关的提示。
更新管理器似乎没有禁用 PPA,所以我清理了
/etc/apt/sources.list.d/
(删除了所有条目)。IRC(#ubuntu)上有人建议我使用 ppa-purge 来清理 PPA,但最后我只是删除了它们。此后,
sudo apt-get update
和sudo apt-get -f install
解决了大部分剩余问题,但 仍然存在依赖性问题samba
。我设法通过删除 (
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”
“须藤 dpkg--配置-a”会失败并重启我的电脑(多次)
全部“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”消息(下载)。
- 再次奔跑“须藤 dpkg--配置-a”
当时它起作用了……不知道为什么/如何。但现在没问题了。