RedHat 8でRPMをバージョン4.16にアップグレードしたいです。現在私がインストールしたのは4.14.3です。
アップグレードしようとすると、「何もしません」というメッセージが表示されます。
$ sudo yum -yアップグレードrpm サブスクリプション管理リポジトリを更新します。 最後のメタデータの有効期限を確認:2022年10月12日水曜日午前8時51分51秒PDT 0時7分41秒前。 依存関係が解決されました。 することはありません。 十分!
RPM URLを指定できると思いましたが、この回答、RHEL RPMリポジトリは公開されていません。
RedHat 8からRPM 4.16にアップグレードするには?
答え1
RHELなどの安定したディストリビューションは通常、最新バージョンのソフトウェアを提供せず、バックポートのバグ修正とセキュリティ問題の修正のみを提供します。 RPM 4.14がRHEL 8リポジトリで利用可能な最新バージョンである場合(CentOS 8 Streamリポジトリで利用可能なバージョンであるため、RHEL 8でも利用可能な最新バージョンである可能性が高い)、そのRPMバージョンが使用中です。
4.16はRHEL 9(CentOS 9 Streamベース)でも利用できるため、何らかの理由で4.16が必要な場合はRHEL 9にアップグレードすることをお勧めします。
(ソースから最新バージョンのRPMを手動でインストールすることはできますが、お勧めできません。下位レベルのシステムツールとライブラリを手動でアップグレードすると、システムが破損する可能性があります。)
答え2
それいいえRHELについて。
この取引について最大Linuxディストリビューション。それらは一緒に編まれた緩い構成要素の集まりではありません。
実際には複雑な依存関係を持つ非常に厳しいパッケージのセットなので、リリースAバージョンNの場合、コンポーネントのXYおよびZバージョンのみを持つことができます。そうしないと、依存関係が破壊されるため、システムは動作を停止します。
マイクロソフトは、以前はWindows Vistaを介してこの問題を解決しました。WinSxS、残念ながら、次の理由でLinuxでは動作しません。
- メンテナンス費用は非常に高価です。
- ビルド時には依存関係に注意する必要があり、Linuxディストリビューションには
/usr/include
1つのディレクトリしかありません。 - Microsoftはntoskrnlやuser32などのAPI / ABIコアコンポーネントに対して100%信頼性を持っていますが、Linuxはそうではありません。ほぼすべてのバージョンに新しいAPIがGlibcに追加され、すべてのライブラリを調整することはほとんど不可能です。
RPMは、自由に交換/更新できない重要なコンポーネントです。ソースから新しいバージョンをコンパイルして、たとえばまたはインストールすることが/usr/local
できますが、/opt/rpm
既存のRPMデータベースと一緒に使用すると、既存のRPMパッケージマネージャでRPMデータベースが破損する可能性があります。