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

518 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Homebrew
**[:fa-link: https://docs.brew.sh](https://docs.brew.sh)**
[:fa-link: formulae.brew.sh](http://braumeister.org)
### Update Homebrew et les formules:
```bash
$ brew update
```
### Chercher les M-à-J:
```bash
$ brew outdated
# --verbose
```
### Mettre tout à jour:
```bash
$ brew upgrade
# --cleanup Met à jour et supprime les anciennes versions installées.
```
### Formules:
#### Mettre à jour une formule:
```bash
$ brew upgrade <formula>
# --cleanup Met à jour et supprime les anciennes versions installées.
```
#### Installer une formule:
```bash
$ 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:
```bash
$ brew install https://raw.github.com/user/repo/branch/formula.rb
```
#### Reinstaller une formule depuis les sources:
```bash
$ brew reinstall -s <formula>
```
#### Desinstaller une formule:
```bash
$ 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:
```bash
$ 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:
```bash
$ brew cleanup
# (-n ou --dry-run) voir tout ce qui sera désinstaller
```
#### Empecher la m-à-j dun package:
```bash
$ brew pin <formula>
```
```bash
bruno@SilverBook:/usr/local/Cellar/terminal-notifier/1.8.0$ brew pin terminal-notifier
```
#### Re-permettre la m-à-j:
```bash
$ brew unpin <formula>
```
#### Liste des formules installées:
```bash
$ brew list
# --versions affiche la verion en plus.
# --pinned affiche les formules pinned
```
#### Afficher des infos sur une formule installée:
```bash
$ brew info <formula>
```
```bash
$ 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:
```bash
$ brew desc <formula>
```
```bash
$ brew desc httpd
httpd: Apache HTTP server
```
#### Afficher les options d'une formule:
```bash
$ brew options <formula>
```
```bash
$ 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):
```bash
$ brew search --desc <formula>
```
```bash
$ brew search --desc pdf
briss: Crop PDF files
diff-pdf: Visually compare two PDF files
```
#### Activer une autre version:
```bash
$ brew switch <formula>
```
```bash
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:
```bash
$ brew edit <formula>
```
#### Afficher la homepage de Homebrew:
```bash
$ brew home
```
#### Afficher la homepage de la formule:
```bash
$ brew home <formula>
```
#### Log:
```bash
$ brew log <formula>
```
#### « keg-only »
La formule est installée dans Cellar. Elle nest pas linkée dans /usr/local
<u>Pour la linker:</u>
```bash
$ brew link
```
#### Changer de version de PHP:
```bash
$ brew unlink php54 && brew link php53
```
####
### Dépendances:
#### Voir les dépendances:
```bash
$ brew deps <formula>
```
```bash
$ 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:
```bash
$ brew leaves
```
#### Montrer les dépendances manquantes:
```bash
$ brew missing
$ brew missing <formula>
```
#### Dépendances inverses:
```bash
$ brew uses x264 --installed
ffmpeg
```
```bash
$ 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:
```bash
$ brew doctor
```
#### Prune (supprimer les liens symboliques morts):
```bash
$ brew prune
# --dry-run
```
#### Où va tout ce que télécharge Homebrew (cache):
```bash
$ brew --cache
/Users/bruno/Library/Caches/Homebrew
```
```bash
$ 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:
```bash
$ brew --Cellar
/usr/local/Cellar
$ brew --Cellar httpd
/usr/local/Cellar/httpd
```
#### Sauvegarder sa configuration Homebrew:
Liste des packages, taps et casks installés:
```bash
$ brew tap Homebrew/bundle
$ brew bundle dump
```
Ceci crée un fichier <u>Brewfile</u> que l'on peut éditer.
```bash
tap 'homebrew/php'
brew 'homebrew/php/php71', args: ['with-imap']
brew 'shpotify'
cask 'spotify'
```
#### Restaurer sa configuration:
```bash
# Se positionner dans le répertoire contenant le fichier Brewfile
$ brew bundle
```
### Services:
#### Liste des services gérés par brew services:
```bash
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:
```bash
$ brew services start mysql
```
#### Démarrer (pas au boot):
```bash
$ brew services run mysql
```
#### Arrêter le service:
```bash
$ brew services stop mysql
```
#### Redémarrer le service:
```bash
$ brew services restart mysql
```
### Taps (third-party repositories):
[:fa-link: brew tap](https://docs.brew.sh/Taps.html) rajoute des repositories à **brew**
#### Liste les repos tapped:
```bash
$ brew tap
caskroom/cask
homebrew/apache
homebrew/core
homebrew/dupes
homebrew/php
homebrew/services
homebrew/versions
tideways/profiler
vapor/tap
```
<u>Les tap sont situés là:</u>
```bash
bruno@silverbook:/usr/local/Homebrew/Library/Taps$ ls
caskroom homebrew tideways vapor
```
#### Ajouter un repo:
```bash
$ brew tap <tapname>
```
#### Supprimer un repo:
```bash
$ brew untap <tapname>
```
### Commandes externes:
#### brew caveats:
Affiche les avertissements pour toutes les formules installées.
```bash
$ 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:
### [:fa-link: Homebrew-Cask](brew-cask.md)