dnf にEPELリポジトリを追加する Rocky Linux 8, 9

Rocky Linux標準の dnfリポジトリに加えて豊富なパッケージを利用できるEPELリポジトリを追加する方法を説明します。

Rocky Linux 8の場合

Rocky Linux 8の場合は、EPELパッケージによっては依存するものがあるため、powertoolsリポジトリを有効にしておくことが推奨されています。

# dnf config-manager --set-enabled powertools
# dnf install epel-release

以前のバージョンではリポジトリ名としてPowerToolsを指定する必要があります。

Error: No matching repo to modify: powertools
# dnf config-manager --set-enabled PowerTools

Rocky Linux 9の場合

Rocky Linux 9の場合は、crbリポジトリ(CodeReady Builderリポジトリ)を有効にしておくことが推奨されています。

# dnf config-manager --set-enabled crb
# dnf install epel-release

digのインストールとRPMパッケージの探し方

Rocky Linux の環境によっては、digコマンドがインストールされていない場合がある。

digはbind-utilsというパッケージに含まれているので、dnfコマンドでインストールする。

$ sudo dnf install bind-utils

パッケージの探しかた (dnf providesコマンド)

実は、dnf search digと実行してもパッケージは見つからない。

digがどのパッケージに含まれるかを知りたい場合は、dnf providesコマンドで調べるとよい。

$ dnf provides dig
bind-utils-32:9.16.23-18.el9_4.1.x86_64 : Utilities for querying DNS name servers
Repo        : appstream
Matched from:
Filename    : /usr/bin/dig

パッケージの探しかた (rpmコマンド)

既にdigがインストールされている環境であれば、rpmコマンドでもパッケージを調べることが出来る。まずはdigがどこにあるか調べる。

$ which dig
/usr/bin/dig

つぎにrpmコマンドでファイルの所属を確認する。

rpm -qf /usr/bin/dig
bind-utils-9.16.23-18.el9_4.1.x86_64

バッククォートを使うと一行で確認できる。

$ rpm -qf `which dig`
bind-utils-9.16.23-18.el9_4.1.x86_64

このようにして、dnf searchでは見つからないパッケージを調べる事ができる。

dnfのアップデートがうまくいかない場合にキャッシュをクリアする

途中でdnf updateが途中で中断してしまったなどの理由で、再度アップデートを実行しようとしてもうまくいかないときは、dnfが保存しているキャッシュをdnf clean allで削除するとよい。

$ sudo dnf clean all
$ sudo dnf update

yumでkernelを自動更新されることを防ぐ

CentOSでパッケージのアップデートかけようとしてyum updateを実行したところ
カーネルを自動更新されてしまい、次回の起動時にkernel panicが発生するなど不具合が生じる場合。

つまり、自動的にカーネルが更新されては困る場合には/etc/sysconfig/kernelのUPDATEDEFAULTをnoにするとよい。

vi /etc/sysconfig/kernel
------------------------------------------
#UPDATEDEFAULT=yes
UPDATEDEFAULT=no
------------------------------------------