過去にdnfとyumについて少し記載しておりますが、その続きです。
本記事は以下の本を参考にしております。
■パッケージについて
「RPM」と言われるもののことです。
「RPM≒パッケージ」と思っていただいても支障ないことが多いです。
例えば、こんなファイル名のものをrpmと言います。
「python3-dnf-4.2.17-7.el8_2.noarch.rpm」
■パッケージ管理
rpmを管理することを言います。
具体的には、「rpmの追加、削除、表示、インストール状況の把握」がメジャーなところです。
■パッケージ管理で必要となる用語
リポジトリ
パッケージが格納されている場所のことです。
インターネット上に公開されているものを使うことが多いですが、
自身で作成(ローカルリポジトリと言います)することもできます。
メタデータ
最初のうちはあまり出てこない用語ですが、
リポジトリの情報を格納していたり、サーバのパッケージ情報を格納したりしています。
XMLファイルで記載されることが多いです。
■手動でのパッケージ管理
rpmコマンドを利用します。
パッケージをインストールする際に考慮しなくてはいけない代表的なものに依存関係があります。
(=「パッケージAをインストールするのに、パッケージBが必要」など)
これらの依存関係を全て自分自身で考慮/解決する必要があります。
また、パッケージのアップデートについても自身でアップデート対象のパッケージを探してきてサーバに適用する必要があります。
※rpmコマンドを使ってはいけないというわけではありません。
ケースバイケースです。
尚、後述するyum,dnfコマンドは「自動でのパッケージ管理」のイメージに近いです。
■自動でのパッケージ管理
yumもしくはdnfコマンドを利用します。
(以降、dnfのみを取り上げますが、基本的にyumでも同様です。RHEL8ではyumを実行しても裏ではdnfが動きます。)
■dnfのメリット
・パッケージ間の依存関係は勝手に(自動的に)解決してくれる
・アップデート対象を自動で判別可能
・dnfコマンドの実行履歴を管理できる
■dnfのデメリット
・インターネットに接続した環境が前提になることが多い
(インターネットに接続できた方が何かと便利)
・エラー発生時の対応が若干難しい(エラー原因の特定に時間がかかることが多い)
■dnfで利用する設定ファイルの一覧
/etc/dnf /etc/dnf/aliases.d /etc/dnf/dnf.conf /etc/dnf/modules.d /etc/dnf/modules.defaults.d /etc/dnf/plugins /etc/dnf/protected.d /etc/dnf/protected.d/dnf.conf /etc/dnf/vars /etc/libreport/events.d/collect_dnf.conf /etc/logrotate.d/dnf /usr/lib/tmpfiles.d/dnf.conf /usr/share/doc/dnf /usr/share/doc/dnf/AUTHORS /usr/share/doc/dnf/README.rst /usr/share/licenses/dnf /usr/share/licenses/dnf/COPYING /usr/share/licenses/dnf/PACKAGE-LICENSING /usr/share/man/man5/dnf.conf.5.gz /var/lib/dnf /var/lib/dnf/groups.json /var/lib/dnf/history /var/lib/dnf/yumdb /var/log/dnf.librepo.log /var/log/dnf.log /var/log/dnf.plugin.log /var/log/dnf.rpm.log /var/log/hawkey.log
以上です。
長くなってきたので続きは次回にしようと思います。
本記事は以下の本を参考にしております。