在哪里可以通过brew找到安装的软件包路径


142

我通过brew安装了一些软件包。但是我找不到他们在哪里。

无法hping在终端上输入内容来访问

% brew install hping
(git)-[master] 
Warning: hping-3.20051105 already installed

我的hping安装在/usr/local/Cellar/hping/3.20051105/sbin/hping
Mateusz Szlosek

我也遇到了同样的问题daemonize此答案帮助我了解到daemonize已安装在/usr/local/sbinPATH中而不是
jakub.g 17/02/28

Answers:


178

使用以下内容显示软件包的安装路径:

brew info hping

输出示例:

pcre: stable 8.35 (bottled)
http://www.pcre.org/
/usr/local/Cellar/pcre/8.35 (146 files, 5.8M) *
  Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/pcre.rb
==> Options
--universal
    Build a universal binary

9
有可能只获得路径吗?就我而言,我想使用来自llvm的clang,并且在“ brew install llvm”之后仍然是苹果的clang,但是我需要llvm二进制文件中的一个。
okutane

1
BTW brew doctor也可以帮助您了解问题。
jakub.g

3
@okutane您需要自己组装路径。举一个粗略的例子,您可以echo "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
nburr

根据您的特定需求,brew --prefix hping(通过@capripot的答案)可以解决问题。
waldyrious

24

/ usr / local / Cellar是OS X上的默认位置。您将在其中看到所有已安装公式的子目录...


20

要弄清楚您的公式的安装位置,请执行 brew --prefix hping

您也可以通过以下方式重新链接hping二进制文件brew unlink hping && brew link hping

也可能您的$PATH定义不明确。给出的列表是否echo $PATH包含给出的结果echo $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'?此路径应朝向列表的开头,优先于系统二进制文件,当然要早于/usr/bin

为此,您可以在~/.zshrc或的末尾添加~/.bashrc

export PATH=$(brew --prefix)/bin:$(brew --prefix)/sbin:$PATH

结果,在打开新终端或执行之后source ~/.zshrc,您将能够以如下方式回显正确的路径:

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin

谢谢,brew --prefix <command>这正是我所需要的。
waldyrious

6

通常,homebrew将软件包安装到中/usr/local/bin。因此,您需要检查PATH是否包含该目录,如下所示:

echo $PATH

另外,尝试跑步

brew doctor

确保您的设置正确无误。如果/usr/local/bin不在PATH中,则需要编辑~/.profile并添加如下一行:

export PATH=$PATH:/usr/local/bin

然后启动一个新的终端(以重新读取您的登录配置文件),然后重试。

如果所有操作失败,则必须将其安装在其他位置。您可以通过运行以下命令来搜索它:

sudo find / -name hping -type f

2
这些是符号链接。实际的软件包位于/usr/local/Cellar@PapaStanley指出的位置。
史蒂夫

@Steve为什么然后当我这样做时ls -ld /usr/local/bin它看起来像常规目录?
barlop

5

试试这个命令

brew --cellar <FORMULA>

例如

brew --cellar hping

或者,brew --prefix hping也可能有帮助。
waldyrious

1

hping需要root特权才能运行。

您可能需要将/ usr / local / sbin添加到PATH。

我当冲泡医生时:

Warning: Homebrew's sbin was not found in your PATH but you have installed
formulae that put executables in /usr/local/sbin.
Consider setting the PATH for example like so
    echo 'export PATH="/usr/local/sbin:$PATH"' >> ~/.bash_profile

1

要找到Homebrew的基本安装目录,请使用以下命令之一:

brew --prefix
brew --cellar

后者专门返回Cellar文件夹的路径。


0

我建议将以下行添加到您的~/.bash_profile文件中(如果使用的是其他Shell,则应添加等效的配置文件):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

0

我通过brew安装了一些软件包。但是我找不到他们在哪里。

似乎自制软件要求对事物明确。幸运的是,brew --prefix对于需要查找pkg-config实用程序路径的用户来说,使用一些转义字符可以使它变得不费吹灰之力。

PKG_CONFIG_PATH=`brew --prefix hping`/lib/pkgconfig/ pkg-config --cflags hping

(除非这仍然无法正常工作,因为hping.pc ..似乎没有hping。尽管,在包维护人员确实放有.pc文件的情况下,此技巧很有用。)


0

如果有人在寻找包装的真实路径:

在我的情况brew --cellar opencv3/usr/local/Cellar/opencv

但是find /usr/local/Cellar/ -type d -name "*opencv*" -maxdepth 1

/usr/local/Cellar//opencv3/usr/local/Cellar/opencv3实际上是)。

标头:

/usr/local/Cellar/opencv3/3.4.1_1/include/

库:

/usr/local/Cellar/opencv3/3.4.1_1/lib/


0

我可以在其中找到任何直接的CLI选项brew来获取公式的当前安装版本的完整路径,但是只要您使用的是bash,它就可以使用:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.