この記事では、Azure Linux での一般的なパッケージ管理タスクについて説明します。
- リポジトリ構成が存在する場所。
- 従来のパッケージ マネージャー コマンドを DNF5 にマップする方法。
- DNF がメタデータをキャッシュし、パッケージを解決する方法。
- カーネルとその他のインストール専用パッケージの処理方法。
- 無人更新を有効にする方法。
- 最も一般的に使用される DNF コマンド。
Note
Azure Linux 4.0 は現在、preview であり、評価とテストの目的に厳密に限定されています。 運用環境での使用には適していません。
リポジトリの構成
DNF5 は、 /etc/yum.repos.d/からリポジトリ定義を読み取ります。 互換性のために、ディレクトリ名は YUM から保持されます。DNF5 は、このディレクトリから読み取ります。
そのディレクトリ内の各 .repo ファイルは、パッケージを検索する場所、GPG でパッケージを確認するかどうか、およびリポジトリが既定で有効になっているかどうかを DNF に指示するプレーンテキスト構成ファイルです。 メインの DNF 構成ファイルは /etc/dnf/dnf.confであり、キャッシュ設定、インストールのみの制限、プロキシ構成などのグローバル動作を制御します。
レガシーコマンド用の互換シンボリック リンク
Azure Linux には互換性シンボリック リンクが付属しているため、レガシ コマンド (yum、dnf (DNF4)、microdnf、tdnf) がすべて DNF5 にディスパッチされます。
lrwxrwxrwx. 1 root root 4 yum -> dnf5
lrwxrwxrwx. 1 root root 4 microdnf -> dnf5
-rwxr-xr-x. 1 root root 1614408 dnf5
lrwxrwxrwx. 1 root root 4 dnf -> dnf5
lrwxrwxrwx. 1 root root 4 tdnf -> dnf5
共通サブコマンドはすべてシンボリックリンクを介して動作します。 DNF4 内部または microdnf固有の動作に依存するエッジ ケースは、そうでない可能性があります。 変更点の詳細については、次のリソースを参照してください。
DNF5 がパッケージを解決する方法
DNF コマンドを実行すると、DNF5 は次の手順を実行して、インストール、アップグレード、または削除するパッケージを決定します。
-
.repo内のすべての/etc/yum.repos.d/ファイルを読み込み、有効としてマークされたリポジトリを選択します。 - リポジトリメタデータを更新し、
/var/cache/libdnf5の下でローカルにキャッシュします。 キャッシュされたメタデータには、パッケージの一覧、バージョンと依存関係の情報、チェックサム、署名が含まれます。 - トランザクションを適用する前に、有効なリポジトリに対して要求されたインストール、削除、またはアップグレードを解決し、パッケージのバージョンを選択し、整合性と署名を検証します。
無効になっているリポジトリは、1 つのコマンドに対して --enablerepo=<repo-id> で明示的に有効にしない限り無視されます。
/var/cache/libdnf5 キャッシュが存在するため、DNF は呼び出しごとにメタデータを再ダウンロードする必要はありません。
dnf clean allを実行して空にします (頻繁に使用される DNF コマンドを参照)。
インストールのみのパッケージと複数のインストール済みバージョン
一部のパッケージ (特にカーネル) は、適切にアップグレードされるのではなく、サイド バイ サイドでインストールされます。 DNF5 は、 /etc/dnf/dnf.confの 2 つの設定を使用してこれを制御します。
-
installonlypkgs: アップグレードされないパッケージ名の一覧。 カーネル パッケージは正規エントリです。 -
installonly_limit: システム上に共存する可能性があるインストール専用パッケージのバージョンの最大数。 既定値は3です。
新しいバージョンがインストールされ、制限を超えると、DNF は最も古いバージョンを自動的に削除します。
カーネルの場合は、次の情報が提供されます。
- フォールバック: 新しいカーネルの起動に失敗した場合でも、GRUB は以前の既知のカーネルを起動できます。
- 検証: 実行中のカーネルを削除せずに、新しいカーネルをインストールしてテストできます。
- バリアント共存: 異なるカーネル ビルド (異なる機能セットなど) を同時にインストールできます。
各カーネル バージョンは個別の RPM であるため、DNF は他のパッケージと同様に追跡して削除します。
dnf-automatic を使用した無人更新プログラム
dnf-automatic は、パッケージの更新プログラムを定期的にチェックし、ダウンロードし、必要に応じて適用するサービスです。 これは、有効期間の長いデーモンとして実行されるのではなく、systemd タイマーによって駆動されます。
dnf-automatic のインストール
次のコマンドを使用して dnf-automatic をインストールします。
sudo dnf install -y dnf-automatic
dnf-automatic タイマーを有効にする
次のコマンドを使用して、再起動後すぐに dnf-automatic タイマーを有効にします。
sudo systemctl enable --now dnf-automatic.timer
-
enableは、起動時に開始するようにタイマーを構成します。 -
--nowは、現在のセッションでタイマーを開始します。
dnf-automatic タイマーの状態を確認する
タイマーがアクティブであることを確認し、次のコマンドを使用して最後に実行した日時を確認します。
systemctl status dnf-automatic.timer
一般的な出力は次の例のようになります。
● dnf5-automatic.timer - dnf-automatic timer
Loaded: loaded (/usr/lib/systemd/system/dnf5-automatic.timer; enabled; preset: disabled)
Active: active (waiting) since Thu 2026-03-26 14:36:54 UTC; 13min ago
Invocation: f6984eeceb7c40df99bca243f3da728c
Trigger: Fri 2026-03-27 06:34:18 UTC; 15h left
Triggers: ● dnf5-automatic.service
Active: active (waiting) が想定されます: 基盤となるサービスは、タイマーが発火したときにのみ実行され、その後終了するワンショットサービスです。
Trigger:行には、次にスケジュールされた実行が表示されます。
dnf-automatic タイマーの次のスケジュールされた実行を一覧表示する
次のコマンドを使用して、他のタイマーと共に次の実行を一覧表示します。
systemctl list-timers dnf-automatic.timer
出力例:
NEXT LEFT LAST PASSED UNIT ACTIVATES
Fri 2026-03-27 06:34:18 UTC 15h - - dnf5-automatic.timer dnf5-automatic.service
1 timers listed.
Pass --all to see loaded but inactive timers, too.
dnf-automatic のオプション構成
/etc/dnf/automatic.conf ファイルを追加することで、自動更新の動作を構成できます。 このファイルは、更新プログラムをダウンロードするか、自動的に適用するか、セキュリティのみの更新プログラムに制限するかを制御します。 完全な構成の詳細については、dnf5 の自動ドキュメントを参照してください。
Note
自動更新は dnf-automatic を使用してインストールされますが、システムは自動的に再起動されません。 カーネル (またはその他の再起動が必要なパッケージ) が更新された場合、新しいバージョンは次回の再起動まで有効になりません。 更新後、再起動が必要かどうかを確認し、必要に応じてスケジュールします。
よく使用される DNF コマンド
次のコマンドは、Azure Linux での日常的なパッケージ管理の大部分を対象とします。
dnf clean all
dnf clean all は、DNF が /var/cache/libdnf5の下にキャッシュしたすべてのものを削除します。 これは次の目的で使用されます。
- トランザクション エラーの原因となっている破損または古いメタデータから復旧します。
- 同じ
RUNレイヤーにインストールした後にパッケージ キャッシュを削除して、コンテナー イメージを縮小します。 - ディスク領域を回復します。
コンテナーの例:
RUN dnf install -y package1 package2 \
&& dnf clean all
dnf search
dnf search は、キーワードをパッケージ名とサマリーに一致させます。 例えば次が挙げられます。
dnf search lsof
出力例:
Updating and loading repositories:
Azure Linux 4.0 - x86_64 - Microsoft 100% | 7.6 KiB/s | 4.8 KiB | 00m01s
Repositories loaded.
Matched fields: name (exact)
lsof.x86_64 A utility which lists open files on a Linux/UNIX system
dnf provides
dnf provides は、特定のファイル、コマンド、または機能を所有するパッケージを検索します。 例えば次が挙げられます。
dnf provides lsof
出力例:
Updating and loading repositories:
Repositories loaded.
lsof-4.98.0-8.azl4.20260303.x86_64 : A utility which lists open files on a Linux/UNIX system
Repo : @System
Matched From :
Provide : lsof = 4.98.0-8.azl4.20260303
dnf install
dnf install は、ランタイムの依存関係と共に 1 つ以上のパッケージをインストールします。
sudo dnf install lsof
出力例:
Updating and loading repositories:
Repositories loaded.
Package Arch Version Repository Size
Installing:
lsof x86_64 4.98.0-8.azl4.20260303 azurelinux 578.5 KiB
Transaction Summary:
Installing: 1 package
Total size of inbound packages is 226 KiB. Need to download 226 KiB.
After this operation, 579 KiB extra will be used (install 579 KiB, remove 0 B).
Is this ok [y/N]: y
[1/1] lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 641.9 KiB/s | 226.0 KiB | 00m00s
[1/1] Total 100% | 640.1 KiB/s | 226.0 KiB | 00m00s
Running transaction
[1/3] Verify package files 100% | 500.0 B/s | 1.0 B | 00m00s
[2/3] Prepare transaction 100% | 23.0 B/s | 1.0 B | 00m00s
[3/3] Installing lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 3.0 MiB/s | 580.2 KiB | 00m00s
Complete!
dnf remove
dnf remove は、そのパッケージのためだけに導入された依存関係もあわせて、パッケージをアンインストールします。
sudo dnf remove -y lsof
出力例:
Package Arch Version Repository Size
Removing:
lsof x86_64 4.98.0-8.azl4.20260303 azurelinux 578.5 KiB
Transaction Summary:
Removing: 1 package
After this operation, 579 KiB will be freed (install 0 B, remove 579 KiB).
Is this ok [y/N]: y
Running transaction
[1/2] Prepare transaction 100% | 27.0 B/s | 1.0 B | 00m00s
[2/2] Removing lsof-0:4.98.0-8.azl4.20260303.x86_64 100% | 72.0 B/s | 11.0 B | 00m00s
Complete!
dnf upgrade
dnf upgrade インストールされているパッケージを最新の利用可能なバージョンに更新します。
sudo dnf upgrade
すべてが最新の場合、出力は短くなります。 例えば次が挙げられます。
Updating and loading repositories:
Repositories loaded.
Nothing to do.
Tip
スクリプト、CI パイプライン、コンテナー ビルドなどの非対話型コンテキストで-y、install、またはremoveにupgradeを渡します。 システムを変更する DNF 操作にはルートが必要であるため、 sudo または rootとして実行します。
関連するコンテンツ
-
DNF5 パッケージ管理ユーティリティ:
dnf5の完全なコマンド ライン リファレンス。 - DNF と DNF5 の間の変更: 削除されたコマンドや動作の違いなど、DNF4 から変更された内容。
- DNF5 への移行: スクリプトと自動化を DNF4 から DNF5 に移動するためのガイダンス。