Gdzie mogę znaleźć ścieżkę zainstalowanego pakietu przez brew


142

Zainstalowałem kilka pakietów przez brew. Ale nie mogę znaleźć, gdzie oni są.

I może nie uzyskać dostęp wpisując hpingna terminalu

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

Mój hping jest zainstalowany w/usr/local/Cellar/hping/3.20051105/sbin/hping
Mateusz Szlosek

Miałem ten sam problem daemonize, ta odpowiedź pomogła mi zrozumieć, że zainstalowano demonizację /usr/local/sbin, której nie ma w ŚCIEŻCE
jakub.g

Odpowiedzi:


178

Wykonaj następujące czynności, aby wyświetlić ścieżkę instalacji pakietu:

brew info hping

Przykładowe dane wyjściowe:

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
Czy można uzyskać tylko ścieżkę? W moim przypadku chcę użyć clang z llvm, a po "brew install llvm" clang jest nadal jabłkiem, ale potrzebuję jednego z binariów llvm.
okutane

1
BTW brew doctormoże również pomóc w zrozumieniu problemów.
jakub.g

3
@okutane Musisz sam skompletować ścieżkę. Jako echo "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
prosty

W zależności od konkretnych potrzeb brew --prefix hping(od odpowiedzi @ capripot) może załatwić sprawę.
waldyrious

24

/ usr / local / Cellar to domyślna lokalizacja w systemie OS X. Zobaczysz tam podkatalogi dla wszystkich zainstalowanych formuł ...


20

Aby dowiedzieć się, gdzie jest zainstalowana formuła, wykonaj: brew --prefix hping

Możesz także ponownie połączyć swój hpingplik binarnybrew unlink hping && brew link hping

Być może twój $PATHnie jest dobrze zdefiniowany. Czy lista podana przez echo $PATHzawiera wynik podany przez echo $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'? Ścieżka ta powinna być na początku listy, aby mieć pierwszeństwo przed binariami systemowymi, na pewno wcześniej /usr/bin.

Aby to zrobić, możesz dodać to na końcu swojego ~/.zshrclub ~/.bashrc:

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

W rezultacie, po otwarciu nowego terminalu lub zrobieniu tego source ~/.zshrc, będziesz mógł powtórzyć swoją poprawną ścieżkę jako:

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

Dziękuję, brew --prefix <command>było dokładnie to, czego potrzebowałem.
waldyrious

6

Zwykle homebrewinstaluje pakiety w /usr/local/bin. Musisz więc sprawdzić, czy ŚCIEŻKA zawiera ten katalog, jak poniżej:

echo $PATH

Spróbuj także uruchomić

brew doctor

aby upewnić się, że konfiguracja jest prawidłowa. Jeśli /usr/local/binnie ma jej ŚCIEŻKA, musisz edytować ~/.profilei dodać taki wiersz:

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

Następnie uruchom nowy Terminal (aby ponownie odczytać swój profil logowania) i spróbuj ponownie.

Jeśli to wszystko zawiedzie, musi być zainstalowane gdzie indziej. Możesz go wyszukać, uruchamiając takie polecenie:

sudo find / -name hping -type f

2
To są dowiązania symboliczne. Rzeczywiste pakiety są, /usr/local/Cellarjak wskazuje @PapaStanley.
Steve,

@ Steve dlaczego tak się dzieje, że kiedy ls -ld /usr/local/binto robię , wygląda jak zwykły katalog?
barlop

5

Wypróbuj to polecenie

brew --cellar <FORMULA>

na przykład

brew --cellar hping

Alternatywnie brew --prefix hpingmoże być również pomocny.
waldyrious

1

hping wymaga uprawnień roota do uruchomienia.

Prawdopodobnie musisz dodać / usr / local / sbin do PATH.

Kiedy prowadziłem browarnika:

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

Aby znaleźć podstawowy katalog instalacyjny dla Homebrew, użyj jednego z następujących poleceń:

brew --prefix
brew --cellar

Ten ostatni zwraca ścieżkę do twojego Cellarfolderu.


0

Polecam dodanie następującego wiersza do twojego ~/.bash_profile(lub równoważnego pliku konfiguracyjnego, jeśli używasz innej powłoki):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

0

Zainstalowałem kilka pakietów przez brew. Ale nie mogę znaleźć, gdzie oni są.

Wygląda na to, że homebrew wymaga wyraźnego wyrażenia się na różne tematy. Na szczęście trochę ucieczki przed używaniem brew --prefixmoże sprawić, że nie będzie to łatwe, dla tych, którzy muszą znaleźć ścieżkę do narzędzia pkg-config, np.

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

(Tyle że to i tak nie zadziała, ponieważ wydaje się, że hping nie pochodzi z hping.pc .. chociaż w przypadku, gdy opiekunowie pakietów umieszczają pliki .pc, ta sztuczka może być przydatna.)


0

Jeśli ktoś szuka prawdziwej ścieżki pakietu:

W moim przypadku brew --cellar opencv3daje/usr/local/Cellar/opencv

Ale find /usr/local/Cellar/ -type d -name "*opencv*" -maxdepth 1daje

/usr/local/Cellar//opencv3(co jest /usr/local/Cellar/opencv3faktycznie).

Nagłówki:

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

Libs:

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


0

Mogę znaleźć dowolną bezpośrednią opcję CLI, brewaby uzyskać pełną ścieżkę do obecnie zainstalowanej wersji formuły, ale działałoby to tak długo, jak używasz bash:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.