Existe-t-il un moyen de vérifier quels indicateurs ont été donnés lorsqu'un package a été installé avec homebrew?
Par exemple, la formule emacs a un nombre absurde de drapeaux. Si j'ai fait
brew install emacs --with-glib --with-librsvg
Je voudrais déterminer plus tard que pour l'installation homebrew d'emacs, j'ai donné les drapeaux --with-glib --with-librsvg
et pas d'autres drapeaux.
Cas de test avec package lua:
Avant d'installer le package, info affiche toutes les options.
$ brew info lua
lua: stable 5.2.3 (bottled)
http://www.lua.org/
Not installed
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/lua.rb
==> Options
--universal
Build a universal binary
--with-completion
Enables advanced readline support
--without-sigaction
Revert to ANSI signal instead of improved POSIX sigaction
J'installe le paquet avec juste le --with-completion
drapeau.
$ brew install lua --with-completion
==> Downloading http://www.lua.org/ftp/lua-5.2.3.tar.gz
######################################################################## 100.0%
==> Downloading http://luajit.org/patches/lua-5.2.0-advanced_readline.patch
######################################################################## 100.0%
==> Downloading http://lua-users.org/files/wiki_insecure/power_patches/5.2/lua-5
######################################################################## 100.0%
==> Patching
patching file Makefile
patching file src/Makefile
patching file src/lua.c
Hunk #1 succeeded at 231 (offset -5 lines).
Hunk #2 succeeded at 559 (offset -4 lines).
Hunk #3 succeeded at 575 (offset -4 lines).
patching file src/lua.c
==> make macosx INSTALL_TOP=/usr/local/Cellar/lua/5.2.3_1 INSTALL_MAN=/usr/local
==> make install INSTALL_TOP=/usr/local/Cellar/lua/5.2.3_1 INSTALL_MAN=/usr/loca
🍺 /usr/local/Cellar/lua/5.2.3_1: 13 files, 312K, built in 6 seconds
Après l'installation du package, info affiche toutes les options, y compris celles que je n'ai pas utilisées. La commande reconnaît que le package a été construit à partir de la source et non versé à partir d'une bouteille.
$ brew info lua
lua: stable 5.2.3 (bottled)
http://www.lua.org/
/usr/local/Cellar/lua/5.2.3_1 (13 files, 312K) *
Built from source with: --with-completion
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/lua.rb
==> Options
--universal
Build a universal binary
--with-completion
Enables advanced readline support
--without-sigaction
Revert to ANSI signal instead of improved POSIX sigaction
Il y a un fichier
/usr/local/Cellar
sous chaque paquet qui est appeléINSTALL_RECEIPT.json
, par exemple pourgawk
:qui définit comment le package a été installé. Je pense que la bonne façon d'y accéder est avec
par exemple
Cela vomit beaucoup de choses, mais si vous l'envoyez via
jq
(Processeur JSON - disponible viahomebrew
), vous pouvez sélectionner les options que vous avez utilisées pour installer le package comme ceci (vérifier legnuplot
package):ce qui me dit que j'ai installé en
gnuplot
utilisant:la source
for package in $(brew list); do echo -n "brew install $package "; for item in $(brew info --json=v1 $package | jq -r '.[0].installed[0].used_options | .[]'); do echo -n "$item "; done; echo ; done 2>/dev/null
peut être utilisé pour afficher une liste de commandes d'installation de brew que vous pouvez utiliser ailleurs.Un autre outil utile est
homebrew-bundler
. Une fois installé viabrew tap Homebrew/bundle
, vous pouvez l'exécuterbrew bundle dump
et il créera un fichier Brewfile qui répertorie tous les packages que vous avez installés ainsi que les arguments supplémentaires utilisés pour les installer.la source
Brewfile
et le vérifier dans votre dépôt dotfiles, il est facile de "configurer" de nouvelles machines. Cependant, il répertorie tous les packages, y compris toutes les dépendances. Je dois actuellement analyser la liste à partir d'unebrew leaves
liste qui répertorie uniquement les packages installés de niveau supérieur.Voici une petite fonction bash qui retourne les drapeaux indépendamment du fait que le paquet ait été construit à partir de la source ou non.
Pour utiliser cette fonction bash dans un script bash, écrivez
où
PKGNAME
est le nom du package homebrew souhaité. Vous pouvez également parcourir tous les packages homebrew installés dans un script bash comme.
la source
jq
processeur JSON en ligne de commande