Linuxのコマンドが含まれているパッケージの確認方法(dnf provides)

Others,RockyLinux/CentOS

Linuxのコマンドがどのパッケージに含まれているのか?の確認方法です。

Linuxでコマンドが使えない場合、パッケージを追加インストールする事があります。
その時に、コマンドがどのパッケージに含まれているのか分からない場合があります。
例えばiostatコマンドはsysstatパッケージに含まれています。

“dnf provides"を使って、コマンドが含まれているパッケージを確認する事ができます。
今回はiostatコマンドを例に手順を確認します。
併せてファイルからパッケージを検索する方法も確認しています。

※Rocky Linux release 9.4 (Blue Onyx)を利用しています。
※Azure上に構築した仮想マシン(Azure Virtual Machines)を利用しています。

スポンサーリンク

コマンドが含まれるパッケージはdnf providesで確認

iostatコマンドが含まれるパッケージを確認

“iostat"コマンドが含まれるパッケージを確認します。
“dnf provides"コマンドの実行結果から、"sysstat"パッケージに含まれている事が確認できます。

dnf providesで確認

#コマンドを実行(sysstatインストール前)
[root@test-vm-01 ~]#
iostat

-bash: iostat: command not found

#dnf providesでパッケージを確認
[root@test-vm-01 ~]# dnf provides iostat
Last metadata expiration check: 0:55:34 ago on Sat May 25 01:21:18 2024.
sysstat-12.5.4-7.el9.x86_64 : Collection of performance monitoring tools for
: Linux
Repo : appstream
Matched from:
Filename : /usr/bin/iostat

sysstatパッケージをインストールして確認

“sysstat"パッケージをインストールします。

sysstatをインストール

[root@test-vm-01 ~]# dnf -y install sysstat
Last metadata expiration check: 1:34:22 ago on Sat May 25 02:23:34 2024.
Dependencies resolved.
===============================
Package Architecture Version Repository Size
===============================
Installing:
sysstat x86_64 12.5.4-7.el9 appstream 463 k
Installing dependencies:
avahi-libs x86_64 0.8-20.el9 baseos 67 k
libuv x86_64 1:1.42.0-1.el9 appstream 149 k
lm_sensors-libs x86_64 3.6.0-10.el9 appstream 41 k
pcp-conf x86_64 6.2.0-2.el9_4 appstream 27 k
pcp-libs x86_64 6.2.0-2.el9_4 appstream 631 k

Transaction Summary
===============================
Install 6 Packages

Total download size: 1.3 M
Installed size: 3.8 M
Downloading Packages:
(1/6): lm_sensors-libs-3.6.0-10.el9.x86_64.rpm 28 kB/s | 41 kB 00:01
(2/6): avahi-libs-0.8-20.el9.x86_64.rpm 39 kB/s | 67 kB 00:01
(3/6): libuv-1.42.0-1.el9.x86_64.rpm 306 kB/s | 149 kB 00:00
(4/6): pcp-conf-6.2.0-2.el9_4.x86_64.rpm 111 kB/s | 27 kB 00:00
(5/6): sysstat-12.5.4-7.el9.x86_64.rpm 193 kB/s | 463 kB 00:02
(6/6): pcp-libs-6.2.0-2.el9_4.x86_64.rpm 638 kB/s | 631 kB 00:00
——————————————————–
Total 385 kB/s | 1.3 MB 00:03

~(中略)~

Complete!

“iostat"コマンドが実行できる事を確認します。

iostatコマンドを確認

#iostatコマンドを実行
[root@test-vm-01 ~]# iostat
Linux 5.14.0-362.8.1.el9_3.x86_64 (test-vm-01) 05/25/24 _x86_64_ (2 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
1.79 0.02 0.71 0.68 0.00 96.80

Device tps kB_read/s kB_wrtn/s kB_dscd/s kB_read kB_wrtn kB_dscd
sda 5.92 82.40 288.72 0.00 822898 2883485 0
sdb 0.08 1.06 33.26 1679.68 10625 332164 16775172
sr0 0.01 0.03 0.00 0.00 280 0 0

@Systemはインストール済みのパッケージ

パッケージをインストールした後に、"dnf provides"を実行してみます。
今回は"Repo : @System"が表示されています。
これはシステムにインストール済みのパッケージであることを示しています。

dnf providesを実行

#dnf providesでパッケージを確認
[root@test-vm-01 ~]# dnf provides iostat
Last metadata expiration check: 1:42:17 ago on Sat May 25 02:23:34 2024.
sysstat-12.5.4-7.el9.x86_64 : Collection of performance monitoring tools for
: Linux
Repo : @System
Matched from:
Filename : /usr/bin/iostat

sysstat-12.5.4-7.el9.x86_64 : Collection of performance monitoring tools for
: Linux
Repo : appstream
Matched from:
Filename : /usr/bin/iostat

ファイルやディレクトリを利用しているパッケージを検索

“dnf provides"を使うと、指定した項目に対するパッケージを検索できます。
コマンド以外にも、ディレクトリを指定してパッケージを検索する事ができます。
/etc/sshディレクトリや/etc/ssh/sshd_configのファイルはopensshのパッケージで利用されている事が確認できます。

ファイルやディレクトリを指定してdnf providesを実行

[root@test-vm-01 ~]# dnf provides /etc/ssh/
Last metadata expiration check: 1:56:27 ago on Sat May 25 02:23:34 2024.
openssh-8.7p1-38.el9.x86_64 : An open source implementation of SSH protocol
: version 2
Repo : @System
Matched from:
Other : /etc/ssh/

openssh-8.7p1-38.el9.x86_64 : An open source implementation of SSH protocol
: version 2
Repo : baseos
Matched from:
Other : /etc/ssh/

[root@test-vm-01 ~]# dnf provides /etc/ssh/sshd_config

Last metadata expiration check: 2:44:10 ago on Sat May 25 02:23:34 2024.
openssh-server-8.7p1-38.el9.x86_64 : An open source SSH server daemon
Repo : @System
Matched from:
Filename : /etc/ssh/sshd_config

openssh-server-8.7p1-38.el9.x86_64 : An open source SSH server daemon
Repo : baseos
Matched from:
Filename : /etc/ssh/sshd_config

最後に

今回は"dnf provides"コマンドを使ったパッケージ検索について確認しました。
このコマンドって、どのパッケージに含まれるんだっけ?と思った時に役立つかと思います。

引き続き色々試してみたいと思います。

Azure上でRocky Linuxの仮想マシン構築する手順についてはこちらで紹介しています。

Azure PowerShellを利用したRocky Linuxの仮想マシン構築手順についてはこちらで紹介しています。

スポンサーリンク