断続的に停止する問題を解決するためにカーネルをアップグレードしたいと思います。
カーネルを手動でインストールしようとしましたが、構成中にエラーが発生し、次のように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
ゼリーストアがないと文句を言うでしょう。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は4月まで正式にリリースされていないからです。ただし、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ドライブにコピーしました。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のフルラットテールをインストールしたくない場合は、別のオプションは次のことを試すことです。カーネルを直接ビルドし、現在のgccと現在のlibsslを使用してください。
実行方法:
https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel
文書は実際よりも複雑に見えます。実際、これはカーネルを別の方法で構成することが唯一の難しい部分であり、ここでは必要ではないので、これはほとんどマイナーなことです。