Где я могу найти путь к установленному пакету через 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, этот ответ помог мне понять, что демон установлен в /usr/local/sbinтом, чего не было в PATH
jakub.g

Ответы:


179

Используйте следующую команду, чтобы показать путь установки пакета:

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
Можно ли получить только путь? В моем случае я хочу использовать clang из llvm, и после «brew install llvm» все еще остается apple, но мне нужен один из двоичных файлов llvm.
октября

1
Кстати, 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) можно добиться цели.
Валдириус

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

1
Спасибо, brew --prefix <command>было именно то, что мне было нужно.
Валдириус

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.
Стив

@ Стив, почему тогда, когда я делаю, ls -ld /usr/local/binэто выглядит как обычный каталог?
Бароп

5

Попробуйте эту команду

brew --cellar <FORMULA>

например

brew --cellar hping

Кроме того, brew --prefix hpingможет быть полезным.
Валдириус

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(или эквивалентный файл конфигурации, если вы используете другую оболочку):

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 не поставляется с hping.pc ... хотя, в случае, когда сопровождающие пакета помещают файлы .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/

Libs:

/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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.