apt-file コマンド

目次

概要

apt-file - パッケージのファイル情報を表示する(Ubuntu系)

コマンドライン

apt-file [OPTIONS] ACTION [PATTERM]
apt-file [OPTIONS] -f ACTION FILE
apt-file [OPTIONS] -D ACTION DEBFILE

対象バージョン

説明

apt-file はパッケージに含まれているファイル情報を表示するコマンドです。インストールされていない場合は下記でインストールします。

$ sudo apt-get install apt-file

パッケージに含まれるファイルの一覧を表示したり検索したりします。

$ apt-file list apache2              # apache2 パッケージに含まれるファイル一覧を表示
$ apt-file search /usr/sbin/apache2  # /usr/sbin/apache2 ファイルを含むパッケージを表示

コマンド

list, show

指定したパッケージに含まれるファイルの一覧を表示します。

$ apt-file list apache2
apache2: /etc/apache2/apache2.conf
apache2: /etc/apache2/conf-available/charset.conf
apache2: /etc/apache2/conf-available/localized-error-pages.conf
apache2: /etc/apache2/conf-available/other-vhosts-access-log.conf
apache2: /etc/apache2/conf-available/security.conf
   :

指定したファイル名がどのパッケージに含まれているかを検索します。

$ apt-file search apache2              # ファイル名のみで検索
acmetool: /etc/apache2/conf-available/acmetool.conf
adarkroom: /etc/apache2/conf-available/adarkroom.conf
adminer: /etc/apache2/conf-available/adminer.conf
  :
$ apt-file search /usr/sbin/apache2    # パス名で検索
apache2: /usr/sbin/apache2ctl
apache2-bin: /usr/sbin/apache2

update

パッケージソース情報をアップデートします。

$ sudo apt-file update

list-indices

apt-file がどのインデックスを参照するかを示します。"Index Name"apt-file search コマンドの -I オプションで指定できるインデックス名です。"DefaultEnabled" はそのインデックスがデフォルトで有効か否かを表示します。"Index Status" はインデックスの状態を表示します。deb は通常パッケージ、udeb は軽量パッケージ、dsc はソースパッケージ情報です。

$ apt-file list-indices
+-----------------+-----------------------------+-----------------+
| Index Name (-I) | DefaultEnabled (Apt config) | Index Status    |
+-----------------+-----------------------------+-----------------+
| deb             | <unset>                     | Ok              |
| udeb            | false                       | Empty (code: 4) |
| dsc             | false                       | Empty (code: 4) |
+-----------------+-----------------------------+-----------------+

オプション

検索パターン

-i, --ignore-case
検索文字列の大文字・小文字を無視します。
$ apt-file -i search APACHE2
-F, --fixed-string
検索に正規表現を使用しません。デフォルトの動作です。
$ apt-file seach -F apache2
-x, --regext
検索に正規表現を使用します。検索が遅くなる場合は apt-file search の結果を | perl -ne '/.../' でフィルタリングすることを検討してください。
$ apt-file search -x '^/usr/sbin/apache2$'
-f, --from-file
検索したいパッケージ名をファイルから読み込みます。ファイル名に - を指定すると標準入力から読み込みます。
$ cat packages.txt
apache2
vim
$ apt-file search -f packages.txt
-D, --from-deb
ファイル情報を表示したいパッケージをパッケージ名ではなくパッケージファイル名で指定します。パッケージ名の場合、パッケージ名を含む他のパッケージの情報も表示されますが、パッケージを正確に絞り込むことができます。
$ apt-file -D search ./apache2_2.4.58-1ubuntu8.8_amd64.deb
--substring-match
検索文字列を部分文字列として検索します。ワイルドカードや正規表現は使用しません。これがデフォルトの動作です。
$ apt-file --substring-match search apache2

検索フィルタ

-a, --architecture
アーキテクチャでフィルタリングします。
$ apt-file -a amd64 list apache2
-I, --index-names
インデックス名でフィルタリングします。インデックス名は list-indices で確認できます。
$ apt-file -I deb list apache2
--filter-suites
パッケージスイート(stable, unstable, testing や noble, jammy など)でフィルタリングします。
$ apt-file  --filter-suites noble list apache2
--filter-origins
パッケージのオリジン(Debian, Ubuntu など)でフィルタリングします。
$ apt-file --filter-origins Ubuntu list apache2

その他のオプション

-c, --config
コンフィグファイルを指定します。
$ apt-file -c ./my.conf list apache2
-o, --option
/etc/apt/apt.conf.d で定義するようなオプション値を一時的に変更して実行します。
$ apt-file -o Dir::State=./cache update
$ apt-file -o Dir::State=./cache list apache2
-l, --package-only
パッケージ名のみを表示します。
$ apt-file -l search apache2
--stream-results
通常は検索した結果から重複を排除して表示しますが、重複排除を行わず見つかったものから逐次表示します。
$ apt-file --stream-results search apache2
-v, --verbose
検索の進捗状況を表示します。
$ apt-file -v search apache2
-h, --help
ヘルプを表示して終了します。