特定の Debian パッケージがどのコマンドを提供するかを知りたいです。
たとえば、というパッケージをインストールしたとしますx.deb
。このパッケージには、私が使用できるいくつかのコマンドが確実に含まれています。
これらのコマンドをリストする方法。
compgen
bashコマンドを使用してシステムで利用可能なすべてのコマンドのリストを生成できることを知っていますが、必要なのは特定のパッケージだけです。
私は解決を試みた:
dpkg -L postgresql-9.3 | egrep '(bin|games)/'
/usr/lib/postgresql/9.3/bin/pg_upgrade
/usr/lib/postgresql/9.3/bin/pg_ctl
/usr/lib/postgresql/9.3/bin/pg_resetxlog
/usr/lib/postgresql/9.3/bin/postgres
/usr/lib/postgresql/9.3/bin/pg_xlogdump
/usr/lib/postgresql/9.3/bin/initdb
/usr/lib/postgresql/9.3/bin/pg_controldata
/usr/lib/postgresql/9.3/bin/postmaster
私はコマンドを試しましたpostgres
user@userPc:~$ postgres
No command 'postgres' found, did you mean:
Command 'postgrey' from package 'postgrey' (universe)
postgres: command not found
ベストアンサー1
これを使用dpkg -L pkgname
し、grepコマンドでパイプしてbin/
andを検索しますgames/
。
$ dpkg -L bash | grep -E '/(s?bin|games)/'
/bin/bash
/usr/bin/bashbug
/usr/bin/clear_console
/bin/rbash
すべてのバイナリが含まれているかどうかを確認するには、$PATH
次のbash機能を試してください。
find_binaries (){
dpkg -L "$@" | while read -r; do
[ -f "$REPLY" -a -x "$REPLY" ] && echo "$REPLY"
done
}
次のように呼び出します。
$ find_binaries postfix
...SNIP...
/usr/lib/postfix/postfix-files
/usr/lib/postfix/pipe
/usr/lib/postfix/proxymap
/usr/lib/postfix/local
/usr/lib/postfix/discard
...SNIP...