Dove posso trovare il percorso del pacchetto installato tramite brew


142

Ho installato alcuni pacchetti tramite brew. Ma non riesco a trovare dove sono.

Non riesco ad accedere digitando hpingsul terminale

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

Il mio hping è installato in/usr/local/Cellar/hping/3.20051105/sbin/hping
Mateusz Szlosek il

Ho avuto lo stesso problema con daemonize, questa risposta mi ha aiutato a capire che daemonize è installato in /usr/local/sbinquello che non era nel PERCORSO
jakub.g

Risposte:


179

Utilizzare quanto segue per mostrare il percorso di installazione di un pacchetto:

brew info hping

Esempio di 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

9
È possibile ottenere solo il percorso? Nel mio caso voglio usare clang di llvm e dopo "brew install llvm" il clang è ancora di apple, ma uno dei binari di llvm è ciò di cui ho bisogno.
Okutane,

1
BTW brew doctorpotrebbe aiutarti a capire anche i problemi.
jakub.g,

3
@okutane Dovresti assemblare il percorso da solo. A titolo di esempio, potresti farloecho "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
nburr

A seconda delle tue esigenze specifiche, brew --prefix hping(dalla risposta di @ capripot) può fare il trucco.
waldyrious

24

/ usr / local / Cellar è la posizione predefinita su OS X. Vedrai le sottodirectory lì per tutte le tue formule installate ...


20

Per capire dove è installata la tua formula, fallo brew --prefix hping

Puoi anche ricollegare il tuo hpingbinario facendobrew unlink hping && brew link hping

Inoltre forse il tuo $PATHnon è ben definito. L'elenco fornito da echo $PATHcontiene il risultato fornito da echo $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'? Questo percorso dovrebbe essere verso l'inizio dell'elenco per essere prioritario rispetto ai binari di sistema, sicuramente prima /usr/bin.

Per fare ciò, puoi aggiungerlo alla fine del tuo ~/.zshrco ~/.bashrc:

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

Di conseguenza, dopo aver aperto un nuovo terminale o averlo fatto source ~/.zshrc, sarai in grado di ripetere il tuo percorso corretto come:

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

1
Grazie, brew --prefix <command>era esattamente quello di cui avevo bisogno.
waldyrious

6

Normalmente, homebrewinstalla i pacchetti in /usr/local/bin. Quindi è necessario verificare che il PATH contenga quella directory, in questo modo:

echo $PATH

Prova anche a correre

brew doctor

per accertarti che la tua configurazione sia corretta. Se /usr/local/binnon si trova nel PERCORSO, è necessario modificare ~/.profilee aggiungere una riga come questa:

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

Quindi avvia un nuovo Terminale (per rileggere il tuo profilo di accesso) e riprova.

Se tutto ciò non riesce, deve essere installato altrove. Puoi cercarlo eseguendo un comando come questo:

sudo find / -name hping -type f

2
Questi sono collegamenti simbolici. I pacchetti attuali sono presenti /usr/local/Cellarcome sottolinea @PapaStanley.
Steve,

@Steve perché è allora che quando lo faccio ls -ld /usr/local/binsembra una normale directory?
barlop

5

Prova questo comando

brew --cellar <FORMULA>

per esempio

brew --cellar hping

In alternativa, brew --prefix hpingpuò anche essere utile.
waldyrious

1

hping richiede i privilegi di root per essere eseguito.

Probabilmente dovrai aggiungere / usr / local / sbin al tuo PERCORSO.

Quando ho eseguito 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

Per trovare la directory di installazione di base per Homebrew, utilizzare uno dei seguenti comandi:

brew --prefix
brew --cellar

Quest'ultimo restituisce specificamente il percorso della Cellarcartella.


0

Ti consiglio di aggiungere la seguente riga al tuo ~/.bash_profile(o al file di configurazione equivalente se stai usando una shell diversa):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

0

Ho installato alcuni pacchetti tramite brew. Ma non riesco a trovare dove sono.

Sembra che l'homebrew richieda di essere esplicito con le cose. Fortunatamente, l'uso di un po 'di escape brew --prefixpuò renderlo un gioco da ragazzi, per coloro che hanno bisogno di trovare il percorso per l'utilità pkg-config, ad es.

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

(Tranne che non funzionerà comunque, perché sembra che hping non venga fornito con hping.pc .. anche se, nel caso in cui i manutentori del pacchetto inseriscano file .pc, questo trucco può essere utile.)


0

Se qualcuno è alla ricerca di un vero percorso del pacchetto:

Nel mio caso brew --cellar opencv3/usr/local/Cellar/opencv

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

/usr/local/Cellar//opencv3(che in /usr/local/Cellar/opencv3realtà è ).

Foraggio:

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

libs:

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


0

Potrei trovare qualsiasi opzione CLI diretta brewper ottenere il percorso completo della versione attualmente installata di una formula, ma funzionerebbe finché stai usando bash:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.