手当たり次第に書くんだ

飽きっぽいのは本能

LPIC apt-cache コマンド

Overview

apt-cache は、インストール済みおよびインストール可能なパッケージに関する情報を問い合わせて表示するためのコマンドです。このコマンドは、apt-getupdate コマンドなどによってローカルキャッシュに取得されたデータのみを利用します。そのため、最後の更新が古い場合は情報が古くなる可能性がありますが、設定されたソースの可用性に依存せずに動作します。

  • apt-cache コマンドは、Debian ベースの Linux ディストリビューションで使用されるパッケージキャッシュを操作するためのコマンドラインツールです。主にパッケージの検索、依存関係の確認、パッケージ情報の表示などの機能を提供します。

前提条件

この記事は、apt-cache --help コマンド、man apt-cache コマンドの出力の内容を和訳し、必要に応じて補足情報を追加しています。

本稿の執筆にあたり、使用した OS, apt-cache の情報は以下の通りです。

myadmin@ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 22.04.4 LTS
Release:	22.04
Codename:	jammy
myadmin@ubuntu:~$ apt-cache --version
apt 2.4.11 (amd64)

コマンド書式

apt-cache --help コマンドで出力されるコマンド書式は以下の通りです。

Usage: apt-cache [options] command
       apt-cache [options] show pkg1 [pkg2 ...]

man apt-cache コマンドで出力されるコマンド書式は以下の通りです。

apt-cache [-agipns] [-o=config_string] [-c=config_file] {gencaches | showpkg pkg...  | showsrc pkg...  | stats | dump | dumpavail | unmet |
    search regex...  | show pkg [{=pkg_version_number | /target_release}]...  | depends pkg [{=pkg_version_number | /target_release}]...  |
    rdepends pkg [{=pkg_version_number | /target_release}]...  | pkgnames [prefix]  | dotty pkg [{=pkg_version_number | /target_release}]...  |
    xvcg pkg [{=pkg_version_number | /target_release}]...  | policy [pkg...]  | madison pkg...  | {-v | --version} | {-h | --help}}

コマンド (command)

apt-cache は、APT のパッケージキャッシュに対してさまざまな操作を行います。apt-cache はシステムの状態を変更しませんが、パッケージメタデータから興味深い出力を検索および生成する操作を提供します。メタデータは、apt-getupdate コマンドなどを介して取得および更新されます。そのため、最後の更新が古い場合は情報が古くなる可能性がありますが、apt-cache は設定されたソースの可用性に依存せずに動作し、オフライン環境でも動作します。-h または --help オプションが指定されていない限り、以下のいずれかのコマンドが存在している必要があります。

  • apt-cache コマンドのサブコマンドと表現した方が分かりやすいかもしれません。
  • 以降の説明で頻繁に登場する「仮想パッケージ」とは、実際には特定のファイルやプログラムを含まないが、他のパッケージが依存関係として指定することができるパッケージのことです。つまり、仮想パッケージはある機能や役割を表現し、他のパッケージがその機能や役割に依存する際に使用されます。実際のパッケージではなく、単なる仮想的な存在であり、システムにインストールされることはありません。代表的な仮想パッケージの例としては、mail-transport-agent, virtual-package などがあります。仮想パッケージは、実際のパッケージを置き換える役割を果たし、異なるパッケージ間の互換性を確保するために使用されます。また、仮想パッケージを介して、同じ機能を提供する複数のパッケージが切り替え可能になることもあります。
コマンド機能

gencaches
gencaches コマンドは、APT のパッケージキャッシュを生成します。このキャッシュが欠落しているか古い場合、これを必要とするすべてのコマンドによって、暗黙的に実行されます。
showpkgshowpkg コマンドは、コマンドラインにリストされたパッケージに関する情報を表示します。残りの引数はパッケージ名です。リストされた各パッケージの利用可能なバージョンと逆依存関係がリストされ、各バージョンの前方依存関係も示されます。前方依存関係は、対象のパッケージが依存するパッケージです。逆依存関係は、対象のパッケージに依存するパッケージです。したがって、前方の依存関係はパッケージに対して満たされる必要がありますが、逆依存関係は満たされる必要はありません。
statsstats コマンドは、キャッシュに関するいくつかの統計情報を表示します。追加の引数は必要ありません。報告される統計情報は後述を参照して下さい。
showsrcshowsrc コマンドは、指定されたパッケージ名に一致するすべてのソースパッケージレコードを表示します。すべてのバージョンが表示され、その名前をバイナリパッケージとして宣言するすべてのレコードも表示されます。--only-source オプションを使用すると、ソースパッケージ名のみを表示できます。
dumpdump コマンドは、キャッシュ内のすべてのパッケージの簡略なリストを表示します。主にデバッグ用途に使用されます。
dumpavaildumpavail コマンドは、利用可能なリストを標準出力に出力します。これは dpkg (1) と組み合わせて使用するのに適しており、dselect (1) メソッドで使用されます。
unmetunmet コマンドは、パッケージキャッシュ内のすべての未解決の依存関係の要約を表示します。
showshow コマンドは、指定されたパッケージのパッケージレコードを表示します。これは、dpkg --print-avail と類似した機能を持っています。
searchsearch コマンドは、与えられた POSIX 正規表現パターンに基づいて、利用可能なすべてのパッケージリストを対象に全文検索を実行します。パッケージ名と説明文を対象に正規表現の一致を検索し、パッケージ名と短い説明文(仮想パッケージ名を含む)を出力します。--full オプションが指定されると、各一致したパッケージについて show コマンドと同様の出力が生成され、--names-only が指定されると、長い説明文ではなくパッケージ名と提供されるパッケージのみが検索されます。複数の検索パターンを指定するためには、個別の引数を使用して論理積 (AND) で結合します。
dependsdepends コマンドは、パッケージが持つ各依存関係と、その依存関係を満たす可能性のある他のすべてのパッケージのリストを表示します。
rdependsrdepends コマンドは、パッケージが持つ各逆依存関係のリストを表示します。
pkgnamespkgnames コマンドは、APT が知っている各パッケージの名前を表示します。オプションの引数は、名前のリストをフィルタリングするためのプレフィックス一致です。出力はシェルのタブ補完機能で使用できる形式であり、出力は非常に速く生成されます。このコマンドは、--generate オプションと一緒に使用するのが最適です。
APT が知っているパッケージとは、必ずしもダウンロード可能、インストール可能、またはインストール済みというわけではありません。たとえば、仮想パッケージも生成されたリストに含まれます。
dottydotty コマンドは、コマンドラインで指定されたパッケージのリストを受け取り、GraphViz パッケージから dotty で使用するための出力を生成します。結果は、パッケージ間の関係を表すノードとエッジのセットになります。デフォルトでは、指定されたパッケージはすべての依存パッケージをたどりますが、これにより非常に大きなグラフが生成される可能性があります。出力をコマンドラインで指定されたパッケージのみに制限するには、APT::Cache::GivenOnly オプションを設定します。
生成されたノードには、いくつかの形があります。通常のパッケージは箱、純粋な仮想パッケージは三角形、混合仮想パッケージはダイヤモンド、不足しているパッケージは六角形です。オレンジの箱は再帰が停止したことを意味し(リーフパッケージ)、青い線は pre-depends を示し、緑の線は conflicts を示します。dotty は大きなセットのパッケージをグラフ化することができません。
xvcgxvcg コマンドは、GraphViz ツールの xvcg に対応しており、dotty と同様の機能を提供します。xvcg は、VCG ツールから生成された出力を扱うためのものです。
policypolicy コマンドは、優先順位ファイルに関連する問題のデバッグを支援することを目的としています。引数を指定しない場合、それぞれのソースの優先順位を表示します。それ以外の場合は、指定されたパッケージの優先順位選択に関する詳細情報を表示します。
madisonmadison コマンドは、Debian アーカイブ管理ツールである madison の出力形式と機能の一部を模倣しようとします。パッケージの利用可能なバージョンを表形式で表示します。元の madison とは異なり、APT がパッケージリストを取得したアーキテクチャ (APT::Architecture) に対してのみ情報を表示できます。
apt-cache コマンド

stats コマンドが出力する統計情報

stats コマンドが出力する統計情報は以下の通りです。

項目説明
Total package namesキャッシュ内で見つかったパッケージ名の総数です。
Normal packages通常のパッケージ名の数です。これらは、依存関係で他のパッケージが使用する名前と一対一の対応関係がある通常のパッケージです。ほとんどのパッケージがこのカテゴリに属します。
Pure virtual packages仮想パッケージ名としてのみ存在するパッケージの数です。つまり、パッケージは仮想パッケージ名を提供するだけで、実際にその名前を使用するパッケージはありません。たとえば、Debian システムの mail-transport-agent は純粋な仮想パッケージです。複数のパッケージが mail-transport-agent を提供していますが、実際のパッケージ名として mail-transport-agent を持つパッケージはありません。
Single virtual packages特定の仮想パッケージを提供するパッケージが 1 つしかないパッケージの数です。例えば、Debian システムでは、X11-text-viewer は仮想パッケージですが、X11-text-viewer を提供するパッケージは xless だけです。
Mixed virtual packages特定の仮想パッケージを提供するパッケージまたは仮想パッケージ名をパッケージ名として持つパッケージの数です。例えば、Debian システムでは、debconf は実際のパッケージであり、debconf-tiny パッケージによって提供されています。
Missing依存関係で参照されていたが、どのパッケージも提供していなかったパッケージ名の数です。不足しているパッケージは、フルなディストリビューションにアクセスされていない場合や、パッケージ(実際のものまたは仮想のもの)がディストリビューションから削除された場合の証拠となります。通常、これらは Conflicts または Breaks ステートメントから参照されます。
Total distinct versionsキャッシュ内で見つかったパッケージのバージョンの総数です。複数のディストリビューションにアクセスしている場合(たとえば、stable, unstable など)、この値は総パッケージ名数よりもはるかに大きくなる可能性があります。
Total dependenciesキャッシュ内のすべてのパッケージによって宣言された依存関係の数です。
apt-cache stats コマンドが出力する統計情報

コマンドオプション (options)

すべてのコマンドラインオプションは、設定ファイルを使用して設定することができます。ブール型のオプションでは、-f-, --no-f, -f=no などのように、設定ファイルを上書きすることができます。

コマンドオプション(設定項目)機能
-p, --pkg-cache (Dir::Cache::pkgcache)-p, --pkg-cache オプションは、パッケージキャッシュを保存するファイルを選択します。パッケージキャッシュはすべての操作で使用される主要なキャッシュです。このオプションを使用すると、パッケージキャッシュを保存するファイルを指定することができます。
-s, --src-cache (Dir::Cache::srcpkgcache)-s, --src-cache オプションは、ソースキャッシュを保存するファイルを選択します。ソースキャッシュは、gencaches によってのみ使用され、リモートソースからのパッケージ情報の解析されたバージョンを格納します。パッケージキャッシュを構築する際に、ソースキャッシュが使用されて、すべてのパッケージファイルを再解析することを避けます。
-q, --quiet (quiet)-q, --quiet オプションは、静かなモードで実行します。進行状況の表示を省略し、ログ出力に適した出力を生成します。より多くの -q を指定すると、より静かな動作となり、最大で 2 つの -q が使用できます。また、-q=# を使用して静かさのレベルを設定することもできます。
-i, --important (APT::Cache::Important)-i, --important オプションは、重要な依存関係のみを表示します。unmetdepends と一緒に使用するためのオプションです。DependsPre-Depends の関係のみが出力されるようにします。
--no-pre-depends, --no-depends, --no-recommends, --no-suggests, --no-conflicts, --no-breaks, --no-replaces, --no-enhances (APT::Cache::ShowDependencyType)--no-pre-depends, --no-depends, --no-recommends, --no-suggests, --no-conflicts, --no-breaks, --no-replaces, --no-enhances の各オプションは、--no に続く指定された種類の依存関係が表示されないようにします。
--implicit (APT::Cache::ShowImplicit)--implicit オプションは、デフォルトでは depends および rdepends コマンドがメタデータで明示的に表現された依存関係のみを表示します。このフラグを使用すると、遭遇したデータに基づいて暗黙的に追加された依存関係も表示されます。たとえば、Conflicts: foo は、このパッケージが他のアーキテクチャのパッケージ foo とも競合することを暗黙的に示しています。
-f, --full (APT::Cache::ShowFull)-f, --full オプションは、検索時に完全なパッケージレコードを表示します。これにより、パッケージの詳細情報が表示され、より詳細な情報を確認できます。
-a, --all-versions (APT::Cache::AllVersions)-a, --all-versions オプションは、すべての利用可能なバージョンの完全なレコードを表示します。これがデフォルトの動作です。無効にするには、--no-all-versions を使用します。--no-all-versions が指定された場合、候補バージョンのみが表示されます(インストールに選択されるバージョン)。このオプションは show コマンドにのみ適用されます。
-g, --generate (APT::Cache::Generate)-g, --generate オプションは、キャッシュの自動的な再生成を実行します。これがデフォルトの動作です。無効にするには、--no-generate を使用します。
-n, --names-only (APT::Cache::NamesOnly)-n, --names-only オプションは、パッケージ名と提供されるパッケージ名のみを検索し、長い説明は検索しません。
--all-names (APT::Cache::AllNames)--all-names オプションは、pkgnames コマンドが仮想パッケージや不足している依存関係を含むすべての名前を表示するようにします。
--recurse (APT::Cache::RecurseDepends)--recurse オプションは、依存関係や逆依存関係を再帰的に処理し、すべての関連するパッケージが一度だけ表示されるようにします。
--installed (APT::Cache::Installed)--installed オプションは、dependsrdepends の出力を、現在インストールされているパッケージに限定します。
--with-source (APT::Sources::With)--with-source オプションは、指定されたファイルをメタデータのソースとして追加します。複数のファイルを追加するには、このオプションを繰り返し使用できます。現在、.deb, .dsc, .changes, Sources, Packages ファイル、およびソースパッケージディレクトリがサポートされています。ファイルは名前のみで一致します。注意すべきは、これらのソースが信頼されていると見なされることです。
-h, --help-h, --help オプションは、簡単な使用方法の概要を表示します。
-v, --version-v, --version オプションは、プログラムのバージョンを表示します。
-c, --config-file-c, --config-file オプションは、使用する設定ファイルを指定します。プログラムはデフォルトの設定ファイルを読み込んだ後に、指定された設定ファイルを読み込みます。設定ファイルがデフォルトの設定ファイルより前に設定される必要がある場合は、APT_CONFIG 環境変数でファイルを指定します。構文の詳細については、apt.conf (5) を参照してください。
-o, --option-o, --option オプションは、任意の設定オプションを設定します。構文は -o Foo::Bar=bar です。-o, --option は異なるオプションを設定するために複数回使用できます。
apt-cache コマンドオプション

関連するファイルとディレクトリ

apt-cache コマンドに関連するファイルとディレクトリは以下の通りです。

設定ファイル(設定項目)説明
/etc/apt/sources.list (Dir::Etc::SourceList)このファイルは、パッケージを取得するためのリポジトリの場所を指定します。
/etc/apt/sources.list.d/ (Dir::Etc::SourceParts)このディレクトリは、パッケージを取得するためのリポジトリの場所に関するファイルフラグメントが含まれています。
/var/lib/apt/lists/ (Dir::State::Lists)このディレクトリは、sources.list ファイルで指定された各パッケージリソースの状態情報の保存領域です。APT は、このディレクトリ内のファイルを使用して、利用可能なパッケージのリストやその他のメタデータを管理します。
/var/lib/apt/lists/partial/ (Dir::State::Lists)このディレクトリは、APT がパッケージリストのダウンロード中に一時的に使用する状態情報の保存領域です。APT がリストのダウンロードを完了すると、このディレクトリからファイルが削除されます。
apt-cache 関連するファイルとディレクトリ
LPIC apt-cache コマンド

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る