RHELで必要なコマンドやライブラリが含まれるモジュールを確認する方法(dnf whatprovides)

仕事でRedhat Enterprise Linux(※以後,「RHEL」)の環境構築をしていると、足りないライブラリや必要となるコマンドが入っていないときがあります。 そんなときは大体はネットで検索をしていたのですが、dnfのコマンドオプションで足りないライブラリや必要となるコマンドが何のモジュールに含まれているのかを確認できることを知りました! でもすぐにそのオプションを忘れてしまうので、ここにメモ書きしておきます。

dnf whatprovides ファイル名

  

例えば、RHELの初期状態で「nslookup」コマンドが入っていなかったわ~ってなったときは、以下のように実行することで 「nslookup」コマンドは、「bind-utils」の中に入っているということが分かります。

# dnf whatprovides nslookup
Last metadata expiration check: 2:48:40 ago on Tue 02 Apr 2024 11:08:07 AM JST.
bind-utils-32:9.11.4-16.P2.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.4-17.P2.el8_0.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.4-17.P2.el8_0.1.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.4-26.P2.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.13-3.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.13-5.el8_2.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.13-6.el8_2.1.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.20-5.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.20-5.el8_3.1.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.26-3.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.26-4.el8_4.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.26-6.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.36-3.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind-utils-32:9.11.36-3.el8_6.1.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind9.16-utils-32:9.16.23-0.7.el8.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

bind9.16-utils-32:9.16.23-0.7.el8_6.1.x86_64 : Utilities for querying DNS name servers
Repo        : rhel-8-appstream-rhui-rpms
Matched from:
Filename    : /usr/bin/nslookup

#

  

コマンド以外に、動的ライブラリファイルなども確認できます。 以下は「libncurses.so.5」ファイルが含まれるモジュールを調べています。 コマンド結果より「ncurses-compat-libs」に含まれているということがわかります。

# dnf whatprovides libncurses.so.5
Last metadata expiration check: 2:56:45 ago on Tue 02 Apr 2024 11:08:07 AM JST.
ncurses-compat-libs-6.1-7.20180224.el8.i686 : Ncurses compatibility libraries
Repo        : rhel-8-baseos-rhui-rpms
Matched from:
Provide    : libncurses.so.5

ncurses-compat-libs-6.1-9.20180224.el8.i686 : Ncurses compatibility libraries
Repo        : rhel-8-baseos-rhui-rpms
Matched from:
Provide    : libncurses.so.5

#

   以上、簡単な小ネタでした。