Rocky Linux 9 一覧へ戻る トップRocky Linux 9 / DNFモジュール(AppStream)
Rocky Linux 9 ・ セキュリティ・管理

📘 パッケージ管理 DNFモジュール(AppStream)

同じソフトウェアの複数バージョンを選んでインストールできる「モジュール」の仕組みと切り替え手順

dnf module AppStream

目次

  1. モジュール(Module)とは何か?
  2. 専門用語の整理
  3. モジュールの基本操作
  4. 【重要】バージョンの切り替え手順(リセット操作)
  5. モジュール操作コマンド・チートシート
  6. 覚えておくべき実務のポイント
  7. 実機で確認した利用可能モジュール一覧
  8. まとめ:学習のゴール

1. モジュール(Module)とは何か?(概念の理解)

従来のLinuxでは、リポジトリ(ソフトの保管庫)に「PHP」というソフトがあれば、バージョンは1種類に固定されていました。しかし、現在は「このサーバーには PHP 8.1 が必要だが、別のサーバーには PHP 8.3 が必要」という状況が多々あります。

この「同じソフトの複数バージョンを、ユーザーが選んでインストールできる仕組み」モジュール(Module)と呼び、それを支えるリポジトリをAppStreamと呼びます。

2. 専門用語の整理

コマンドの結果に出てくる言葉の意味を正しく理解しましょう。

用語意味解説
Nameソフトウェア名postgresql, php, nodejs など。
Streamバージョン15, 16, 18 など。提供されるバージョンの流れ。
Profilesインストール形態server, client, development など。用途に合わせたセット。
[d] (default)標準指定しなかった場合に選ばれるバージョン。
[e] (enabled)有効化中現在、そのバージョンが利用可能になっている状態。
[i] (installed)インストール済み実際にソフトがシステムに入っている状態。

3. モジュールの基本操作

■ 利用可能なモジュールとバージョンを確認する

dnf module list

特定のソフト(例:postgresql)に絞って見る場合は:

dnf module list postgresql

■ 特定バージョンのインストール

インストールを行うと、その「Stream(バージョン)」が自動的に有効化(enabled)されます。

# PostgreSQL の バージョン 16 をインストールする例
sudo dnf module install postgresql:16

4. 【重要】バージョンの切り替え手順(リセット操作)

モジュール機能の最大のルールは、「1つのソフトについて、同時に有効化できるバージョンは1つだけ」ということです。バージョンを上げたり下げたりするには、一度「リセット」する必要があります。

精査メモ:バージョン番号を現行に合わせて修正

以前の版では「PostgreSQL 10 から 15 へ」を例にしていましたが、実機で確認したところ、Stream 10 は現在のAppStreamリポジトリには存在しませんでした(現在提供されているのは 15 / 16 / 18)。実際に再現できるよう、例を 15 から 18 へ切り替える手順に修正しています。

例:PostgreSQL 15 から 18 へ切り替える場合

① 現在の状態を確認
dnf module list postgresql
# 15 [e] [i] のようになっていることを確認
② モジュール設定のリセット

有効化されているバージョン(15)の設定を初期化します。

sudo dnf module reset postgresql
③ 新しいバージョンのインストール

リセット後、新しいバージョンを指定してインストールします。

sudo dnf module install postgresql:18

※注:パッケージが上書き更新されますが、データベース内のデータ自体は手動で移行が必要な場合があります。

5. モジュール操作コマンド・チートシート

やりたいことコマンド
一覧表示dnf module list
詳細情報を見るdnf module info <name>
インストールsudo dnf module install <name>:<stream>
有効化(インストールせず枠組みだけ)sudo dnf module enable <name>:<stream>
無効化・初期化sudo dnf module reset <name>

6. 覚えておくべき実務のポイント

  1. 「:(コロン)」でバージョン指定:dnf install postgresql だけだとデフォルト([d])が入ります。特定の版が欲しいときは必ず postgresql:16 のように書きます。
  2. 依存関係の自動解決:モジュールをインストールすると、そのバージョンを動かすために必要な周辺ソフトも、正しいバージョンで自動的に選ばれます。
  3. AppStreamの恩恵:これにより、OSのベース(BaseOS)は安定させたまま、PHPやデータベースなどの「足の速い(更新が頻繁な)」ソフトだけを最新に保つことができます。

7. 実機で確認した利用可能モジュール一覧

本サイトのRocky Linux 9サーバーで、実際に dnf module list を実行した結果です(2026年8月4日時点)。

PostgreSQL(Rocky Linux 9 - AppStream)

Name       Stream Profiles           Summary
postgresql 15     client, server [d] PostgreSQL server and client module
postgresql 16     client, server [d] PostgreSQL server and client module
postgresql 18     client, server [d] PostgreSQL server and client module

PHP(AppStream + Remiリポジトリ)

# Rocky Linux 9 - AppStream
php  8.1      common [d], devel, minimal
php  8.2      common [d], devel, minimal
php  8.3      common [d], devel, minimal

# Remi's Modular repository(拡張リポジトリ導入時のみ)
php  remi-7.4 〜 remi-8.5(7段階のバージョンを提供)

ポイント

標準のAppStreamは8.1〜8.3までですが、Remiリポジトリを導入すると、より幅広いバージョン(7.4〜8.5)から選べるようになります。古いバージョンのアプリケーションを動かす必要がある場合に有効です。

Node.js(Rocky Linux 9 - AppStream)

Name   Stream Profiles                              Summary
nodejs 18     common [d], development, minimal, s2i Javascript runtime
nodejs 20     common [d], development, minimal, s2i Javascript runtime
nodejs 22     common [d], development, minimal, s2i Javascript runtime
nodejs 24     common [d], development, minimal, s2i Javascript runtime

📌 まとめ:学習のゴール

この仕組みに慣れると、サーバーの要件に合わせて柔軟に環境を構築できるようになります。本ページで示した通り、実際に dnf module list postgresqldnf module list php を実行してみると、どのようなバージョンが提供されているか具体的に確認できます。

Rocky Linux 9 一覧へ戻る