#01:yumコマンドによるパッケージ管理
このチャプターでは、この先の数チャプターの目標を確認しましょう。
・最新のCentOS(CentOS 8, CentOS Stream 9 など)では、パッケージ管理をおこなうときにdnfコマンドが使われています。
・CentOS 8や、CentOS Stream 9 では、yumを使うこともできます。
・dnfはyumの後継として開発されたパッケージ管理ツールで、コマンドを用いて、パッケージ管理をおこなうことができます。
【dnfのポイント】
・yumと使い方が同じになるように設計されている
・「yum ○○」と実行していたコマンドは、「dnf ○○」で実行できる
・Python3で実装されている
・「後継の dnf があるから、yum を学習しても意味がないかもしれない」と不安に思われる方もいらっしゃるかもしれませんが、上記の通り、dnf は yum と操作性が異ならないように設計されているので、yum で学んだことは活かせます。
【dnfの簡単な開発背景】
・dnfが開発された背景として、システムのデフォルトをPython2からPython3に更新したかったから、というものがあります。
以前の CentOS はシステムのデフォルトが Python2 でした。そのため、yum も Python2 で実装されていました。
しかし、Python3 がリリースされ、システムのデフォルトを Python3 にしよう、となったときに、Python2 で作られている yum も対応が必要になりました。
そこで、Python3 に対応するために dnf が実装されました。
【yum は dnf の劣化版か】
表題のバージョンで使える yum は、dnf の劣化版ではありません。
「yum ○○」と実行しても、「dnf ○○」と実行しても、同じプログラムが実行されます。$ cat /etc/redhat-release
CentOS Stream release 9
$ which yum
/usr/bin/yum
$ ls -l /usr/bin/yum
lrwxrwxrwx 1 root root 5 Jun 29 08:27 /usr/bin/yum -> dnf-3
$ which dnf
/usr/bin/dnf
$ ls -l /usr/bin/dnf
lrwxrwxrwx 1 root root 5 Jun 29 08:27 /usr/bin/dnf -> dnf-3
$ which dnf-3
/usr/bin/dnf-3
$ ls -l /usr/bin/dnf-3
-rwxr-xr-x 1 root root 2094 Jun 29 08:27 /usr/bin/dnf-3
この確認結果から、yumを実行しても、dnfを実行しても、「/usr/bin/dnf-3」が実行されることが分かります。(バージョンは CentOS Stram 9 です。)
このように、どちらで実行しても結果的に実行されるプログラムは同じなので、yum が dnf の劣化版ということはなく、yum を実行したときも、dnf を実行したときのものと同等の結果を得ることができます。
(yumを実行しても「/usr/bin/dnf-3」が実行されているという意味では、yum を実行しても、プログラムとしての yum は実行されていない、と言えます。)
【参考】
LinuC, Linux豆知識 232 DNF
https://linuc.org/study/knowledge/871/