apt-cacheの使い方

apt-cacheコマンド

aptパッケージを検索するときなどに使うapt-cacheコマンド。aptコマンドで検索することもできますが、「aptコマンドを理解するためにはapt-cacheコマンドの理解も必要では?」という思いから、apt-cacheコマンドマニュアルman apt-cacheとヘルプapt-cache -hを調べ、実例を追加するなどしてまとめてみました。

書式などは、マニュアルページの表記に準ずるように記載しています。

マニュアルのセクション番号・バージョンなど
  • コマンド名:apt-cache
  • セクション番号:8(システム管理コマンド)
  • バージョン:2.8.3(amd64)(14 March 2024)
目次

apt-cacheコマンドの書式

apt-cacheコマンドは、「システムへの操作を行わずに、パッケージの検索などを表示する」コマンドです。

マニュアルには以下の書式が書かれています。

※apt-cacheマニュアルページによる書式(マニュアルルールに則り、太字などの文字体裁を補正して表示しました)

となっています。この書式は、並列で複数のオプションなどが同時に記載されているため煩雑に見えますが、マニュアル表記のルールのとおりに読めば難しくありません。(マニュアル表記の統一ルールを見る

上の書式の各コマンドやオプション名をクリックすると、各項目の説明欄に移動するようにリンクを設けています。使い方や実行例などは、コマンドやオプションなどを直接クリックして各項目欄でご確認ください。

補足の書式

apt-cacheマニュアル(man apt-cache)に記載されているコマンドやオプションのうち、上記の書式に含まれていないオプションがあったので追加で記載しました。クリックすると説明項目へ移動します。

※apt-cacheマニュアルページの書式に書かれていないオプション(マニュアルルールに則り、太字などの文字体裁を補正して表示しました)

簡易的な書式

apt-cacheヘルプページには、書式について簡潔に書かれています。

※apt-cacheヘルプページによる書式(マニュアルルールに則り、太字などの文字体裁を補正して表示しました)

DESCRIPTION(説明)

apt-cacheは、「[インストール済み]と[インストール可能]なパッケージの情報を問い合わせて表示する」コマンドです。

-h(または--helpオプションを指定していない場合は、必ず以下のいずれかのコマンドを指定しなければなりません。

gencaches

gencachesは、「APTのパッケージキャッシュを生成する」コマンドです。

gencachesを実行すると、

  • APTのインストールファイルやダウンロードされたパッケージをローカルに保存します。

メモ:

  • 通常は、手動でこのコマンドを実行する必要はありません(apt-get update実行時に実行されます)
  • キャッシュが見つからない場合や古くなっている場合は、キャッシュを必要とするすべてのコマンドにより暗黙で実行されます。
  • 実行例は省略します。

使用できるオプション:

  • ソースキャッシュを格納するファイルを選択するには-s

showpkg

showpkgは、「コマンドライン上に列挙したパッケージの情報を表示する」コマンドです。

showpkgを実行すると、

  • 指定されたパッケージの有効なバージョンと依存関係、各バージョンの依存関係を表示します。

メモ:

  • パッケージは依存関係を満たす必要がありますが、非依存関係(逆依存関係)を満たす必要はありません。

補足:

  • 依存関係(Dependencies)は、パッケージが依存しているパッケージのことで、そのパッケージを動かすためには必須のパッケージです。
  • 非依存(逆依存)関係(Reverse Depends)は、対象のパッケージに依存しているパッケージのことで、そのパッケージを動かすために必要なパッケージではありません。

実行例:パッケージ名を「pkg」とした場合の見え方の例pkgという名前のパッケージはありません)

apt-cache showpkg pkg

実行すると、下のような結果が表示されます。

上の表示結果では、pkgの必須パッケージはpkgApkgBということがわかります。(pkgZとpkgYの必須パッケージはpkgです)

showsrc

showsrcは、「指定したパッケージ名に一致するソースパッケージをすべて表示する」コマンドです。

showsrcを実行すると、

  • パッケージのすべてのバージョンを表示します。
  • ソースレコードを表示します。

メモ:

  • ソースパッケージを有効化しないと使用できないコマンドです。【実行例(ソースパッケージの有効化は、ダウンロードするメタデータ情報などが増えてしまうため、通常は必要ありません。デフォルトではOFFになっています)

使用できるオプション:

  • ソースパッケージだけを表示するには--only-source

実行例:パッケージ名の指定でエラーが出る例

apt-cache showsrc pkg

pkg名では、以下のようなエラーが出てしまいます

「ソースパッケージリポジトリを使うために必要な設定ができていない」ときに出るエラーです。

stats

statsは、「キャッシュについての統計情報を表示する」コマンドです。

statsを実行して表示される主な項目と説明は以下のとおりです。

  • パッケージ名総数:キャッシュに存在するパッケージ数
  • 通常パッケージ:公式の普通のパッケージ数(大多数のパッケージはこのカテゴリに入る)
  • 純粋仮想パッケージ:仮想パッケージ名としてのみ存在するパッケージ数(実際にその名前のパッケージはない)
  • 単一仮想パッケージ:特定の仮想パッケージ名を提供するパッケージが1つだけのパッケージ数
  • 複合仮想パッケージ:仮想パッケージ名を提供するパッケージが複数あるか、パッケージ名と同じ仮想パッケージ名を持つパッケージ数
  • 欠落:依存関係に存在するが、どのパッケージにも提供されていないパッケージ名の数(全ディストリビューションにアクセスできていないか、実パッケージや仮想パッケージがディストリビューションからはずされた兆候の可能性があり、構文が競合や破損すると通常はこのようになる)
  • 個別バージョン総数:キャッシュに存在するパッケージのバージョン数
  • 依存関係総数:キャッシュにあるすべてのパッケージで要求された依存関係の数
  • その他、マニュアルにない項目も多数表示されます。

実行例:

apt-cache stats

管理者権限sudoは不要です。表示される項目の説明は「statsを実行して表示される主な項目…」を確認してください。

dump

dumpは、「キャッシュ内のパッケージそれぞれの短い一覧を表示する」コマンドです。

メモ:

  • 主にデバッグ用に使われるコマンド、だそうです。(大量のリストが表示されます)

実行例:キャッシュ内のパッケージの一覧を短く表示する

apt-cache dump

実行してみましたが、びっくりするくらい大量のリストが表示されたので、必要なときだけ実行するのが良いと思います。

dumpavail

dumpavailは、「標準出力に利用可能なものの一覧を出力する」コマンドです。

メモ:

  • dpkg(1)とともに使用すると便利で、dselect(1)でも使用される、と説明されていますがよくわかりませんでした。説明は省略します。
  • 実行すると、大量のリストが表示されました。

unmet

unmetは、「パッケージキャッシュ内にある不適当な依存関係の概要を表示する」コマンドです。

メモ:

説明や実行例は省略します。

使用できるコマンド:

  • 重要な依存関係のみ表示するには-i

searchは、「すべての利用可能なパッケージに対して全文検索をおこなう」コマンドです。

searchを実行すると、

  • すべての利用可能なパッケージと説明に対してキーワードや正規表現で全文検索を行います。
  • 検索結果として、パッケージ名 (仮想パッケージ名を含む) と短い説明文を表示します。

メモ:

  • 書式search regexregexは正規表現です。(正規表現はregex(7)のマニュアルを参照してください)
  • 半角スペースで区切ると、複数の検索パターンを指定することができます。
  • キーワードはパッケージ名や日本語でも可能です。【実行例
  • 該当する検索結果がない場合は、何も表示されずに終了されます。

使用できるオプション:

  • 検索して該当したパッケージに対して show と同じ情報を出力するには、-f
  • パッケージ名と提供されたパッケージのみ対象とする(長い説明文に対して検索を行わない)には、-n

実行例:「ufw」と「グラフィカルユーザインターフェース」の2つを全文検索する

apt-cache search ufw グラフィカルユーザインターフェース

結果は以下のように表示されます。

gufw」はパッケージ名で、「ufw 用グラフィカルユーザインターフェース」は簡単な説明です。

show

showは、「指定したパッケージの情報を表示する」コマンドです。

メモ:

  • dpkg --print-availと同じ意味になります。
  • パッケージの情報(パッケージ名と詳細情報)を表示します。【実行例
  • デフォルトでは、利用可能な全バージョンのレコード全体を表示します。-aオプション参照)

使用できるコマンド:

  • インストール時に選択される候補バージョンのみ表示するには--no-all-versions
  • 利用可能な全バージョンのレコード全体を表示するには-a

実行例:パッケージ名「gufw」の詳細情報を表示する

apt-cache show gufw

結果は以下のように指定したパッケージ「gufw」の詳細が表示されます。

depends

dependsは、「パッケージが持っている依存関係と、その依存関係を満たす他のパッケージの一覧を表示する」コマンドです。

dependsを実行すると、

  • パッケージの依存情報を表示します。【実行例
  • デフォルトでは全依存関係を出力しますが、オプションを使うと出力内容を制御することができます。
  • デフォルトでは明示的に表現された依存関係のみを出力します。--implicitオプションを使うと追加の依存関係を表示することができます。

メモ:

  • dependsとは逆の、パッケージの非依存(逆依存)関係を表示するコマンドはrdependsです。

使用できるコマンド:

  • 重要な依存関係のみ表示するには-i
  • インストール済みのパッケージだけを表示するには--installed
  • 事前インストールや設定が必要な必須パッケージを表示しないようにするには--no-pre-depends
  • 必須パッケージを表示しないようにするには--no-depends
  • 推奨パッケージを表示しないようにするには--no-recommends
  • 提案パッケージを表示しないようにするには--no-suggests
  • 競合パッケージを表示しないようにするには--no-conflicts
  • 破壊パッケージを表示しないようにするには--no-breaks
  • 置換パッケージを表示しないようにするには--no-replaces
  • 提案パッケージを表示しないようにするには--no-enhances
  • 指定した全パッケージを再帰的に一度に表示するには--recurse
  • その他dependsで使用できるオプション--implicit

実行例:gufwパッケージの依存関係を調べてみる

apt-cache depends gufw

結果として、以下のように依存関係にあるパッケージ名が表示されます。

rdepends

rdependsは、「パッケージが持つ非依存(逆依存)関係をリスト表示する」コマンドです。

rdependsを実行すると、

  • バッケージの非依存(逆依存)情報(そのパッケージが依存されている情報)を表示します。【実行例
  • デフォルトでは全ての非依存(逆依存)関係を出力しますが、オプションを使うと出力内容を制御することができます。
  • デフォルトでは明示的に表現された非依存(逆依存)関係のみを出力します。--implicitオプションを使うと追加の非依存(逆依存)関係を表示することができます。

メモ:

  • rdependsとは逆の、パッケージの依存関係を表示するコマンドはdependsです。

使用できるオプション:

  • 重要な非依存(逆依存)関係のみ表示するには-i
  • インストール済みのパッケージだけを表示するには--installed
  • 事前インストールや設定が必要な必須パッケージを表示しないようにするには--no-pre-depends
  • 必須パッケージを表示しないようにするには--no-depends
  • 推奨パッケージを表示しないようにするには--no-recommends
  • 提案パッケージを表示しないようにするには--no-suggests
  • 競合パッケージを表示しないようにするには--no-conflicts
  • 破壊パッケージを表示しないようにするには--no-breaks
  • 置換パッケージを表示しないようにするには--no-replaces
  • 提案パッケージを表示しないようにするには--no-enhances
  • 指定した全パッケージを再帰的に一度に表示するには--recurse
  • その他dependsで使用できるオプション--implicit

実行例:「ufw」が依存されているパッケージを検索する

apt-cache rdepends ufw

結果として、以下のように表示されます。

「ufw」は、「gufw」から依存されていることがわかります。

pkgnames

pkgnamesは、「APTが知っている各パッケージ名を表示する」コマンドです。

pkgnamesを実行すると、

  • 名前一覧から先頭が一致するものを高速で抽出します。
  • システム内のすべてのパッケージ名一覧を表示します。
  • 表示されるパッケージ名は、「ダウンロード可能」「インストール可能」「インストール済み」「仮想パッケージ」などです。

メモ:

  • 書式に書かれているprefixは接頭辞のことです。【実行例

使用できるオプション:

  • 自動的にパッケージキャッシュを再生成してパッケージ名を検索するには-g実行例
  • 仮想パッケージや欠落依存関係を含めた全名称を表示するには--all-names

実行例:接頭辞を「apt-b」として、パッケージを検索してみる

apt-cache pkgnames apt-b

以下のようにはじめに「apt-b」がつくバッケージの一覧を表示してくれました

dotty

dottyは、「パッケージの関係をGraphVizを使って見やすい図にすることができる」コマンドです。GraphViz:https://graphviz.org/)

dottyを実行すると、

  • パッケージの関係が、ノード(グラフの頂点)とエッジ(頂点を結ぶ線)のセットで表現されます。
  • すべての依存パッケージをトレースします。(大きい図になります)
  • 通常パッケージは四角で表されます。(オレンジの四角は再帰が終了した「リーフパッケージ」です)
  • 純粋仮想パッケージは三角で表されます。
  • 複合仮想パッケージは菱形で表されます。
  • 欠落パッケージは六角形でで表されます。
  • 青い線は先行依存を表します。
  • 緑の線は競合を表します。

メモ:

  • GraphVizをインストールしないと「図」は表示されません。
  • パッケージより大きなセットのグラフは描けません。
  • 実行例は省略します。


xvcg

xvcgは、「パッケージの関係をVCG toolを使って見やすい図にすることができる」コマンドです。(※VCG tool:https://www.rw.cdl.uni-saarland.de/people/sander/private/html/gsvcg1.html)

メモ:

  • dottyと同様ですが、VCG toolのxvcgコマンド専用です。
  • VCG toolをインストールしないと「図」は表示されません。
  • 実行例は省略します。

policy

policyは、「プリファレンスファイル関係の問題について、デバッグを支援する」コマンドです。

policyを実行すると、

  • ポリシー設定情報(イントールされているバージョン、候補バージョン、入手先など)を表示します。

メモ:

  • パッケージ名を指定した場合、優先順の詳細情報を表示します。【実行例
  • 引数を指定しなかった場合は、取得元ごとの優先順位を表示します。

実行例:パッケージ名「gufw」のポリシー情報を表示してみる

apt-cache policy gufw

実行すると以下のような結果が表示されます。

madison

madisonは、「パッケージの利用可能バージョンをリスト表示する」コマンドです。

madisonを実行すると、

  • パッケージのバージョン、入手先URLなどを表示します。【実行例

実行例:パッケージ名「gufw」のバージョンと入手先URLを表示する

apt-cache madison gufw

実行すると以下のような結果が表示されます。

オプション

apt-cacheマニュアル(man apt-cache)に記載されているオプションを各コマンドと紐付けしたり、実行例を記載するなどしてまとめました。(筆者がマニュアルから学んだ内容です。専門的な用語や文法とは解釈が異なることがあるかもしれません)

-agipns

書式に記載されている-agipnsは、それぞれ個別のオプション名です。意味はそれぞれのオプションごとに異なるため、各項目で確認してください。

-a -g -i -p -n -s

-aオプション

-a --all-versions

-aは、「利用可能の全バージョンのレコード全体を表示する」オプションです。

メモ:

  • showコマンドでのデフォルトの動作なので、通常はこのままでOKです。
  • 無効にしたい場合は--no-all-versionsを使用します。

使用できるコマンド:

showのみ

–no-all-versions

--no-all-versionsは、「インストール時に選択されるバージョンのみ表示する」オプションです。

メモ:

  • -aオプションのOFFバージョンです。
  • インストールの際に選択される候補バージョンだけを表示します。
  • ONにしたい場合は、-aオプションを指定します。

使用できるコマンド:

showのみ

-gオプション

-g --generate

-gは、「自動的にパッケージキャッシュを再生成する」オプションです。

メモ:

  • キャッシュをそのまま使用せず、自動的にパッケージキャッシュを再生成します。
  • -gオプションはデフォルトの動作なので、手動で実行することは基本的にありません。
  • 無効にするには--no-generateを使います。

使用できるコマンド:

pkgnames

実行例:パッケージキャッシュを再生成してから、接頭辞を「apt-b」として、パッケージ検索

apt-cache pkgnames apt-b -g

–no-generate

--no-generateは、「自動的にパッケージキャッシュを再生成しない」オプションです。

メモ:

  • -gオプションの設定を無効(オフ)にしたいときに使います。

使用できるコマンド:

pkgnames

-iオプション

-i --important

-iは、「『重要』な依存関係のみ表示する」オプションです。

メモ:

  • 「依存」関係と「先行依存」関係のみを表示します。

使用できるコマンド:

unmet depends rdepends

-pオプション

-p --pkg-cache

-pは、「パッケージキャッシュを格納するファイルを選択する」オプションです。

メモ:

  • パッケージキャッシュは、すべての操作で使われる一次キャッシュのことです。
  • 実行例は省略します。

-nオプション

-n --names-only

-nは、「パッケージおよび提供されたパッケージ名のみ検索する」オプションです。

メモ:

  • searchは、説明文を含めて全文検索を行いますが、-nオプションをつけると説明文の検索はおこないません。

使用できるコマンド:

search

-sオプション

-s --src-cache

-sは、「ソースキャッシュを格納するファイルを選択する」オプションです。

メモ:

  • パッケージキャッシュを構築する際は、全パッケージファイルの再解析を避けるため、ソースキャッシュが使われます。
  • ソースキャッシュには、解析された取得元のパッケージ情報が格納されます。

使用できるコマンド:

gencachesのみ

-oオプション

-o --option

-oは、「任意の設定オプションをセットする」オプションです。

メモ:

  • 書式にある-oオプションのconfig_stringは、設定文字列です。
  • 異なるオプションを設定する場合、-oオプションは複数回使用できます。
  • 構文などの説明は省略します。man cacheで確認してください・

-cオプション

-c --config-file

-cは、「使用する設定ファイルを指定する」オプションです。

メモ:

  • この設定ファイルは、デフォルト設定ファイルを読んだ後に読まれます。(デフォルト設定ファイルより先に読ませたい場合はman apt-cache-cオプション項目で詳細を確認してください)
  • 書式にある-cオプションのconfig_fileは、設定ファイルです。
  • 構文などの説明は省略します。

-vオプション

-v --version

-vは、「プログラムのバージョンを表示する」オプションです。

メモ:

  • サプコマンドは不要です。

実行例:apt-cacheのバージョンを表示する

apt-cache -v

実行すると、apt-cacheコマンドのバージョが表示されます。

-hオプション

-h --help

-hは、「使い方の短い要約を表示する」オプションです。

メモ:

  • サブコマンドは不要です。

実行例:apt-cacheの使い方の短い要約を表示する

apt-cache -h

実行すると、apt-cacheコマンドの使い方の簡単な説明が表示されます。

-qオプション

-q --quiet

-qは、「進捗表示を省略し、ログをとるのに便利な出力をする」オプションです。

メモ:

  • 最大 2つまで q を重ねることができます。(とありますが、-qqを試していないため詳細は不明です)
  • 実行例は省略します。

–no-pre-depends

--no-pre-dependsは、「PreDependsパッケージを表示しない」オプションです。

メモ:

  • PreDependsパッケージとは、事前インストールや設定が必要な必須パッケージのことです。

使用できるコマンド:

depends rdepends

–no-depends

--no-dependsは、「Dependsパッケージを表示しない」オプションです。

メモ:

  • Dependsパッケージとは、必須パッケージのことです。

使用できるコマンド:

depends rdepends

–no-recommends

--no-recommendsは、「Recommendsパッケージを表示しない」オプションです。

メモ:

  • Recommendsパッケージとは、推奨パッケージのことです。

使用できるコマンド:

depends rdepends

–no-suggests

--no-suggestsは、「Suggestsパッケージを表示しない」オプションです。

メモ:

  • Suggestsパッケージとは、提案パッケージのことです。

使用できるコマンド:

depends rdepends

–no-conflicts

--no-conflictsは、「Conflictsパッケージを表示しない」オプションです。

メモ:

  • Conflictsパッケージとは、競合するパッケージのことです。

使用できるコマンド:

depends rdepends

–no-breaks

--no-breaksは、「Breaksパッケージを表示しない」オプションです。

メモ:

  • Breaksパッケージとは、破壊(してしまう)パッケージのことです。

使用できるコマンド:

depends rdepends

–no-replaces

--no-replacesは、「Replacesパッケージを表示しない」オプションです。

メモ:

  • Replacesパッケージとは、置換(する)パッケージのことです。

使用できるコマンド:

depends rdepends

–no-enhances

--no-enhancesは、「Enhancesパッケージを表示しない」オプションです。

メモ:

  • Enhancesパッケージとは、提案(されている)パッケージのことです。

使用できるコマンド:

depends rdepends

–implicit

--implicitは、「遭遇したデータにもとづいて追加の依存関係を表示する」オプションです。

メモ:

  • 暗黙的に依存関係とみなされるパッケージを表示することができます。(デフォルトではdependsrdependsは明示的に表現された依存関係だけを出力します)
  • (例)Conflicts: foo だと、パッケージ foo と競合していることを暗黙的に表現している、のだそうです。(確認していないので実行例ではなく、メモに残します)

使用できるコマンド:

depends rdepends

-fオプション

-f --full

-fは、「search実行時に全パッケージレコードを表示する」オプションです。

メモ:

  • (検索結果の全パッケージに対して)showと同じパッケージ情報(パッケージ名と詳細情報)を表示します。

使用できるコマンド:

search

–all-names

--all-namesは、「仮想パッケージや欠落依存関係を含めた全名称を表示する」オプションです。

メモ:

  • すべてのバージョンの情報を表示します。

使用できるコマンド:

pkgnames

–recurse

--recurseは、「指定した全パッケージを再帰的に一度に表示する」オプションです。

使用できるコマンド:

depends rdepends

–installed

--installedは、「現在インストールされているパッケージに限定して表示する」オプションです。

メモ:

  • インストール済みのパッケージだけを表示します。

使用できるコマンド:

depends rdepends

–with-source

--with-sourceは、「メタ情報のソースとして指定したファイルを追加する」オプションです。

メモ:

  • 指定を繰り返せば、複数のファイルを追加可能です。
  • ファイルとの照合はファイル名だけを基にして行われ、ファイルの内容との照合は行われません。
  • 書式にあるfilenameはファイル名です。サポートされているのは、.deb、.dsc、*.changes、Sources、Packages ファイルと、ソースパッケージのディレクトリになります。
  • SourcesやPackagesは正しい拡張子を付けていれば APT がサポートする任意の形式で圧縮可能です。
  • 実行例は省略します。

–only-source

--only-sourceは、「ソースに関する情報のみ表示する」オプションです。

メモ:

  • ソースパッケージを有効化しないと使用できません。(ソースパッケージはデフォルトでは有効化されていません)

使用できるコマンド:

showsrc

まとめ・参考資料

以上で、apt-cacheコマンドの使用方法の説明を終わります。さらに詳しい内容を知りたい場合は、以下のコマンドを実行してみてください。

apt-cacheマニュアル(日本語版):man apt-cache
apt-cacheマニュアル(英語版):man -a apt-cache→[q]→[a]→[Enter]キー
apt-cacheヘルプ:apt-cache -h

Ubuntu-パッケージ間の依存関係(dotty):https://qiita.com/DR623G/items/183f422e7a0ece5095db

aptで使うsources.listのオプションいろいろ(deb-src):https://gihyo.jp/admin/serial/01/ubuntu-recipe/0677

あなたはsources.listにいくつかの「deb-src」URIを追加する必要があります。(deb-src):https://linux-jp.org/?p=518

よかったらシェアしてね!
目次