パッケージ管理したい(dnf)
$ dnf install epel-release
$ dnf search パッケージ名
$ dnf install パッケージ名
$ dnf check-update
$ dnf upgrade
dnfはRHEL系OS(RHEL / Rocky Linux / AlmaLinux / CentOS Stream / Fedora)のパッケージ管理コマンドです。
yumの後継で、依存関係の解決やパフォーマンスなどが改善されています。
パッケージを検索したい(dnf search)
$ dnf search パッケージ名
$ dnf search vim
dnf searchで、パッケージ名や概要にキーワードが含まれるパッケージを検索できます。
パッケージの詳細を調べたい(dnf info)
$ dnf info パッケージ名
$ dnf info vim-enhanced
dnf infoで、パッケージのバージョンやサイズ、説明などの詳細情報を確認できます。
パッケージをインストールしたい(dnf install)
$ dnf install パッケージ名
$ dnf install vim-enhanced
dnf installでパッケージをインストールできます。
複数のパッケージ名を一度に指定できます。
インストール済みパッケージはdnf list installedやrpm -qaで確認できます。
Dockerfileなどでは、-yオプションをつけて確認プロンプトを省略します。
パッケージを削除したい(dnf remove)
$ dnf remove パッケージ名
$ dnf remove vim-enhanced
dnf removeで、インストール済みのパッケージを削除できます。
パッケージを更新したい(dnf upgrade)
$ dnf check-update
$ dnf upgrade
dnf check-updateで、更新可能なパッケージを一覧できます。
dnf upgradeで、更新可能なパッケージをすべて更新します。
dnf upgrade パッケージ名で、指定したパッケージだけを更新することもできます。
不要なファイルを削除したい(dnf clean)
$ dnf clean packages
$ dnf clean all
dnf cleanで、ダウンロード済みのパッケージファイルやメタデータのキャッシュを削除できます。
packagesはダウンロード済みの.rpmファイルのみ、allはメタデータも含めてすべて削除します。
操作履歴を確認したい(dnf history)
$ dnf history
dnf historyで、dnfコマンドの実行履歴(インストール・削除・更新の記録)を確認できます。
rpmしたい(rpm)
$ rpm -qa
$ rpm -qa | grep パッケージ名
rpmは、RHEL系Linuxのパッケージ管理の低レベルコマンドです。
dnfも内部でrpmを使っています。
手元にある.rpmパッケージファイルを直接操作するコマンドです。
日常的に使うことはほぼありませんが、トラブルシュートしたいときに覚えておくとよいかもしれません。
-qaオプションで、インストール済みパッケージを一覧できます。
$ rpm -ql vim-enhanced
-qlオプションで、指定したパッケージがインストールしたファイルの一覧を確認できます。
$ rpm -qf /usr/bin/vim
-qfオプションで、指定したファイルがどのパッケージによってインストールされたか調べられます。
-qlの逆引きです。
$ rpm -qi vim-enhanced
-qiオプションで、パッケージの詳細情報(バージョン、依存関係、説明文など)を確認できます。
$ dnf install --downloadonly --downloaddir=. パッケージ名
$ rpm -i パッケージ名.rpm
-iオプションで、.rpmファイルを直接インストールできます。
dnfのリポジトリに登録されていない.rpmファイルを配布された場合に使います。
$ rpm -e パッケージ名
-eオプションで、パッケージを削除できます。
リポジトリを追加したい
$ dnf install epel-release
$ dnf repolist
epel-releaseは、
EPEL(Extra Packages for Enterprise Linux)という、標準リポジトリを拡張するパッケージです。
他にも、主要な拡張リポジトリは〇〇-releaseという名前で提供されています。
標準リポジトリにないパッケージを使いたい場合は、まず追加しておくとよいです。
$ dnf install 'dnf-command(config-manager)'
$ dnf config-manager --add-repo リポジトリのURL
〇〇-releaseパッケージが提供されていない場合、config-managerコマンドで.repoファイルを直接追加する必要があります。
config-managerもデフォルトでは入っていないプラグインなので、dnf install 'dnf-command(config-manager)'で、先にインストールが必要です。
注釈
RHEL系はエンタープライズ向けの思想が強く、標準リポジトリに含まれるパッケージが絞られています。
その代わり、EPELのような拡張リポジトリを〇〇-releaseパッケージとして手軽に追加できるように整備されています。