バイナリの完全な名前をエコーするwhich
コマンドがあることを知っています(例:which sh
)。ただし、特定のバイナリを提供するパッケージをエコーするコマンドがあることはかなり確実です。そのようなコマンドはありますか?もしそうなら、それは何ですか?これを実行できるようにしたい:
commandName ls
そして得る
coreutils
例えば。
私はあなたが探していると思います dpkg -S
コマンド ( dpkgでよく使用されるオプション も参照)。
インストールしていないパッケージ内のファイルを検索する場合は、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」は、すでにインストールされているものだけを検索します。