以下の内容はhttps://techblog.techfirm.co.jp/entry/how-to-use-dnf-commandより取得しました。


Amazon Linux 2023(AL2023)でパッケージを更新する方法

はじめに

Amazon Linux 2の後続OSは、当初Amazon Linux 2022としてリリースされる予定が、リリース時期が2023年にずれ込んだことからAmazon Linux 2023として2023年3月にようやくGAされました。
AL2のサポート終了がようやく正式に発表されたことで、2024年12月現在ではAL2023を採用した、もしくはこれから採用を予定しているシステムが、徐々に増えてきているのではないでしょうか。

AL2023のベースOS

AL2023のユーザーガイドによると、AL2023には、Fedora 34~36のコンポーネントが含まれているそうです。
Fedora との関係 - Amazon Linux 2023
Fedoraとは、Linuxベースのオープンソースソフトウェアで、Red Hat社がスポンサーとなり、世界中のコミュニティによって開発されています。

dnfコマンド

AL2023でパッケージのインストールやアップデートなどはdnfコマンドを使用します。
AL2023のユーザーガイドには下記のように書かれており、yumコマンドも一部のオプションで使用可能です。

AL2023 では、yum コマンドは引き続き使用できますが、dnf コマンドへのポインタとして利用できます。そのため、yum コマンドをシェルまたはスクリプトで使用すると、すべてのコマンドとオプションは DNF CLI と同じになります。

yumコマンドとdnfコマンドの相違点は下記にて確認できます。
Changes in DNF CLI compared to YUM — DNF @DNF_VERSION@-1 documentation

パッケージの更新

前述の通り、AL2023のEC2インスタンスでパッケージを更新する際は、dnfコマンドを使用します。
AL2023は、リポジトリの特定のバージョンにロックされますので、sudo dnf upgrade packagename では、アップデートできない場合があります。

インスタンス上のリポジトリについては、AL2023のユーザーガイドには下記記載があります。

AL2023 AMIsは特定のバージョンの Amazon Linuxリポジトリにロックされます。セキュリティ修正とバグ修正の両方を AL2023 インスタンスに適用するには、DNF を最新の利用可能なリポジトリバージョンに設定します。または、新しい AL2023 インスタンスを起動します。

AL2023 でパッケージとオペレーティングシステムの更新を管理する - Amazon Linux 2023

更新の一貫性

前述した通り、AL2023は特定のリポジトリバージョンにロックされますが、リポジトリバージョンを指定することで最新のパッケージや更新を入手できます。
複数のインスタンスで同一のリポジトリバージョンを利用することができるので、環境全体でパッケージバージョンや更新の一貫性を保つことができます。
また、既存のAMIから起動したインスタンスでは、パッケージバージョンが自動的に更新されることはありません。
AL2023 のバージョニングされたリポジトリによる確定的なアップグレード - Amazon Linux 2023

リポジトリバージョンを探す

最新のパッケージやセキュリティ更新は、新しいリポジトリバージョンで利用することができます。
使用可能なリポジトリバージョンを確認するには、sudo dnf check-release-update を実行します。
実行すると下記のような、リポジトリバージョンがリストされた結果が返ってきます。

WARNING:
  A newer release of "Amazon Linux" is available.

  Available Versions:

  Version 2023.6.20241028:
    Run the following command to upgrade to 2023.6.20241028:

      dnf upgrade --releasever=2023.6.20241028

    Release notes:
     https://docs.aws.amazon.com/linux/al2023/release-notes/relnotes-2023.6.20241028.html

  Version 2023.6.20241031:
    Run the following command to upgrade to 2023.6.20241031:

      dnf upgrade --releasever=2023.6.20241031

リポジトリバージョンを指定して更新する

リポジトリバージョンの指定は、dnfコマンドで --releasever=version オプションを使用します。
上記で実行したsudo dnf check-release-update コマンドや、AL2023のリリースノートの情報などから、指定するバージョンを確認します。
Amazon Linux 2023 リリースノート - Amazon Linux 2023
sudo dnf upgrade --releasever=version のようにリポジトリバージョンを指定することで、インスタンスにインストールされたパッケージのうち、指定されたリポジトリバージョンによる更新があるもののみがアップデートされます。
また、--releasever=latest とすることで、最新のリポジトリバージョンを指定することが可能です。

特定のパッケージを特定のリポジトリバージョンでアップデートする

特定のパッケージのみを、特定のリポジトリバージョンでアップデートすることも可能です。
sudo dnf upgrade --releasever=version packagename でパッケージ名とリポジトリバージョンの両方を指定します。
ですが、特定のパッケージのみが最新の状態では環境全体のパッケージバージョンの一貫性を保てませんので、リポジトリバージョンによるすべての更新を取り込むことが推奨されます。

さいごに

AL2では、amazon-linux-extrasリポジトリなど、更新するパッケージに応じてリポジトリを更新する必要があり、リポジトリのバージョンを指定するという概念はありませんでした。
AL2023では、リポジトリを指定しないと希望するパッケージバージョンをインストールおよびアップデートできない場合がありますので、必ず事前にリポジトリバージョンを確認しましょう。




以上の内容はhttps://techblog.techfirm.co.jp/entry/how-to-use-dnf-commandより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14