Files
mkdocs/docs/macos/homebrew/brew.md
2019-11-08 06:59:04 +01:00

9.3 KiB
Raw Blame History

Homebrew

:fa-link: https://docs.brew.sh

:fa-link: formulae.brew.sh

Update Homebrew et les formules:

$ brew update

Chercher les M-à-J:

$ brew outdated

# --verbose

Mettre tout à jour:

$ brew upgrade

# --cleanup		Met à jour et supprime les anciennes versions installées.

Formules:

Mettre à jour une formule:

$ brew upgrade <formula>

# --cleanup		Met à jour et supprime les anciennes versions installées.

Installer une formule:

$ brew install <formula>

$ brew install --verbose --debug <formula>

# --build-from-source		Compile la formule depuis la source même si une bottle est disponible. Les dépendances sont installées depuis les bottles.

Installer une formule dailleurs la branche:

$ brew install https://raw.github.com/user/repo/branch/formula.rb

Reinstaller une formule depuis les sources:

$ brew reinstall -s <formula>

Desinstaller une formule:

$ brew uninstall <formula>

# --force					toutes les versions de la formule seront effacées
# --ignore-dependencies		desinstallera même si des dépendances restent installées

Desinstaller les anciennes versions dune formule:

$ brew cleanup <formula>

# Supprime toutes les anciennes dans la Cellar et dans le Cache.

# --dry-run	(ou -n)	montre ce qui va être supprimer mais n'enlève rien.
# --prune=days	supprime les fichiers du Cache plus vieux que <days> jours.

Desinstaller toutes les anciennes versions:

$ brew cleanup

# (-n ou --dry-run)	voir tout ce qui sera désinstaller

Empecher la m-à-j dun package:

$ brew pin <formula>
bruno@SilverBook:/usr/local/Cellar/terminal-notifier/1.8.0$ brew pin terminal-notifier

Re-permettre la m-à-j:

$ brew unpin <formula>

Liste des formules installées:

$ brew list

# --versions	affiche la verion en plus.
# --pinned		affiche les formules pinned

Afficher des infos sur une formule installée:

$ brew info <formula>
$ brew info terminal-notifier

terminal-notifier: stable 1.8.0 (bottled), HEAD

Send macOS User Notifications from the command-line

https://github.com/julienXX/terminal-notifier

/usr/local/Cellar/terminal-notifier/1.7.1 (14 files, 2MB)

  Poured from bottle on 2016-10-19 at 07:24:46

/usr/local/Cellar/terminal-notifier/1.8.0 (5 files, 99.8KB) *

  Poured from bottle on 2017-08-12 at 20:20:48

From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/terminal-notifier.rb

==> Requirements

Build: xcode ✔

Required: macOS >= 10.8 ✔

Description d'une formule:

$ brew desc <formula>
$ brew desc httpd
httpd: Apache HTTP server

Afficher les options d'une formule:

$ brew options <formula>
$ brew options php72
 --with-argon2
	Include libargon2 password hashing support
 --with-cgi
	Enable building of the CGI executable (implies --without-fpm)
 --with-debug
	Compile with debugging symbols
	
# --compact		sur une seule ligne

Chercher une formule (avec description):

$ brew search --desc <formula>
$ brew search --desc pdf

briss: Crop PDF files

diff-pdf: Visually compare two PDF files

Activer une autre version:

$ brew switch <formula>
bruno@SilverBook:/usr/local/Cellar/terminal-notifier/1.8.0$ brew switch terminal-notifier 1.7.1

Cleaning /usr/local/Cellar/terminal-notifier/1.7.1

Cleaning /usr/local/Cellar/terminal-notifier/1.8.0

1 links created for /usr/local/Cellar/terminal-notifier/1.7.1

Configurer (arguments) une formule:

$ brew edit <formula>

Afficher la homepage de Homebrew:

$ brew home

Afficher la homepage de la formule:

$ brew home <formula>

Log:

$ brew log <formula>

« keg-only »

La formule est installée dans Cellar. Elle nest pas linkée dans /usr/local

Pour la linker:

$ brew link

Changer de version de PHP:

$ brew unlink php54 && brew link php53

Dépendances:

Voir les dépendances:

$ brew deps <formula>
$ brew deps httpd
apr
apr-util
boost
c-ares
jansson
jemalloc
libev
libevent
nghttp2
openssl
pcre

# --tree	Présentation comme arbre

Montrer les formules installées qui ne sont pas des dépendances d'autres formules installées:

$ brew leaves

Montrer les dépendances manquantes:

$ brew missing
$ brew missing <formula>

Dépendances inverses:

$ brew uses x264 --installed
ffmpeg
$ brew list -1 | while read cask; do echo -ne "\x1B[1;34m $cask \x1B[0m"; brew uses $cask --installed | awk '{printf(" %s ", $0)}'; echo ""; done
 ack
 aom  ffmpeg
 apr  apr-util  httpd  php  php@7.2
 .../...
 x264  ffmpeg

Outils:

Vérifier le système:

$ brew doctor

Prune (supprimer les liens symboliques morts):

$ brew prune

# --dry-run

Où va tout ce que télécharge Homebrew (cache):

$ brew --cache

/Users/bruno/Library/Caches/Homebrew
$ cd /Users/bruno/Library/Caches/Homebrew
total 2616544
drwxr-xr-x   92 bruno  staff       2944 17 jan 17:19 .
drwx------+ 194 bruno  staff       6208 18 jan 18:57 ..
drwxr-xr-x   11 bruno  staff        352 18 jan 18:54 Cask
-rw-r--r--    1 bruno  staff     400053 28 oct 08:20 apr-1.6.3.high_sierra.bottle.tar.gz
-rw-r--r--    1 bruno  staff     242481  3 nov 02:01 apr-util-1.6.1_1.high_sierra.bottle.tar.gz
-rw-r--r--    1 bruno  staff   88679443 19 déc 10:23 boost-1.66.0.high_sierra.bottle.tar.gz
-rw-r--r--    1 bruno  staff       3434 16 déc 20:15 brew-pip-0.4.1.tar.gz
-rw-r--r--    1 bruno  staff   12310915 21 nov 13:01 cmake-3.10.0.high_sierra.bottle.tar.gz

Affiche le chemin de Cellar:

$ brew --Cellar
/usr/local/Cellar

$ brew --Cellar httpd
/usr/local/Cellar/httpd

Sauvegarder sa configuration Homebrew:

Liste des packages, taps et casks installés:

$ brew tap Homebrew/bundle
$ brew bundle dump

Ceci crée un fichier Brewfile que l'on peut éditer.

tap 'homebrew/php'
brew 'homebrew/php/php71', args: ['with-imap']
brew 'shpotify'
cask 'spotify'

Restaurer sa configuration:

# Se positionner dans le répertoire contenant le fichier Brewfile

$ brew bundle

Services:

Liste des services gérés par brew services:

bruno@SilverBook:~$ brew services list

Name    Status  User  Plist

mariadb started bruno /Users/bruno/Library/LaunchAgents/homebrew.mxcl.mariadb.plist

php71   started bruno /Users/bruno/Library/LaunchAgents/homebrew.mxcl.php71.plist

httpd   started root  /Library/LaunchDaemons/homebrew.mxcl.httpd.plist

Lancer au démarrage:

$ brew services start mysql

Démarrer (pas au boot):

$ brew services run mysql

Arrêter le service:

$ brew services stop mysql

Redémarrer le service:

$ brew services restart mysql

Taps (third-party repositories):

:fa-link: brew tap rajoute des repositories à brew

Liste les repos tapped:

$ brew tap
caskroom/cask
homebrew/apache
homebrew/core
homebrew/dupes
homebrew/php
homebrew/services
homebrew/versions
tideways/profiler
vapor/tap

Les tap sont situés là:

bruno@silverbook:/usr/local/Homebrew/Library/Taps$ ls
caskroom	homebrew	tideways	vapor

Ajouter un repo:

$ brew tap <tapname> 

Supprimer un repo:

$ brew untap <tapname>

Commandes externes:

brew caveats:

Affiche les avertissements pour toutes les formules installées.

$ brew tap zgracem/caveats
$ brew caveats

==> libtool
In order to prevent conflicts with Apple's own libtool we have prepended a "g"
so, you have instead: glibtool and glibtoolize.
==> lua
You may also want luarocks:
  brew install luarocks
==> mariadb
A "/etc/my.cnf" from another install may interfere with a Homebrew-built
server starting up correctly.

MySQL is configured to only allow connections from localhost by default

To connect:
    mysql -uroot

To have launchd start mariadb now and restart at login:
  brew services start mariadb
Or, if you don't want/need a background service you can just run:
  mysql.server start
==> mono
To use the assemblies from other formulae you need to set:
  export MONO_GAC_PREFIX="/usr/local"

Environnement:

  • HOMEBREW_AUTO_UPDATE_SECS: If set, Homebrew will only check for autoupdates once per this seconds interval.

    Default: 300.

  • HOMEBREW_GITHUB_API_TOKEN: A personal access token for the GitHub API, used by Homebrew for features such as brew search. You can create one at https://github.com/settings/tokens. If set, GitHub will allow you a greater number of API requests. For more information, see: https://developer.github.com/v3/#rate-limiting

    Note: Homebrew doesnt require permissions for any of the scopes.

  • HOMEBREW_NO_AUTO_UPDATE: If set, Homebrew will not auto-update before running brew install, brew upgrade or brew tap.

  • HOMEBREW_VERBOSE: If set, Homebrew always assumes --verbose when running commands.

Cask: