为什么apt-get dist-upgrade命令不会升级linux-headers呢?

在安装了全新的Ubuntu 12.10之后,我遇到了一些安装Nvidia驱动程序的问题。
经过一些研究发现,在执行sudo apt-get dist-upgrade时,linux-headers没有被升级。尽管已经安装了linux-image包,但我不得不手动安装新的headers。
有人知道为什么会发生这种情况吗?这是正常现象还是有什么问题?
2个回答

如果你只安装了与你当前运行的内核版本匹配的linux-headers,例如linux-headers-3.5.0-18,那么它们将不会被升级。相反,请执行以下操作:
sudo apt-get install linux-headers-generic

-generic头文件包将在每次更新linux-image时更新头文件。

1我喜欢这个答案,但这是一个明显的陷阱。 - lacek

最近在安装Nvidia驱动程序时遇到了类似的问题。我并不是一个Linux专家,所以不知道从哪里开始寻找解决办法,但有一件事引起了我的注意。当我运行uname -r时,我得到的结果是
3.2.0-30-generic-pae

然后,运行dpkg -l | grep linux-headers:
ii  linux-headers-3.5.0-18                                      3.5.0-18.29                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-18-generic                              3.5.0-18.29                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-19                                      3.5.0-19.30                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-19-generic                              3.5.0-19.30                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-21                                      3.5.0-21.32                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-21-generic                              3.5.0-21.32                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-22                                      3.5.0-22.34                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-22-generic                              3.5.0-22.34                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-23                                      3.5.0-23.35                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-23-generic                              3.5.0-23.35                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-24                                      3.5.0-24.37                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-24-generic                              3.5.0-24.37                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-25                                      3.5.0-25.39                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-25-generic                              3.5.0-25.39                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-26                                      3.5.0-26.42                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-26-generic                              3.5.0-26.42                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-3.5.0-27                                      3.5.0-27.46                               all          Header files related to Linux kernel version 3.5.0
ii  linux-headers-3.5.0-27-generic                              3.5.0-27.46                               i386         Linux kernel headers for version 3.5.0 on 32 bit x86 SMP
ii  linux-headers-generic                                       3.5.0.27.43                               i386         Generic Linux kernel headers
ii  linux-headers-generic-pae                                   3.5.0.27.43                               i386         Transitional package

最后,dpkg -l | grep linux-image
rc  linux-image-3.2.0-23-generic-pae                            3.2.0-23.36                               i386         Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-30-generic-pae                            3.2.0-30.48                               i386         Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.2.0-31-generic-pae                            3.2.0-31.50                               i386         Linux kernel image for version 3.2.0 on 32 bit x86 SMP
rc  linux-image-3.5.0-27-generic                                3.5.0-27.46                               i386         Linux kernel image for version 3.5.0 on 32 bit x86 SMP

Linux-headers和linux-image包应该匹配吗?安装Nvidia驱动程序时遇到了同样的问题:找不到包linux-headers-3.2.0-30-generic-pae。更新似乎出了些问题。我该怎么办?


哦,这并不难。我安装了 _linux-image-generic-pae_,确实更新了我所使用的内核。然后我终于成功地安装了最新的Nvidia驱动程序。 - crypto_rsa