与えられたバイナリを含むパッケージ名を取得します。

与えられたバイナリを含むパッケージ名を取得します。

特定のバイナリ(または他のプログラム)の名前。どのパッケージがこのバイナリを提供しているのか、どうすればわかりますか?

メモ:パッケージ管理にapt/を使用するとします。dpkg

編集する

以下の正解に加えて、いくつかの追加情報を追加したいと思います。上記の質問では、そのパッケージがインストールされました。もしこれならいいえapt-fileこの場合、とにかくタスクを実行するパッケージがあります。

次に、このmysqldumpツールを検索してください。

$ apt-file --regexp search .*mysqldump$

次に続く:

mariadb-client-10.0: /usr/bin/mysqldump
mysql-client-5.5: /usr/bin/mysqldump

このソリューションを見つけましたここしかし、ここで言及するのが役に立つと思いました。

答え1

欲しい包装袋。特に、この-Sオプションはファイルを所有するパッケージを探します。

一例:

$ dpkg -S /usr/bin/whereis
util-linux: /usr/bin/whereis

この例は、util-linuxパッケージにが含まれていることを示しています/usr/bin/whereis

答え2

dpkg --search /usr/bin/mysqldump
dpkg -S /usr/bin/mysqldump

の引数はdpkg --searchシェルワイルドカードパターンであるため、次のことができますdpkg -S bin/*dump

あるいは、データベースを手動で検索することもできます。これは単なるテキストファイルです。

grep mysqldump /var/lib/dpkg/info/*.list

多くのパッケージがインストールされているシステムではdpkg -S読む必要があるため、速度が遅くなる可能性があります/var/lib/dpkg/info場所すべてのファイルと同じ方法で、debパッケージを介してインストールされたファイルをインデックス化しますlocate。情報は少し古いですが(データベースはデフォルトで夜ごとに更新されます)、クエリ操作は高速です。

関連情報