我刚刚将我的桌面从 ubuntu 14.04 LTS 升级到 16.04 LTS。我遇到了与此处描述的相同的情况内核在 14.04 LTS 和 16.04 LTS 之间没有升级和为什么 apt 不再更新内核?但这些解决方案对我都不起作用。
当sudo apt-get install linux
我这样做时
dev:~$sudo apt-get install linux
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux
当sudo apt install linux-generic
我这样做时
dev:~$sudo apt install linux-generic
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
linux-generic : Depends: linux-headers-generic (= 4.4.0.66.70) but 4.4.0.67.72 is to be installed
E: Unable to correct problems, you have held broken packages.
cat /etc/os-release
dev:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
已安装的图像是(很长但在最后显示):
dpkg -l | grep linux-image
linux-image-extra-3.13.0-113-generic 3.13.0-113.160 amd64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
rc
linux-image-extra-4.4.0-67-generic 4.4.0-67.88 amd64 Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
还有这个:
dev:~$ uname -r
3.13.0-113-generic
我自己没有安装任何内核,但我知道我可能做了一些事情。
我该如何解决这种情况?
编辑
dev:~/temp$ apt-cache policy linux-headers-generic
linux-headers-generic:
Installed: 4.4.0.67.72
Candidate: 4.4.0.67.72
Version table:
*** 4.4.0.67.72 100
100 /var/lib/dpkg/status
4.4.0.66.70 500
500 http://se.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
4.4.0.21.22 500
500 http://se.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
编辑2
fkraiem 提供的答案解决了我的问题,但我也在 user535733 的答案的帮助下升级了内核。谢谢大家!
答案1
由于未知的原因,您的系统上安装了 版本4.4.0.67.72
,linux-headers-generic
但官方 Ubuntu 16.04 存储库中的最新版本是4.4.0.66.70
。
当您尝试从存储库安装最新内核(也是版本)时4.4.0.66.70
,它需要相应版本的标头。但是,由于您已经拥有更高的版本,因此安装会失败,因为 Apt 永远不会自动降级软件包。
因此,解决方案是手动安装正确版本的标题sudo apt install linux-headers-generic=4.4.0.66.70
(Apt 会警告您有关降级,但会在您确认后继续)。
答案2
您应该安装 Ukuu(Ubuntu 内核升级实用程序)。这将使安装和删除内核变得非常容易。
sudo apt-add-repository -y ppa:teejee2008/ppa
然后:
sudo apt-get update
安装Ukuu:
sudo apt-get install ukuu
安装后,打开它(在终端中输入“ukuu”)。刷新列表后,选择最新的稳定内核(带有红色图标的内核版本不稳定)。截至本文发布时,最新稳定版本为 4.10.6。选择它并单击“安装”。等待安装,安装完成后将出现一个窗口警告您有关较新的内核。不要担心。
重新启动计算机,内核将被更新。
答案3
似乎您在添加 -proposed 存储库时破坏了您的系统,然后您跳过了一堆升级。
线索:
- 内核 4.4.0.72 已被提议,但后来被删除。
- linux-image-generic 元包指向已删除的内核映像。
如何修复:
禁用 -proposed 存储库。-proposed 用于测试,损坏可能。您不是测试人员……否则您早就知道如何解决这个简单的问题了。我们不知道您使用哪种方法来启用建议的,因此撤销它取决于您。
由于您更改了来源,请更新可用包的数据库:
sudo apt update
从本地缓存中删除旧的元包,这样它就不会重新安装:
sudo apt clean linux-image-generic
下载并安装指向当前内核映像的新元包:
sudo apt install --reinstall linux-image-generic
最后,测试你的包管理器是否正常运行。
sudo apt upgrade
应该没有错误。[可选] 由于您可能从 -proposed 添加了其他软件包,请使用 列出这些软件包
apt list --installed | grep -v xenial
。如果出现问题,请将它们恢复到 -updates 或 -security 版本。