我想升级我的内核,以尝试解决间歇性冻结的持续问题。
我尝试过手动安装内核,但它在配置过程中抛出错误,然后sudo apt upgrade
显示:
linux-headers-5.16.0-051600-generic : Depends: libssl3 (>= 3.0.0~~alpha1) but it is not installable
这是可以解决的事情吗?
就目前情况而言,我的 Linux 安装无法使用,在被迫回到 Windows 之前,我一直坚持使用这个内核作为我最后的尝试。
答案1
这是我如何让它工作的,它与@airium的答案类似,但使用了我使用的确切命令:
找到正确的内核版本这里;我选择了2011年5月16日。
下载适用于您的 CPU 的通用版本驱动程序;我有一个 64 位 CPU,所以我得到了 amd64。
mkdir tmp
cd tmp
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-headers-5.16.11-051611-generic_5.16.11-051611.202202230823_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-headers-5.16.11-051611_5.16.11-051611.202202230823_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-image-unsigned-5.16.11-051611-generic_5.16.11-051611.202202230823_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.16.11/amd64/linux-modules-5.16.11-051611-generic_5.16.11-051611.202202230823_amd64.deb
- 安装它们:
sudo dpkg -i *.deb
..._all.deb
由于版本已过时,libc6
您在安装时会收到错误消息libssl3
。您会发现这sudo apt install libssl3
不起作用,让我们修复它。
- 添加 Ubuntu 22.04 存储库:
sudo add-apt-repository "deb http://ca.archive.ubuntu.com/ubuntu jammy main"
- 现在,如果您尝试安装,
libssl3
它会告诉您运行以下命令:
sudo apt --fix-broken install
- 现在我认为您可以开始了,但我还再次运行 dpkg 命令以确保:
sudo dpkg -i *.deb
没有错误!
- 最后,删除 22.04 存储库:
sudo add-apt-repository --remove "deb http://ca.archive.ubuntu.com/ubuntu jammy main"
编辑:如果你以后尝试安装libc-dev
,它会抱怨它,除非你有 jelly 存储库。libc6-dev
只需将其添加回来、安装并删除即可。
答案2
警告:以下方法可能会破坏您的系统。你被警告了。
Ubuntu 主线内核 5.15.7+ 和 5.16 将要求从libssl1.1 (>= 1.1.0)
提高到libssl3 (>= 3.0.0~~alpha1)
.可以从头包中发现变化:
dpkg -I linux-headers-5.15.6-051506-generic_5.15.6-051506.202112010437_amd64.deb | grep Depends
# Depends: linux-headers-5.15.6-051506, libc6 (>= 2.34), libelf1 (>= 0.142), libssl1.1 (>= 1.1.0), zlib1g (>= 1:1.2.3.3)
dpkg -I linux-headers-5.15.7-051507-generic_5.15.7-051507.202112080459_amd64.deb | grep Depends
# Depends: linux-headers-5.15.7-051507, libc6 (>= 2.34), libelf1 (>= 0.142), libssl3 (>= 3.0.0~~alpha1), zlib1g (>= 1:1.2.3.3)
但是,该软件包libssl3
仅适用于 Ubuntu 22.04:libssl3
与其父包相同libssl-dev
,3.0+ 也仅适用于 Ubuntu 22.04:libssl 开发
因此,如果您运行的是 Ubuntu 21.10(或更低版本),apt 无法找到所需的 libssl3>3.0。
您可以尝试从 Ubuntu 22.04 手动下载并安装软件包: https://packages.ubuntu.com/jammy/amd64/libssl3/download
# wget http://mirrors.kernel.org/ubuntu/pool/main/o/openssl/libssl3_3.0.1-0ubuntu1_amd64.deb
# sudo dpkg -i libssl3_3.0.1-0ubuntu1_amd64.deb
不推荐这样做,因为 Ubuntu 21.10 或更低版本中不包含 libssl3,并且 Ubuntu 22.04 直到四月份才正式发布。但是,libssl3 具有与 libssl1.1 几乎相同的依赖性。那里应该在 Ubuntu 21.10 上使用它没有问题。
更新
如果您确实需要这些新内核ubuntu 20.04,从 ubuntu 22.04 下载以下 deb:
libc6_2.34-0ubuntu3_amd64.deb
libc6-dev_2.34-0ubuntu3_amd64.deb
libc-bin_2.34-0ubuntu3_amd64.deb
libc-dev-bin_2.34-0ubuntu3_amd64.deb
libnsl2_1.3.0-2build1_amd64.deb
libnsl-dev_1.3.0-2build1_amd64.deb
libssl3_3.0.1-0ubuntu1_amd64.deb
locales_2.34-0ubuntu3_all.deb
rpcsvc-proto_1.4.2-0ubuntu5_amd64.deb
如果您相信我,我已将其复制到 Google 云端硬盘:谷歌驱动器
将以上所有内容下载到一个文件夹后,运行:
# assume root and in this folder
dpkg --force-depends --install *.deb
apt --fix-broken install
您的 Ubuntu 20.04 现在适用于内核 5.16。在我的服务器上测试了一周,没有出现任何问题。
然而,众所周知,这在某些系统上仍然不起作用,并且会破坏它们!使用风险自负!请等待即将到来的 4 月份的 Ubuntu 22.04。
答案3
如果您确实需要更新版本的内核并且不想安装 gcc-11 和 libssl3 的整个rat's tail,则另一种选择是尝试自己构建内核,使用当前的 gcc 和当前的 libssl。
这是如何完成的:
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
该文档看起来比实际情况更复杂。在实践中,这几乎是微不足道的,因为唯一困难的部分是配置内核(以不同的方式),而您在这里不需要它。