CentOS8設定の基礎 – dnfについて その3 モジュールについて

CentOS7では、パッケージのバージョン管理を行う方法はありませんでした。

このため新しいバージョンのパッケージをインストールするには既存のリポジトリを無効化したり、既存のリポジトリに入っているパッケージとは別の名前のパッケージで登録したりと面倒でした。

しかしCentOS8にはモジュールという機能が追加され、バージョンを選んでインストールをすることが出来ます。

また、CentOS8のリポジトリに存在しないバージョンを別のリポジトリからインストールする場合も、そのリポジトリがモジュール機能に対応していれば同じようにバージョンを選ぶ事が出来ます。

今回はnginxを例にとってモジュールの簡単な使い方を説明したいと思います。

この記事で行うこと

  1. 事前準備
  2. モジュールのコマンド
    1. list
    2. install
    3. remove
    4. reset

1. 事前準備

今回は複数のリポジトリからバージョンを選べることを確認するために、EPELリポジトリを事前にインストールします。

[root@localhost ~]# dnf install epel-release

2. モジュールのコマンド

モジュールに関する操作の際には dnf module コマンドを用います。(dnfコマンド内のmoduleコマンドですね)

2-1. list

存在するモジュールの一覧を表示します。

[root@localhost ~]# dnf module list [モジュール名]

ちなみに、[探したいモジュール名]を空欄にすると、全てのモジュールとバージョンの一覧が表示されます。多分使うことはほぼないです。

nginxのモジュールを対象に実行した結果が以下となります。

[root@localhost ~]# dnf module list nginx
CentOS-8 - AppStream
Name                           Stream                               Profiles                           Summary
nginx                          1.14 [d]                             common [d]                         nginx webserver
nginx                          1.16                                 common [d]                         nginx webserver

Extra Packages for Enterprise Linux Modular 8 - x86_64
Name                           Stream                               Profiles                           Summary
nginx                          mainline [e]                         common [i]                         nginx webserver

ヒント: [d]efault, [e]nabled, [x]disabled, [i]nstalled

Stream 列がバージョンを表しています。

AppStreamリポジトリにバージョン1.14と1.16、EPEL(Extra Packages for Enterprise Linux)リポジトリにmainlineというバージョンが存在することが分かると思います。

また、Profiles 列は開発版などの細かい区分けを表します。nginxにはcommon(通常版)しかないようです。

StreamProfiles の隣にある括弧内のアルファベットは実行結果下部のヒントにあるようにそのバージョンをどのような状態にしているかを表しています。

今回の内容では、EPELリポジトリのmainlineバージョンが有効で、その通常版がインストールされているという事が分かります。

defaultというのは、特に指定せずにインストールしようとするとそのバージョンがインストールされるということです。

nginxを何の指定も無しにインストール使用とするとバージョン1.14の通常版がインストールされます。

2-2. install

モジュールの特定のバージョンをインストールしたい場合は以下のコマンドとなります。

[root@localhost ~]# dnf module install [Name]:[Stream]/[Profile]

[]内のName、Stream、Profileはそれぞれ先程の list コマンドで確認した同名の項目を入れてください。

ちなみに、StreamとProfileは省略すると自動的にdefault指定されている物が選択されます。

ただしdefault指定されている物が無いとエラーとなりますし、誤って望んでいたのとは違う物を入れてしまう可能性があるため、全て指定することをオススメします。

2-3. remove

モジュールをアンインストールしたい場合は以下のコマンドとなります。

[root@localhost ~]# dnf module remove [Name]

同時にインストールできるバージョン・プロファイルは1つだけなので、削除する際にはバージョンやプロファイルを指定する必要はありません。

2-4. reset

モジュールのバージョンを切り替えたい場合は以下のコマンドで一旦バージョン選択をリセットする必要があります。

[root@localhost ~]# dnf module reset [Name]

ちなみに、リセットしてもインストールしたファイルは消されず、再度同じバージョンをインストールしようとすると紐付けることができます。

なので、綺麗に消したい際には先に remove でアンインストールしてからリセットしましょう。

まとめ

今回はモジュールの使い方について説明しました。

モジュールを使えばソフトウェアのバージョン管理が楽になるので、モジュールがあるリポジトリを使う際にはモジュールを優先的に使うのがオススメです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です