Où puis-je trouver le chemin du paquet installé via brew

142

J'ai installé des paquets via Brew. Mais je ne peux pas trouver où ils sont.

Je ne peux pas avoir accès en tapant hpingsur le terminal

% brew install hping
(git)-[master] 
Warning: hping-3.20051105 already installed
poc
la source
Mon hping est installé dans/usr/local/Cellar/hping/3.20051105/sbin/hping
Mateusz Szlosek
J'ai eu le même problème avec daemonize, cette réponse m'a aidé à comprendre que la démonisation est installée dans /usr/local/sbinqui n'était pas dans le PATH
jakub.g

Réponses:

179

Utilisez ce qui suit pour afficher le chemin d'installation d'un paquet:

brew info hping

Exemple de sortie:

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
nyi
la source
9
Est-il possible d'obtenir uniquement le chemin? Dans mon cas, je veux utiliser clang de llvm et après "brasser installer llvm", clang est toujours celui de apple, mais un des binaires de llvm est ce dont j'ai besoin.
okutane
1
BTW brew doctorpeut aussi vous aider à comprendre les problèmes.
jakub.g
3
@okutane Vous aurez besoin d'assembler le chemin vous-même. Comme exemple brut, vous pourriez faireecho "$(brew --cellar llvm)/$(brew list --versions llvm | tr ' ' '\n' | tail -1)/bin/clang"
nburr
En fonction de vos besoins spécifiques brew --prefix hping(réponse de @ capripot) peut faire l'affaire.
waldyrious
24

/ usr / local / Cellar est l'emplacement par défaut sur OS X. Vous y verrez des sous-répertoires pour toutes vos formules installées ...

Papa Stanley
la source
20

Pour savoir où votre formule est installée, faites brew --prefix hping

Vous pouvez aussi relier votre hpingbinaire en faisantbrew unlink hping && brew link hping

Aussi peut-être que votre $PATHn'est pas bien défini. La liste donnée par echo $PATHcontient-elle le résultat donné par echo $(brew --prefix)'/bin:'$(brew --prefix)'/sbin'? Ce chemin doit être au début de la liste pour être prioritaire par rapport aux fichiers binaires du système, sûrement avant /usr/bin.

Pour ce faire, vous pouvez ajouter ceci à la fin de votre ~/.zshrcou ~/.bashrc:

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

En conséquence, après avoir ouvert un nouveau terminal ou en avoir terminé source ~/.zshrc, vous pourrez faire écho à votre chemin correct en tant que:

$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin
Capripot
la source
1
Merci, brew --prefix <command>était exactement ce dont j'avais besoin.
waldyrious
6

Normalement, homebrewinstalle les paquets dans /usr/local/bin. Vous devez donc vérifier que votre PATH contient ce répertoire, comme ceci:

echo $PATH

Aussi, essayez de courir

brew doctor

pour vous assurer que votre configuration est correcte. Si /usr/local/binn'est pas dans votre PATH, vous devez éditer ~/.profileet ajouter une ligne comme celle-ci:

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

Ensuite, démarrez un nouveau terminal (afin de relire votre profil de connexion) et réessayez.

Si tout cela échoue, il doit être installé ailleurs. Vous pouvez le rechercher en exécutant une commande comme celle-ci:

sudo find / -name hping -type f
Mark Setchell
la source
2
Ce sont des liens symboliques. Les paquets réels sont dans, /usr/local/Cellarcomme le souligne @PapaStanley.
Steve
@Steve pourquoi alors que quand je le fais ls -ld /usr/local/binil ressemble à un répertoire régulier?
barlop
5

Essayez cette commande

brew --cellar <FORMULA>

par exemple

brew --cellar hping
ultraon
la source
Sinon, brew --prefix hpingpeut être utile aussi.
waldyrious
1

hping nécessite des privilèges root pour fonctionner.

Vous devez probablement ajouter / usr / local / sbin à votre PATH.

Quand j'ai couru médecin d'infusion:

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
jyap
la source
1

Pour trouver votre répertoire d'installation de base pour Homebrew, utilisez l'une des commandes suivantes:

brew --prefix
brew --cellar

Ce dernier renvoie spécifiquement le chemin de votre Cellardossier.

Adam Erickson
la source
0

Je recommande d'ajouter la ligne suivante à votre ~/.bash_profile(ou au fichier de configuration équivalent si vous utilisez un shell différent):

export HOMEBREW_CASK_OPTS="--appdir=/Applications"
Shoaib Ud-Din
la source
0

J'ai installé des paquets via Brew. Mais je ne peux pas trouver où ils sont.

Il semble que l'homebrew exige qu'on soit explicite avec les choses. Heureusement, un peu de fuite en utilisant brew --prefixpeut rendre cela une évidence, pour ceux qui ont besoin de trouver le chemin pour l'utilitaire pkg-config, par exemple

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

(Sauf que cela ne va pas marcher de toute façon, parce qu'il semble que hping ne vienne pas avec hping.pc .. bien que, dans le cas où les mainteneurs de paquets mettent des fichiers .pc, cette astuce peut être utile.)

ibisum
la source
0

Si quelqu'un cherche un vrai chemin de paquet:

Dans mon cas brew --cellar opencv3donne/usr/local/Cellar/opencv

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

/usr/local/Cellar//opencv3(qui est en /usr/local/Cellar/opencv3fait).

En-têtes:

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

Libs:

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

mrgloom
la source
0

Je pouvais trouver n'importe quelle option CLI directe brewpour obtenir le chemin complet de la version d'une formule actuellement installée, mais cela fonctionnerait tant que vous utilisez bash:

echo $(brew --cellar asciidoctor)/$(brew info --json asciidoctor | jq -r '.[0].installed[0].version')
# /usr/local/Cellar/asciidoctor/1.5.8
ecerulm
la source