Homebrew, le gestionnaire de paquets oublié de Mac OS

Je suis tombé ce matin sur cet article via un tweet de @nixcraft (que je vous conseille chaudement de suivre).

Il met en lumière que la version de git présente sur El Capitan, dernière version en date du système d’exploitation des ordinateurs de la marque Apple, n’est pas à jour et permet d’exécuter du code arbitraire, ce qui n’est pas top du point de vue de la sécurité.

Il dénonce également le système de protection ajouté dans El Capitan (nommé SIP) qui empêche l’utilisateur, même avec les pouvoirs du super utilisateur (root), de modifier les fichiers systèmes, notamment le binaire git défaillant.

Cependant, ce qu’il oublie de dire, c’est qu’il y a un moyen d’avoir son binaire git à jour, même avec SIP, sans avoir à faire de manipulations compliquées et sans mettre le système en danger en désactivant SIP.

Ce moyen, c’est Homebrew, et il fait bien plus que ça.

1. Installer et utiliser Homebrew

Homebrew est un gestionnaire de paquets, comme aptitude sur Debian, et, comme son homologue, s’utilise et s’installe en ligne de commande.

Avant toute chose, il requiert la présence d’XCode pour fonctionner. Il est téléchargeable gratuitement depuis l’Apple Store.

Rien de compliqué dans l’installation, exécutez cette ligne de commande et laissez-vous guider :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Pour installer un paquet :
brew install
Pour supprimer un paquet :
brew remove
Pour mettre à jour les paquets installés :
brew upgrade
Pour connaitre les infos d’un paquet et ses dépendances :
brew info
Pour chercher un paquet dans la base de données :
brew search
Dans notre cas, un simple « brew install git » suffit à avoir git dans sa dernière version. CQFD.

2. Comment fonctionne-t-il ?

Malgré le fait qu’OSX ne soit pas un système d’exploitation Linux, le fait qu’il repose sur une base Unix lui permet de partager certains mécanismes communs avec Linux.

Le principe qui nous intéresse ici est le dossier /usr/local/. Ce dossier a pour but de surcharger les commandes, bibliothèques, sources, configurations, etc … présentes dans le dossier /usr/.

Dans notre exemple, si je place un exécutable git dans /usr/local/bin/, il sera lu à la place de son équivalent système dans /usr/bin/. Même chose pour les programmes que vous installerez via « brew install », ils seront tous placés ici.

Un problème avec Homebrew ? Le seul dossier que vous aurez à vous préoccuper sera celui-ci et aucun autre. 😉

3. Uniquement pour git ?

Bien sûr que non ! Un gros catalogue est disponible et une vaste majorité des logiciels que vous avez l’habitude de côtoyer sous Linux seront disponible dans Homebrew. Une vraie caverne l’Ali Baba 🙂

Par exemple, je m’en sers entre autres pour me faire un « MAMP » local (serveur web Apache + PHP + MySQL). Par besoin d’installer ce truc pas pratique pour un sou qu’est MAMP justement, surtout qu’OSX embarque déjà nativement un serveur Apache totalement fonctionnel.

Un petit « brew install php56 mariadb », ajouter la ligne de configuration dans le fichier /etc/apache2/httpd.conf comme demandé par Homebrew à la fin de l’installation, un petit « sudo apachectl restart » et c’est fini 😀

Homebrew peut même servir pour installer des applications graphiques comme VLC ou Chrome via une extension appelée Cask. J’avoue que je ne m’en sers pas personnellement, mais cela existe et cela fonctionne plutôt bien.

4. Rien de plus ?

Vous avez peut-être remarqué qu’à aucun moment je n’ai utilisé la commande « sudo » (hormis peut-être pour redémarrer Apache, mais cela n’a rien à voir avec Homebrew) ; c’est pour une bonne raison.

Homebrew fonctionne via votre utilisateur, À AUCUN MOMENT VOUS NE DEVREZ ÊTRE EN ROOT, sous peine de malfonctions ou de problèmes de droits qui pourraient survenir. Si vous respectez cela, vous n’avez rien à craindre.

Happy brew ! \o/

Laisser un commentaire