【 dnf 】コマンド(応用編その1)――ソフトウェア(パッケージ)を探す:Linux基本コマンドTips(369)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「dnf」コマンドでソフトウェア(パッケージ)を検索する方法です。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、基礎編に続き、「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、連載第370回参照) |
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 | パッケージのインストールや削除の履歴を表示する |
パッケージを探す
「dnf search 文字列」で、指定した文字列が名前や概要(パッケージの内容を説明する短文)に含まれているパッケージを一覧表示します。なお、パッケージを検索する際、root権限は必要ありません(listとinfoでも不要)。
このコマンドを実行する際、既にダウンロード済みのパッケージリストを使用します。リストを最新版に更新してから検索したい場合は「--refresh」オプションを使用します(画面1)。
コマンド実行例
dnf search 文字列
(指定した文字列が名前や概要に含まれているパッケージを一覧表示する)
dnf search mysql
(「mysql」が名前や概要に含まれているパッケージを一覧表示する)
dnf search mysql --refresh
(キャッシュを更新してからパッケージを検索する)
パッケージを一覧表示する
「dnf list パッケージ名」で、指定した名前のパッケージを表示します。パッケージ名には「*」記号や「?」記号を使用できます。パッケージ名を指定しなかった場合は、使用できる全てのパッケージを表示します。
インストール済みのパッケージだけを対象としたい場合は、「--installed」オプションを指定します。この他、以下のオプションが使用できます(dnfのlistコマンドとinfoコマンドで使用可能なオプション)。
長いオプション | 意味 |
---|---|
--all | 全てのパッケージを表示する |
--installed | インストールされているパッケージを表示する |
--available | 利用可能なパッケージを表示する |
--extras | インストールされているがリポジトリには含まれていないパッケージを表示する |
--obsoletes | インストールされているがリポジトリでは廃止(obsoleted)となっているパッケージを表示する |
--recent | リポジトリに新しく追加されたパッケージを表示する |
--upgrades | インストールされているパッケージのうち、新しいバージョンが公開されているパッケージを表示する |
--autoremove | 依存関係のためインストールされているが現在は不要となっているパッケージを表示する(dnf autoremoveで削除可能、※6) |
※6 「--autoremove」指定時は引数にパッケージ名を指定できない。
コマンド実行例
dnf list パッケージ名
(指定した名前のパッケージを一覧表示する)
dnf list "zsh"
(zshという名前のパッケージを一覧表示する)
dnf list "*sh"
(名前の末尾が"sh"であるパッケージを一覧表示する)
dnf list "*sh" --installed
(名前の末尾が"sh"で、インストール済みのパッケージを一覧表示する)
dnf list installed
(インストール済みのパッケージを一覧表示する)
画面2ではまず名前に文字列「zsh」を含むパッケージを表示し、次に「*sh」というパターンを含むパッケージのうち、インストール済みのものを表示しています。
パッケージの情報を表示する
Copyright © ITmedia, Inc. All Rights Reserved.