【 dnf 】コマンド(応用編その4)――ソフトウェア(パッケージ)グループの情報を表示するLinux基本コマンドTips(372)

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「dnf」コマンドでソフトウェア(パッケージ)グループの情報を表示する方法です。

» 2020年01月23日 05時00分 公開
[西村めぐみ@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、基礎編応用編その1応用編その2応用編その3に続き、「dnf」コマンドでソフトウェア(パッケージ)グループの情報を表示する方法です。

dnfコマンドとは?

 「dnf」は、Red Hat系のLinuxディストリビューションで使われている“RPMパッケージ”を扱うためのパッケージ管理コマンドです。ソフトウェアのインストール(install)や更新(update)、アンインストール(remove)の際に利用します。

 CentOS 7が採用している「yum」の後継となるコマンドという位置付けで、yumと同じサブコマンド、オプションを使用可能です(※1)。パッケージ管理システム「RPM」と「Yum」について、さらに「RPMデータベース」や「リポジトリ」という用語については、連載第42回を参照してください。

※1 CentOS 8では/usr/bin/dnfと/usr/bin/yumはともに/usr/bin/dnf-3へのシンボリックリンクとなっている。/usr/bin/dnf-3の実態はPythonスクリプト。なお、dnfのオプションのうち、従来の「yum」コマンドから廃止されたものはChanges in DNF CLI compared to YUM(外部サイト)で確認可能。





コマンドの書式

dnf [オプション] コマンド [パッケージ名など]

※ [ ]は省略可能な引数を示しています。

※パッケージ名には「?」記号(任意の1文字)や「*」記号を使用可能

※長いオプションはコマンドラインの最後に指定することも可能




dnfの主なオプション

短いオプション 長いオプション 意味
-y --assumeyes 全ての問い合わせに対して「yes」を選択したと見なして実行する
--assumeno 全ての問い合わせに対して「no」を選択したと見なして実行する
-C --cacheonly パッケージの情報を全くダウンロードせずに、キャッシュだけを使用する
--refresh コマンド実行前にパッケージ情報のキャッシュを強制的に更新する(※2)
-R 分 --randomwait=分 最大待ち時間(分)を指定する
-c 構成ファイル名 --config=構成ファイル名 構成ファイルを指定する
--enablerepo リポジトリID 指定したリポジトリを有効にする
--disablerepo リポジトリID 指定したリポジトリを無効にする
--repo リポジトリID 指定したリポジトリだけを有効にする(複数ある場合は「--repo」「--repoid」を複数回使用する)
--repoid リポジトリID --repoと同じ
--nodocs ドキュメントをインストールしない
--allowerasing 依存関係を解決するためにインストール済みパッケージの削除を許可する
--installroot=場所 インストール先を指定する
--downloaddir=場所 ダウンロード先を指定する
--downloadonly ファイルのダウンロードだけを行う
-x パッケージ名 --exclude=パッケージ名 除外するパッケージを指定する
--showduplicates dnfのサブコマンド「info」「search」で重複しているものも表示する
--color=指定 出力メッセージを色付きにするかどうかを「always」「auto」「never」のいずれかで指定する
-q --quiet 実行時にメッセージを出力しない
-v --verbose 詳しいメッセージを出力する

※2 通常、キャッシュが古い場合は自動更新がかかる。更新までの残り時間は/etc/dnf/dnf.confの「metadata_expire」で変更可能。デフォルトは48時間。



dnfの主なコマンド(パッケージ操作関係)

コマンド 実行内容
install 指定したパッケージに加え、依存関係があるパッケージもインストールする(既にインストールされていた場合は更新する)
reinstall パッケージを再インストールする
downgrade パッケージを以前のバージョンのものにダウングレードする
remove パッケージを依存関係のあるパッケージとともに削除する
autoremove 依存関係のためにインストールされていた不要なパッケージを削除する
upgrade パッケージを更新する(※3)
upgrade-minimal 不具合の修正や機能追加、セキュリティ対応など「重要な更新」だけを更新する(※3)
distro-sync 最新の利用可能なバージョンへインストール済みパッケージを同期する
mark install 指定したパッケージを手動でインストールしたものとする(autoremoveの対象外となることが利点、「dnf mark remove パッケージ名」でマークを削除)

※3 パッケージを指定しなかった場合はインストール済みの全パッケージが対象となる。



dnfの主なコマンド(情報関係)

コマンド 実行内容
info パッケージの情報を表示する(「--installed」「--upgrade」などのオプションが使用可能)
list パッケージを一覧表示する(「--installed」「--upgrade」などのオプションが使用可能)
deplist パッケージの依存性の一覧を表示する
group パッケージグループのサマリーを表示する(本文を参照、※4)
search 指定した文字列でパッケージの詳細を検索する
repoquery キーワードに一致するパッケージを検索する(※5)
provides ファイル名などを指定して、該当するファイルを提供するパッケージを検索する
repolist ソフトウェアリポジトリの構成を表示する

※4 サブコマンドとして「list」「info」「remove」「install」「upgrade」「summary」「mark」を使用可能。「dnf group list」のように使用する。デフォルトはsummaryで、インストール済みのグループの個数やインストール可能なグループの個数を表示する。
※5 例えば「dnf repoquery --requires パッケージ名」で指定したパッケージが依存するパッケージを表示する。



dnfの主なコマンド(メンテナンス関係/その他)

コマンド 実行内容
makecache パッケージリストを格納したデータベース(リポメタデータ)をダウンロードし、キャッシュを作成/更新する
check ローカルのパッケージデータベースに問題がないかどうか確認する
check-update 更新に利用できるパッケージを確認する
clean キャッシュデータを削除する
shell 対話型のシェル(DNFシェル)を実行する
updateinfo リポジトリの更新情報を表示する
history パッケージのインストールや削除の履歴を表示する


パッケージグループを一覧表示する

 CentOSでは、パッケージを「グループ」で管理し、関連するパッケージをまとめてインストールできるようになっています。

 「dnf group」では、インストール済みのグループの個数とインストール可能なグループの個数を表示します(※6)。具体的にどのようなグループがあるのかは、「dnf group list」で確認できます(画面1)。

※6 「dnf group」は「dnf group summary」相当。



 dnfコマンドを実行する際、ソフトウェアのリストを必要に応じて自動更新します(※7)。「dnf group」と「dnf group list」の実行の際、root権限は不要です。

※7 dnfコマンドは常時ソフトウェアの最新リストを使うのではなく、前回リストを更新してからデフォルトの有効期限(48時間)が経過するまでは、過去のリストを使う。有効期限を変更するには/etc/dnf/dnf.confで「metadata_expire」を設定する(「man dnf.conf」参照)。経過時間を問わず、リストを最新版に更新してから実行したい場合は「--refresh」オプションを使用する。



 なお、日本語環境の場合、日本語でグループ名を表示します。英語でグループ名を確認したい場合は「LANG=C dnf group list」のようにするとよいでしょう(連載第175回画面2)。

コマンド実行例

dnf group

(パッケージグループのサマリーを表示する。インストール済みのグループの個数とインストール可能なグループの個数が分かる)

dnf group list

(パッケージグループ名を一覧表示する)

LANG=C dnf group list

(パッケージグループ名を英語で一覧表示する)


画面1 画面1 パッケージグループのサマリーと一覧を表示したところ
画面2 画面2 パッケージグループ名を英語で一覧表示したところ


グループの情報を表示する

 パッケージの情報は「dnf group info グループ名」で確認します。グループ名の説明と、グループが含むパッケージを一覧表示します(画面3)。

 グループによっては、内部がさらにグループに分かれていることがあります。ここで表示されているグループも「dnf group info グループ名」で情報を確認できます(画面4画面5)。

コマンド実行例

dnf group info グループ名

(グループの情報を表示する)

dnf group info セキュリティーツール

(「セキュリティーツール」グループの情報を表示する)

dnf group info "Security Tools"

(「セキュリティーツール」グループの情報を表示する)


画面3 画面3 「セキュリティーツール」グループの情報を表示したところ
画面4 画面4 「サーバー」グループの情報を表示したところ 内部が複数のグループに分かれていた。
画面5 画面5 画面4にあった「Basic Web Server」グループの情報を表示したところ


筆者紹介

西村 めぐみ(にしむら めぐみ)

元々はDOSユーザーで「DOS版UNIX-like tools」を愛用。ソフトハウスに勤務し生産管理のパッケージソフトウェアの開発およびサポート業務を担当、その後ライターになる。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『Accessではじめるデータベース超入門[改訂2版]』『macOSコマンド入門』など。地方自治体の在宅就業支援事業にてMicrosoft Officeの教材作成およびeラーニング指導を担当。会社などの"PCヘルパー"やピンポイント研修なども行っている。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。