はじめに
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では、リポジトリを指定しないと希望するパッケージバージョンをインストールおよびアップデートできない場合がありますので、必ず事前にリポジトリバージョンを確認しましょう。