DebianやUbuntuで、パッケージ管理システム"apt"を使っている場合、ある特定のコマンドやファイルを"apt"を使ってインストールしたくなる場合があります。
そんな時、"apt-file"を使うと、特定のファイルが含まれているaptパッケージを探し出すことが出来ます。
例えば、UbuntuにLinux用のベンチマークツールの"HDBENCH Clone"をインストールしようと"configure"を実行したところ、以下のエラーが出た。
checking for X... no configure: error: *** X libraries or include files not found. Check 'config.log' for *** more details.
config.logを確認したところ、、、
configure:3739:27: error: X11/Intrinsic.h: No such file or directory
と記録されていた。ライブラリやヘッダファイルが無いときによく見る"No such file or directory"。
どうやら、"Intrinsic.h"が無いらしい。findやlocateコマンドでも探してみたが、本当に無いようだ。
というわけで、ここで"apt-file"を使って、"Intrinsic.h"のファイルが含まれているパッケージを探すことが出来ます。
インストールは以下の手順で実施します。
$ sudo apt-get update $ sudo apt-get install apt-file
↑はUbuntuを使っている場合。Debianでも、おそらく同様です。
$ sudo apt-file update
インストール後、上記のコマンドで内部のデータベースを更新します。
$ apt-file search Intrinsic.h libxt-dev: /usr/include/X11/Intrinsic.h llvm-doc: /usr/share/doc/llvm-doc/html/doxygen/namespacellvm_1_1Intrinsic.html llvm-doc: /usr/share/doc/llvm-doc/html/doxygen/structllvm_1_1DbgInfoIntrinsic.html llvm-doc: /usr/share/doc/llvm-doc/html/doxygen/structllvm_1_1MemIntrinsic.html tendra: /usr/lib/TenDRA/lib/include/x5/t.api/X11/Intrinsic.h
準備が出来たら、上記のように"apt-file search"コマンドの後に、探しているファイル名やコマンド名を入力して実行すると、そのファイルやコマンドが含まれているパッケージの一覧が表示されます。
上記の結果ですと、"libxt-dev"パッケージをインストールすればよいことが分かります。
$ apt-file search apt-file apt-file: /etc/apt/apt-file.conf apt-file: /etc/bash_completion.d/apt-file apt-file: /usr/bin/apt-file apt-file: /usr/share/apt-file/apt-file-update.update-notifier apt-file: /usr/share/apt-file/do-apt-file-update apt-file: /usr/share/apt-file/is-cache-empty apt-file: /usr/share/doc/apt-file/README apt-file: /usr/share/doc/apt-file/changelog.gz apt-file: /usr/share/doc/apt-file/copyright apt-file: /usr/share/man/man1/apt-file.1.gz dahb-html: /usr/share/doc/dahb-html/html/apt-file.html fish: /usr/share/fish/completions/apt-file.fish kio-apt: /usr/share/services/searchproviders/apt-file.desktop kio-apt: /usr/share/services/searchproviders/apt-files.desktop zsh: /usr/share/zsh/4.3.4/functions/Completion/Debian/_apt-file zsh-beta: /usr/share/zsh-beta/functions/Completion/Debian/_apt-file
コマンドを探す場合も同様で、上記例は"apt-file"の文字列を含むファイルを検索した例です。