Homebrew - Gestionnaire de paquets
Il y a quelques années, je vous parlais de Fink, un gestionnaire de "paquets" qui permettait d'installer les logiciels Linux sur Mac.
Nous l'avions fait à plusieurs reprises, pour installer des librairies nécessaires à certains émulateurs ou installer des jeux à la base prévus pour Linux.
Depuis d'autres gestionnaires sont apparus, désormais il faut aussi compter sur MacPorts et Homebrew.
Nous allons aujourd'hui parler de ce dernier, puisqu'il est très fréquement utilisé pour proposer de nouveaux logiciels en ligne de commande.
En effet, dernièrement, Google a publié une nouvelle librairie de compression JPG, et l'a fait pour macOS sur cette plateforme.
Homebrew se présente lui même comme le gestionnaire de paquets qu'il manque à macOS.
Sa notoriété vient principalement parce qu'il fonctionne de concert avec les outils git et GitHub, plateforme de prédilection des développeurs pour publier leurs logiciels, scripts, ...
Homebrew permettra, comme fink, d'installer des paquets issu du monde linux, que ce soit des librairies ou des logiciels.
Il fonctionne, encore une fois, comme fink, avec des commandes proches des commandes apt-get ou aptitude issues des distributions Debian.
La grande différence est que les paquets s'appellent des "Formula" ou formules en français.
1/ Installation
L'installation de Homebrew est simple, et la méthode est directement indiquée dès la page d'accueil du site.
Sachez que vous devez disposer d'un compte administrateur sur le Mac pour réaliser l'installation ainsi que de XCode, téléchargeable gratuitement sur le Mac App Store.
Ouvrez un terminal et tapez (ou plutôt copiez/collez) :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
L'installation vous indique ce qu'elle va faire et ce qu'elle va installer.
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following existing directories will be made group writable:
/usr/local/bin
/usr/local/etc
==> The following existing directories will have their owner set to sky:
/usr/local/bin
/usr/local/etc
==> The following existing directories will have their group set to admin:
/usr/local/bin
/usr/local/etc
==> The following new directories will be created:
/usr/local/Cellar
/usr/local/Homebrew
/usr/local/Frameworks
/usr/local/opt
/usr/local/sbin
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var
Press RETURN to continue or any other key to abort
Vous pouvez toujours refuser l'installation à ce moment, ou continuer en appuyant sur Enter.
L'installation se termine et vous indique comment commencer.
Vous obtiendrez l'aide en tapant :
brew help
2/ Premières commandes
La première chose à savoir est la liste des paquets disponibles.
Pour cela tapez :
brew search
Attention la liste est longue.
Vous pouvez aussi ajouter un argument permettant de compléter la recherche.
brew search MaRecherche
Toujours fan d'émulation, je m'intèresse à Mednafen, qui était autrefois compliqué à installer mais désormais très simple.
Si Mednafen ne vous intéresse pas, essayez avec d'autres paquets.
Je commence par avoir un peu plus d'information sur le paquet :
brew info mednafen
avec pour résultat :
mednafen: stable 0.9.43
Multi-system emulator
http://mednafen.fobby.net/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mednafen.rb
==> Dependencies
Build: pkg-config ✘
Required: sdl ✘, libsndfile ✘, gettext ✘
==> Requirements
Required: macOS >= 10.12 ✘
Cela nous indique ce que c'est, s'il est déjà installé, ou se trouve la formule, les dépendences et enfin la version de macOS minimale nécessaire.
Comme vous pouvez le voir, il me manque pas mal de choses. Pour les dépendences ce n'est pas grave, puisqu'elles s'installeront toutes seules en même temps que le logiciel.
Par contre, pour la version de macOS requise, je n'ai pas le choix, il faut que je mette à jour ce Mac.
Retentons l'expérience sur un Mac déjà mis à jour en 10.12.
mednafen: stable 0.9.43 (bottled)
Multi-system emulator
http://mednafen.fobby.net/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/mednafen.rb
==> Dependencies
Build: pkg-config ✘
Required: sdl ✔, libsndfile ✘, gettext ✘
==> Requirements
Required: macOS >= 10.12 ✔
On peut voir que la librairie SDL est déjà installée.
Tentons l'installation :
brew install mednafen
J'obtiens une erreur
Error: You must `brew link sdl` before mednafen can be installed
qui devrait rapidement être réglée, puisque la solution est dans l'erreur :
brew link sdl
avec pour résultat :
Linking /usr/local/Cellar/sdl/1.2.15... 33 symlinks created
Je relance l'installation :
brew install mednafen
Le paquet est téléchargé depuis Internet et installé sur votre mac.
Warning: You are using a pre-release version of Xcode.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
==> Installing dependencies for mednafen: flac, libogg, libvorbis, libsndfile, gettext
==> Installing mednafen dependency: flac
==> Downloading https://homebrew.bintray.com/bottles/flac-1.3.2.sierra.bottle.tar.gz
######################################################################## 100,0%
==> Pouring flac-1.3.2.sierra.bottle.tar.gz
🺠/usr/local/Cellar/flac/1.3.2: 53 files, 1.8M
==> Installing mednafen dependency: libogg
==> Downloading https://homebrew.bintray.com/bottles/libogg-1.3.2.sierra.bottle.tar.gz
######################################################################## 100,0%
==> Pouring libogg-1.3.2.sierra.bottle.tar.gz
🺠/usr/local/Cellar/libogg/1.3.2: 96 files, 457.4K
==> Installing mednafen dependency: libvorbis
==> Downloading https://homebrew.bintray.com/bottles/libvorbis-1.3.5.sierra.bottle.tar.gz
######################################################################## 100,0%
==> Pouring libvorbis-1.3.5.sierra.bottle.tar.gz
🺠/usr/local/Cellar/libvorbis/1.3.5: 158 files, 2.3M
==> Installing mednafen dependency: libsndfile
==> Downloading https://homebrew.bintray.com/bottles/libsndfile-1.0.27.sierra.bottle.tar.gz
######################################################################## 100,0%
==> Pouring libsndfile-1.0.27.sierra.bottle.tar.gz
🺠/usr/local/Cellar/libsndfile/1.0.27: 49 files, 1.9M
==> Installing mednafen dependency: gettext
==> Downloading https://homebrew.bintray.com/bottles/gettext-0.19.8.1.sierra.bottle.tar.gz
######################################################################## 100,0%
==> Pouring gettext-0.19.8.1.sierra.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local.
macOS provides the BSD gettext library and some software gets confused if both are in the library path.
Generally there are no consequences of this for you. If you build your
own software and it requires this formula, you'll need to add to your
build variables:
LDFLAGS: -L/usr/local/opt/gettext/lib
CPPFLAGS: -I/usr/local/opt/gettext/include
==> Summary
🺠/usr/local/Cellar/gettext/0.19.8.1: 1,934 files, 16.9M
==> Installing mednafen
==> Downloading https://homebrew.bintray.com/bottles/mednafen-0.9.43.sierra.bottle.tar.gz
######################################################################## 100,0%
==> Pouring mednafen-0.9.43.sierra.bottle.tar.gz
🺠/usr/local/Cellar/mednafen/0.9.43: 12 files, 22.4M
Vous pouvez désormais le lancer depuis votre terminal :
mednafen
Bien sûr sans paramètre, le logiciel ne sait pas ce qu'il doit faire :
Starting Mednafen 0.9.43
Build information:
Compiled with gcc 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)
Compiled against zlib 1.2.8, running with zlib 1.2.8(flags=0x000000a9)
Compiled against libiconv 11.1, running with libiconv 11.1
Compiled against SDL 1.2.15, running with SDL 1.2.15
Running with libsndfile-1.0.27
Base directory: /Users/sky/.mednafen
Emulation modules: nes snes gb gba pce lynx md pcfx ngp psx ss ssfplay vb wswan sms gg snes_faust pce_fast demo cdplay
Loading settings from "/Users/sky/.mednafen/mednafen-09x.cfg"...
Loaded 2590 valid settings and 5 unknown settings.
No command-line arguments specified.
Usage: mednafen [OPTION]... [FILE]
Please refer to the documentation for option parameters and usage.
Mais on peut voir que la version installée est bien la dernière, avec Homebrew les mises à jour sont souvent à l'heure.
En indiquant le chemin (à changer pour votre chemin) d'une ROMs, l'application se lance.
mednafen CheminVersMesROMs/Super Mario Kart.smc
Avec comme résultat :
Enfin vous pouvez désinstaller un programme :
brew uninstall mednafen
3/ Les commandes à connaitre
Il y a deux commandes de base à connaitre pour permettre le bon fonctionnement de votre Homebrew.
La première permet de mettre à jour la liste des paquets disponibles, ainsi que les dernières versions disponibles :
brew update
La seconde permet de mettre à jour un paquet, par exemple, ici avec mednafen :
brew upgrade mednafen
ou tous les paquets installés sur votre Mac :
brew upgrade
Cela peut être un bonne idée de lancer régulièrement les commandes de mise à jour pour être sur d'avoir toujours les dernières versions de Homebrew et des logiciels installés.
- Homebrew - Gestionnaire de paquets
- Guetzli, une librairie d'encodage JPG optimisée
- Installer les commandes ecm et unecm sur macOS
- Homebrew : Recherche et commandes avancées
- Astuce macOS : Gérer les images disques au format bin/cue
- Plein phare sur une application Brew : youtube-dl
- Plein phare sur une application Brew : smartmontools
- Plein phare sur une application Brew : minidlna
- Brew et les paquets installés
- Plein phare sur une application Brew : unrar
- Plein phare sur une application Brew : glances
- Brew et les paquets à mettre à jour
- Plein phare sur une application Brew : watch
- Homebrew et la gestion de l'espace disque
- Plein phare sur une application Brew : ncdu
- Plein phare sur une application Brew : TestDisk
- Convertir une série d'images en GIF animé sur macOS
- Plein phare sur une application Brew : p7zip
- Plein phare sur une application Brew : Optimiser des PNGs avec ImageOptim
- Plein phare sur une application Brew : pstree
- Plein phare sur une application Brew : lsusb
- Plein phare sur une application Brew : rename
- Plein phare sur une application Homebrew : nmap
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur.
- Gérer les mises à jours des applications Homebrew sur 10.14 et inférieur, partie 2.
- Plein phare sur une application Brew : yt-dlp
- Homebrew : Corriger un problème de dépendances trop récentes