導入したいライブラリがあるのに、どのパッケージに含まれているのか分からずにモヤモヤすることがあります。
Debian 系は apt-file コマンドを使うのですが、よく忘れるので備忘録として記載します。
なお、CentOS(RHEL系)は以下をご参照ください。
apt-file 導入
$ apt-file
Command 'apt-file' not found, but can be installed with:
sudo apt install apt-file
$ sudo apt install apt-file
以下のパッケージが新たにインストールされます:
apt-file libapt-pkg-perl libexporter-tiny-perl liblist-moreutils-perl
libregexp-assemble-perl
アップグレード: 0 個、新規インストール: 5 個、削除: 0 個、保留: 0 個。
apt-file 使用準備
初回利用時は、update します。 ※理由は後述。
$ sudo apt-file update
apt-file 注意点
apt-file は "/etc/apt/sources.list" を基に作成するデータベースを利用するため、以下のタイミングで更新をかける必要があります。
- 初めて apt-file を使用する
- "/etc/apt/sources.list" を変更した
apt-file 使い方
基本は、update と search で足りるかと思います。
アクション名 | 動作 |
---|---|
search | パターンで指定した名前のファイルが含まれているパッケージを一覧表示する |
find | 同上 |
list | パターンで指定したパッケージに収録されているファイルを一覧表示する |
show | 同上 |
purge | キャッシュを削除する |
update | パッケージリストを/etc/apt/sources.listに従い再取得する |
apt-file 仕様例
前回同様、足りない「libXm.so.3」がどのパッケージに含まれているか探してみたいと思います。
libxm4 に含まれていることがわかります。
$ apt-file search libXm.so.3
libxm4: /usr/lib/x86_64-linux-gnu/libXm.so.3
$ apt-cache search libxm4
libxm4 - Motif - X/Motif shared library