apt-get无法升级旧的generic-pae。

运行 #apt-get upgrade 命令时,我被告知要运行 sudo apt-get -f install。我照做了,然后看到:
The following extra packages will be installed:
  linux-generic-pae linux-headers-generic-pae linux-image-generic-pae
The following packages will be upgraded:
  linux-generic-pae linux-headers-generic-pae linux-image-generic-pae
3 upgraded, 0 newly installed, 0 to remove and 138 not upgraded.
3 not fully installed or removed.
Need to get 0 B/6,460 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: dependency problems prevent configuration of linux-image-generic-pae:
 linux-image-generic-pae depends on linux-image-3.2.0-48-generic-pae; however:
  Package linux-image-3.2.0-48-generic-pae is not installed.
dpkg: error processing linux-image-generic-pae (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: dependency problems prevent configuration of linux-headers-generic-pae:
 linux-headers-generic-pae depends on linux-headers-3.2.0-48-generic-pae; however:
  Package linux-headers-3.2.0-48-generic-pae is not installed.
dpkg: error processing linux-headers-generic-pae (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
dpkg: dependency problems prevent configuration of linux-generic-pae:
 linux-generic-pae depends on linux-image-generic-pae (= 3.2.0.48.58); however:
  Package linux-image-generic-pae is not configured yet.
 linux-generic-pae depends on linux-headers-generic-pae (= 3.2.0.48.58); however:
  Package linux-headers-generic-pae is not configured yet.
dpkg: error processing linux-generic-pae (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
Errors were encountered while processing:
 linux-image-generic-pae
 linux-headers-generic-pae
 linux-generic-pae
E: Sub-process /usr/bin/dpkg returned an error code (1)

这是我的/usr/src目录清单:
/usr/src:
total used in directory 88 available 19619852
drwxr-xr-x 22 root root 4096 Feb  1 23:21 .
drwxr-xr-x 10 root root 4096 Aug 31  2012 ..
drwxr-xr-x 24 root root 4096 Jan 18  2013 linux-headers-3.2.0-36
drwxr-xr-x  7 root root 4096 Jan 18  2013 linux-headers-3.2.0-36-generic-pae
drwxr-xr-x 24 root root 4096 Feb  1  2013 linux-headers-3.2.0-37
drwxr-xr-x  7 root root 4096 Feb  1  2013 linux-headers-3.2.0-37-generic-pae
drwxr-xr-x 24 root root 4096 Feb 22  2013 linux-headers-3.2.0-38
drwxr-xr-x  7 root root 4096 Feb 22  2013 linux-headers-3.2.0-38-generic-pae
drwxr-xr-x 24 root root 4096 Mar 19  2013 linux-headers-3.2.0-39
drwxr-xr-x  7 root root 4096 Mar 19  2013 linux-headers-3.2.0-39-generic-pae
drwxr-xr-x 24 root root 4096 Apr  9  2013 linux-headers-3.2.0-40
drwxr-xr-x  7 root root 4096 Apr  9  2013 linux-headers-3.2.0-40-generic-pae
drwxr-xr-x 24 root root 4096 May  2  2013 linux-headers-3.2.0-41
drwxr-xr-x  7 root root 4096 May  2  2013 linux-headers-3.2.0-41-generic-pae
drwxr-xr-x 24 root root 4096 May 16  2013 linux-headers-3.2.0-43
drwxr-xr-x  7 root root 4096 May 16  2013 linux-headers-3.2.0-43-generic-pae
drwxr-xr-x 24 root root 4096 May 24  2013 linux-headers-3.2.0-44
drwxr-xr-x  7 root root 4096 May 24  2013 linux-headers-3.2.0-44-generic-pae
drwxr-xr-x 24 root root 4096 May 31  2013 linux-headers-3.2.0-45
drwxr-xr-x  7 root root 4096 May 31  2013 linux-headers-3.2.0-45-generic-pae
drwxr-xr-x 24 root root 4096 Feb  1 23:21 linux-headers-3.2.0-58
drwxr-xr-x  7 root root 4096 Feb  1 23:21 linux-headers-3.2.0-58-generic-pae

大多数其他机器上的数字都在45到58之间。我觉得我甚至不需要这个48版本,对吗?

1可能是重复的问题,可以参考如何解决未满足的依赖关系? - jobin
你可以只保留最新的运行良好的内核。使用 uname -r 命令检查当前正在使用的内核。此外,访问以下链接以获取有关删除旧内核的更多信息:如何移除或隐藏旧的内核版本,以清理引导菜单? - rusty
1这种情况下,无论是http://askubuntu.com/questions/140246/how-do-i-resolve-unmet-dependencies还是http://askubuntu.com/questions/2793/how-do-i-remove-or-hide-old-kernel-versions-to-clean-up-the-boot-menu都无法帮助。 - Avinash Raj
1个回答

移除或强制移除与以下类型错误对应的软件包将解决问题。
dpkg: error package-name (--configure):
 dependency problems - leaving unconfigured

在这个问题中,这三个软件包出现了“未配置”的错误。
linux-image-generic-pae
linux-headers-generic-pae
linux-generic-pae

所以我们必须通过运行以下命令来删除这些软件包,
sudo dpkg -r linux-image-generic-pae
sudo dpkg -r linux-headers-generic-pae
sudo dpkg -r linux-generic-pae

如果在删除上述内容时出现任何依赖问题,则使用以下的 force 选项,否则跳过。

注意:只有在所有其他方法都无效时才使用强制选项。

通过运行以下命令强制删除上述三个软件包,

sudo dpkg --purge --force-all --force-remove-reinstreq linux-image-generic-pae
sudo dpkg --purge --force-all --force-remove-reinstreq linux-headers-generic-pae
sudo dpkg --purge --force-all --force-remove-reinstreq linux-generic-pae

现在你可以运行升级。

sudo apt-get -f install
sudo apt-get upgrade

如果您想重新安装软件包,请运行以下命令。
sudo apt-get install linux-image-generic-pae
sudo apt-get install linux-headers-generic-pae
sudo apt-get install linux-generic-pae

1有两个问题。首先,旧内核没有被删除,导致我的分区空间满了。其次,我猜升级失败了,留下了混乱的依赖关系。 - BentFranklin
我曾看到过显示这个答案的帖子,但它们是针对应用程序而不是系统内部的,所以我一直不敢轻率地删除linux-generic-pae及其相关内容。 - BentFranklin