Homebrewで、特定のファイルのパッケージ/式、またはパッケージが所有するすべてのファイルのリストを特定するにはどうすればよいですか?
41152 次
6 に答える
7
ファイルが属するbrewパッケージ名を取得するために、この汚い関数を書きました:
function brew_find_pkg {
file_to_search="$@"
for package in $(brew list); do
brew ls $package | grep -E -q "/${file_to_search}$"
if [ $? -eq 0 ]; then
echo $package
break
fi
done
}
ターミナルにそれを入力するだけです。そして、ファイルが属しているbrewパッケージを見つけるために、たとえば file を見つけるには、次のgsed
ように関数を呼び出すだけです
brew_find_pkg gsed
ファイルのフル パスを指定すると、関数が機能しないことに注意してください。
于 2016-04-14T12:18:43.057 に答える
3
Cellar/PACKAGE/...
パッケージ名は、バイナリ ( )を指すシンボリック リンクに基づいて決定できます。
$ ls -la $(which awk) # => gawk
lrwxr-xr-x 1 kenorb 28 May 20 2015 /usr/local/bin/awk -> ../Cellar/gawk/4.1.1/bin/awk
$ ls -la $(which seq) # => coreutils
lrwxr-xr-x 1 kenorb 14 Apr 8 2015 /usr/local/opt/coreutils/libexec/gnubin/seq -> ../../bin/gseq
于 2016-04-06T20:31:50.633 に答える
2
$( brew --prefix )/bin
この関数は、ディレクトリ に格納されたコマンドに対して機能します。
function brew_find_pkg {
cmds_to_search="$@"
brew_bin=$( brew --prefix )/bin
for cmd in $cmd_to_search ; do
if [ -L $brew_bin/$cmd ] ; then
\ls -l $brew_bin/$cmd |cut -f 2 -d '>'
else
echo "$cmd is not a brew command"
fi
done
}
例えば:
$ brew_find_pkg gawk gcc alskdfja
../Cellar/gawk/4.1.4_1/bin/gawk
../Cellar/gcc/5.3.0/bin/gcc
alskdfja is not a brew command
于 2017-09-29T19:04:43.943 に答える