236

I installed some packages via brew. But I can not find where they are.

I can not get access by typing hping on terminal

% brew install hping
(git)-[master] 
Warning: hping-3.20051105 already installed
2
  • My hping is installed in /usr/local/Cellar/hping/3.20051105/sbin/hping Sep 16, 2014 at 7:55
  • I had the same problem with daemonize, this answer helped me understand that daemonize is installed in /usr/local/sbin that was not in the PATH
    – jakub.g
    Feb 28, 2017 at 16:32

15 Answers 15

272

Use the following to show the installation path of a package:

brew info hping

Example output:

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
6
  • 18
    Is it possible to get only path? In my case I want to use clang from llvm and after "brew install llvm" clang is still apple's, but one from llvm binaries is what I need.
    – okutane
    Sep 9, 2016 at 6:51
  • 1
    BTW brew doctor might help you understand issues as well.
    – jakub.g
    Feb 28, 2017 at 16:34
  • 6
    @okutane You would need to assemble the path yourself. As a crude example, you could do echo "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
    – nburr
    Mar 7, 2018 at 16:37
  • 3
    Depending on your specific needs, brew --prefix hping (from @capripot's answer) may do the trick.
    – waldyrious
    Jan 4, 2019 at 17:59
  • 2
    ^ although note that on M1 Macs, they live in /opt/homebrew/bin/
    – Leland
    May 16 at 22:41
50

To figure out where your formula is installed, do brew --prefix hping

You can also relink your hping binary by doing brew unlink hping && brew link hping

Also maybe your $PATH is not well defined. Does the list given by echo $PATH contains the result given by echo $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'? This path should be toward the beginning of the list to be prioritized over system binaries, surely before /usr/bin.

To do so, you can add this at the end of your ~/.zshrc or ~/.bashrc:

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

As a result, after opening a new terminal or doing source ~/.zshrc, you'll be able to echo your correct path as:

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
2
  • 3
    Thank you, brew --prefix <command> was exactly what I needed.
    – waldyrious
    Jan 4, 2019 at 17:57
  • This does not work for "cask" packages.
    – Pointy
    Oct 8 at 13:31
38

The /usr/local/Cellar directory is the default location on OS X. You'll see sub-directories in there for all your installed formulae.

2
  • 1
    Not on M1 Macs.
    – Pointy
    Oct 8 at 13:32
  • This answer only applies to Intel Macs as @Pointy pointed out. Nov 16 at 7:32
11

Try this command

brew --cellar <FORMULA>

e.g.

brew --cellar hping
2
  • Alternatively, brew --prefix hping may be helpful as well.
    – waldyrious
    Jan 4, 2019 at 17:59
  • 1
    Thanks heaps. This doesn't seem to work for casks. Any idea?
    – Meligy
    Feb 23, 2021 at 2:17
10

Normally, homebrew installs packages into /usr/local/bin. So you need to check that your PATH contains that directory, like this:

echo $PATH

Also, try running

brew doctor

to make sure your setup is correct. If /usr/local/bin is not in your PATH, you need to edit ~/.profile and add a line like this:

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

Then start a new Terminal (in order to re-read your login profile) and try again.

If all that fails, it must be installed somewhere else. You can search for it by running a command like this:

sudo find / -name hping -type f
3
  • 2
    These are symlinks. The actual packages are in /usr/local/Cellar as @PapaStanley points out.
    – Steve
    Aug 18, 2015 at 1:06
  • @Steve why is it then that when i do ls -ld /usr/local/bin it looks like a regular directory?
    – barlop
    Aug 10, 2019 at 15:09
  • @barlop Because not /usr/local/bin is a symlink, the files inside that directory placed there by Brew are symlinks.
    – Mecki
    Jan 7 at 1:33
4

To find your base installation directory for Homebrew, use one of the following commands:

brew --prefix
brew --cellar

The latter specifically returns the path of your Cellar folder.

4

Inspired by @RubenLaguna, I came up with this to get the full path to the installed version of the default formula.

As shown in previous answers, to get the install path for a formula:

brew --prefix nmap

Returns a symlink to the install path:

/usr/local/opt/nmap

To expand the full path:

readlink -f $(brew --prefix nmap)
/usr/local/Cellar/nmap/7.92
3

I couldn't find any direct CLI option in brew to get the full path to the currently installed version of a formula but this would work as long as you are using bash:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
1
  • This is not entirely correct if you have more than one version installed in the Cellar.
    – shadowbq
    Feb 8, 2020 at 1:37
1

hping requires root privileges to run.

You probably need to add /usr/local/sbin to your PATH.

When I ran brew doctor:

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

I recommend adding the following line to your ~/.bash_profile (or the equivalent configuration file if you are using a different shell):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"
0

I installed some packages via brew. But I can not find where they are.

It seems that homebrew requires one to be explicit with things. Fortunately, a bit of escaping using brew --prefix can make this a no-brainer, for those who need to find the path for the pkg-config utility, e.g.

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

(Except this isn't going to work anyway, because it seems hping doesn't come with hping.pc .. although, in the case where package maintainers do put .pc files, this trick can be useful.)

0

If someone looking for real path of package:

In my case brew --cellar opencv3 gives /usr/local/Cellar/opencv

But find /usr/local/Cellar/ -type d -name "*opencv*" -maxdepth 1 gives

/usr/local/Cellar//opencv3(which is /usr/local/Cellar/opencv3 actually).

Headers:

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

Libs:

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

0

For anyone that lands here after googling, and/or for anyone who wants a list of packages that are installed as keg only, you can get this info from the brew JSON output.

List all installed packages:

brew info --json --installed

List keg only packages (jq tool required):

brew info --json --installed | jq -r '.[] | select(.keg_only == true) | .name'

List the path for keg only packages (again, jq tool required):

brew info --json --installed | jq -r '.[] | select(.keg_only == true) | .name' | while read name; do brew --prefix $name; done 
0

The real path to the directory containing versioned directories of the formula

brew --cellar <FORMULA>

Example

% brew --cellar spdlog            
/usr/local/Cellar/spdlog

Symlink to the current version of the formula (shorter)

This is what you want most of the time.

brew --prefix <FORMULA>

Example

% brew --prefix spdlog         
/usr/local/opt/spdlog
-1
brew list opencv

Output like this:

/usr/local/Cellar/opencv/4.5.2_4/bin/opencv_annotation
/usr/local/Cellar/opencv/4.5.2_4/bin/opencv_interactive-calibration
/usr/local/Cellar/opencv/4.5.2_4/bin/opencv_model_diagnostics
...

My brew version:

brew -v
> Homebrew 3.2.1
2
  • What does this do?
    – nohillside
    Jul 7, 2021 at 5:09
  • @nohillside List all installed formulae and casks. If formula is provided, summarise the paths within its current keg. If cask is provided, list its artifacts.
    – F566
    Oct 11, 2021 at 10:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .