¿Dónde puedo encontrar la ruta del paquete instalado a través de brew


142

Instalé algunos paquetes a través de brew. Pero no puedo encontrar dónde están.

Puedo no tener acceso escribiendo hpingen el terminal

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

Mi hping está instalado en/usr/local/Cellar/hping/3.20051105/sbin/hping
Mateusz Szlosek

Tuve el mismo problema con daemonize, esta respuesta me ayudó a entender que Daemonize está instalado en /usr/local/sbinque no estaba en la RUTA
jakub.g

Respuestas:


179

Use lo siguiente para mostrar la ruta de instalación de un paquete:

brew info hping

Salida de ejemplo:

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

99
¿Es posible obtener solo el camino? En mi caso, quiero usar clang de llvm y después de "brew install llvm" clang sigue siendo de Apple, pero uno de los binarios de llvm es lo que necesito.
Okutane

1
Por cierto, también brew doctorpodría ayudarlo a comprender los problemas.
jakub.g

3
@okutane Tendrías que armar el camino tú mismo. Como un ejemplo crudo, usted podría hacerecho "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
nburr

Dependiendo de sus necesidades específicas, brew --prefix hping(de la respuesta de @ capripot) puede hacer el truco.
Waldyrious

24

/ usr / local / Cellar es la ubicación predeterminada en OS X. Verá subdirectorios allí para todas sus fórmulas instaladas ...


20

Para averiguar dónde está instalada su fórmula, haga brew --prefix hping

También puede volver a vincular su hpingbinario haciendobrew unlink hping && brew link hping

Además, quizás tu $PATHno esté bien definido. ¿La lista dada por echo $PATHcontiene el resultado dado por echo $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'? Este camino debe estar hacia el comienzo de la lista para tener prioridad sobre los binarios del sistema, seguramente antes /usr/bin.

Para hacerlo, puede agregar esto al final de su ~/.zshrco ~/.bashrc:

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

Como resultado, después de abrir una nueva terminal o hacerlo source ~/.zshrc, podrá repetir su ruta correcta como:

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

1
Gracias, brew --prefix <command>fue exactamente lo que necesitaba.
Waldyrious

6

Normalmente, homebrewinstala paquetes en /usr/local/bin. Por lo tanto, debe verificar que su RUTA contenga ese directorio, así:

echo $PATH

Además, intenta correr

brew doctor

para asegurarse de que su configuración sea correcta. Si /usr/local/binno está en su RUTA, debe editar ~/.profiley agregar una línea como esta:

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

Luego, inicie una nueva Terminal (para volver a leer su perfil de inicio de sesión) e intente nuevamente.

Si todo eso falla, debe instalarse en otro lugar. Puede buscarlo ejecutando un comando como este:

sudo find / -name hping -type f

2
Estos son enlaces simbólicos. Los paquetes actuales están /usr/local/Cellarcomo @PapaStanley señala.
Steve

@ Steve, ¿por qué entonces cuando lo hago ls -ld /usr/local/binparece un directorio normal?
barlop

5

Prueba este comando

brew --cellar <FORMULA>

p.ej

brew --cellar hping

Alternativamente, brew --prefix hpingpuede ser útil también.
Waldyrious

1

hping requiere privilegios de root para ejecutarse.

Probablemente necesite agregar / usr / local / sbin a su RUTA.

Cuando corrí 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

Para encontrar su directorio de instalación base para Homebrew, use uno de los siguientes comandos:

brew --prefix
brew --cellar

Este último devuelve específicamente la ruta de su Cellarcarpeta.


0

Recomiendo agregar la siguiente línea a su ~/.bash_profile(o el archivo de configuración equivalente si está utilizando un shell diferente):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"

0

Instalé algunos paquetes a través de brew. Pero no puedo encontrar dónde están.

Parece que homebrew requiere que uno sea explícito con las cosas. Afortunadamente, un poco de escape brew --prefixpuede hacer que esto sea obvio, para aquellos que necesitan encontrar la ruta para la utilidad pkg-config, por ejemplo

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

(Excepto que esto no va a funcionar de todos modos, porque parece que hping no viene con hping.pc .. aunque, en el caso de que los mantenedores de paquetes coloquen archivos .pc, este truco puede ser útil).


0

Si alguien busca la ruta real del paquete:

En mi caso brew --cellar opencv3da/usr/local/Cellar/opencv

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

/usr/local/Cellar//opencv3(que es en /usr/local/Cellar/opencv3realidad)

Encabezados:

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

Libs:

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


0

Podría encontrar cualquier opción de CLI directa brewpara obtener la ruta completa a la versión instalada actualmente de una fórmula, pero esto funcionaría siempre que esté usando bash:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.