ソースコードをビルドする際に、特定のファイルが必要で、それをDebianパッケージからインストールしたい場合があると思います。そういった際に便利な方法です。
以下の方法のいずれかで調べることができます。
- Debian Packagesで調べる
- ATDEにインストールされているパッケージから調べる
- apt-fileコマンドで調べる
以下、それぞれの方法について説明します。
Debian Packagesで調べる
Debian Packagesのサイト(https://www.debian.org/distrib/packages)にある、 「パッケージの内容を検索」にファイル名を入れることで指定のファイルが 含まれるDebianパッケージを調べることができます。
ATDEにインストールされているパッケージから調べる
ATDEで以下のように「dpkg -S」コマンドを実行することで、すでにATDEにインストールされているDebianパッケージであれば、検索することができます。
[atde ~]$ dpkg -S パス名(ファイル名も可)
例として、「/bin/ls」コマンドが含まれるパッケージを調べる場合は、以下のようになります。
[atde ~]$ dpkg -S /bin/ls coreutils: /bin/ls
上記内容から、「/bin/ls」コマンドはcoreutilsパッケージに含まれていることがわかります。
apt-file searchコマンドで調べる
ATDEで以下のように「apt-file search」コマンドを実行することで検索できます。
[atde ~]$ apt-file search パス名(ファイル名も可)
例として、「/bin/ls」というパスが含まれるパッケージを調べる場合は、以下のようになります。
[atde ~]$ apt-file search "/bin/ls" 9base: /usr/lib/plan9/bin/ls canna-utils: /usr/bin/lsdic cgroup-bin: /usr/bin/lscgroup (省略) util-linux: /bin/lsblk util-linux: /usr/bin/lscpu xen-utils-4.1: /usr/lib/xen-4.1/bin/lsevtchn
上記のように/bin/lsというパス名が含まれるファイルが入っているDebianパッケージが表示されます。「dpkg -S」コマンドに比べて、インストールされていないパッケージも検索してくれるので便利です。
もし、「E: The cache is empty. You need to run 'apt-file update' first.」というエラーが発生した場合は、以下のコマンドを実行してください。
[atde ~]$ apt-file update
もし、apt-fileコマンドがない場合は、以下のコマンドを実行してインストールしてください。
[atde ~]$ sudo apt-get install apt-file