dnfコマンドのモジュールを使ってみる

今回は、dnfコマンドのモジュールの使い方について解説します。【連載コラム:Linuxシステム管理標準教科書を読む(30)】

最終更新日:2025年07月02日

Linuxの基本的なスキルを習得したら、Linuxサーバーをシステムとして長期に運用管理していくためのスキルを身につけるのはいかがでしょうか。このコラムでは、「Linuxシステム管理標準教科書」の全体調整を担当した筆者が改めて大切なポイントを解説していきます。

dnfコマンドの新しい機能としてモジュールがあります。実際にモジュールの機能を使ってパッケージの管理を行ってみましょう。


PostgreSQLをモジュールで管理する

dnfコマンドのモジュールは、バージョンなどを管理するために使われています。ここではデータベースのPostgreSQLのパッケージを管理する例を使って解説しようと思います。

モジュールの一覧を表示する

まず使用できるモジュールの一覧を表示します。

$ dnf module list
AlmaLinux 9 - AppStream
Name        Stream  Profiles                                              Summary
mariadb     10.11   client, galera, server [d]                            MariaDB Module
(中略)
postgresql  15      client, server [d]                                    PostgreSQL server and client module
postgresql  16      client, server [d]                                    PostgreSQL server and client module
(中略)
ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

結果から、モジュールpostgresqlのストリーム15と16が使えるのが分かりました。

モジュールを有効にする

それでは、PostgreSQLバージョン16を有効にします。

$ sudo dnf module enable postgresql:16
================================================================================================================================
 パッケージ                    アーキテクチャー             バージョン                      リポジトリー                  サイズ
================================================================================================================================
モジュールストリームの有効化中:
 postgresql                                                 16

トランザクションの概要
================================================================================================================================

これでよろしいですか? [y/N]: y
完了しました!

確認してみましょう。

$ dnf module list | grep postgresql
postgresql 15     client, server [d]                                    PostgreSQL server and client module
postgresql 16 [e] client, server [d]                                    PostgreSQL server and client module

バージョン16が有効になっているのがわかります。

インストールと同時にモジュールを有効にする

ここまでの手順ではモジュールを有効にしてからインストールしましたが、インストール時にまとめてモジュールの有効化を行うこともできます。PHPを例に手順を解説します。

まず、使用できるPHPのバージョンを確認します。

$ dnf module list | grep php
php        8.1    common [d], devel, minimal                            PHP scripting language
php        8.2    common [d], devel, minimal                            PHP scripting language
php        8.3    common [d], devel, minimal                            PHP scripting language

3つのバージョンが確認できます。バージョン8.3のストリームでインストールします。

$ sudo dnf module install php:8.3
依存関係が解決しました。
================================================================================================================================
 パッケージ                   アーキテクチャー    バージョン                                        リポジトリー          サイズ
================================================================================================================================
group/moduleパッケージをインストール:
 php-cli                      aarch64             8.3.19-1.module_el9.6.0+166+f262c21c              appstream             2.3 M
 php-common                   aarch64             8.3.19-1.module_el9.6.0+166+f262c21c              appstream             697 k
(略)

バージョン8.3をインストールしようとしているのがわかります。

データベースや開発言語など、複数バージョンが存在する場合、これまでは特定のバージョンのみ使うか、ディストリビューション以外のパッケージを独自にインストールするかの選択でしたが、今後はディストリビューションが用意する複数バージョンから選ぶこともできるようになりましたので、より柔軟にバージョンを選択して構成ができるようになりました。モジュールを使うケースも今後は増えると思いますので、しっかりと作業方法を確認しておきましょう。


筆者紹介
宮原 徹 氏

宮原 徹 氏

株式会社びぎねっと

Linux標準教科書、Linuxサーバー構築標準教科書などの監修者。LinuCレベル1/レベル2 Version10.0の改訂作業にも協力。また、幅広いOSSに関する情報提供の場として「オープンソースカンファレンス(OSC)」の企画運営も。

<Linuxシステム管理標準教科書とは>

Linuxシステム管理標準教科書」(システム管理教科書)は2015年4月にリリースされた標準教科書シリーズの1冊です。Linuxシステムの運用管理という観点で書かれており、システム管理者という業務において知っておかなければならない基本的なトピックが解説されています。「Linux標準教科書」「Linuxサーバー構築標準教科書」でコマンド操作やサーバー構築の基本を学んだら、このシステム管理教科書を読んで、単にLinuxを使うのではなく、システムとして長期的に管理運用していくためのスキルを身につけてください。

バックナンバー

第29回:DNFを使ってみる
第28回:DNFについて
第27回:パッケージ管理について
第26回:バックアップ方法について
第25回:バックアップについて

ページトップへ