web-dev-qa-db-ja.com

バイナリのソースパッケージを検索するコマンド?

バイナリの完全な名前をエコーするwhichコマンドがあることを知っています(例:which sh)。ただし、特定のバイナリを提供するパッケージをエコーするコマンドがあることはかなり確実です。そのようなコマンドはありますか?もしそうなら、それは何ですか?これを実行できるようにしたい:

commandName ls

そして得る

coreutils

例えば。

33
Delan Azabani

私はあなたが探していると思います dpkg -Sコマンドdpkgでよく使用されるオプション も参照)。

37
nik

インストールしていないパッケージ内のファイルを検索する場合は、apt-fileを使用します

apt-get install -y apt-file
apt-file update

次に、何かを見つけるには:

apt-file search /usr/bin/file

または

apt-find search file

ここで、「ファイル」は検索しているものの名​​前です。

すべてのdebianシステムでこれを経験したくない場合は、次のスクリプトを使用できます。

#!/bin/bash
which apt-get >/dev/null || { echo apt-get not found >&2; exit 1; }
which apt-file >/dev/null || { apt-get install -y apt-file;  apt-file update; }
unset i; IFS=$'\x0a'; select i in $( apt-file search "/$@" ); do 
    test -n "$i" || break; apt-get install "${i%% *}"; done

私はその時それをホイップしましたが、それはうまくいくようです。

注:「dpkg -S」は、すでにインストールされているものだけを検索します。

11
Orwellophile