Ouvrir le menu principal

MacGeneration

Recherche

Homebrew 4 accélère la mise à jour de ses paquets en abandonnant Git

Nicolas Furno

jeudi 16 février 2023 à 14:15 • 11

Logiciels

Homebrew, le gestionnaire de paquets pour macOS1, reçoit une mise à jour majeure et passe ainsi de la version 3.6 à une 4.0. Au programme, un gros changement sous le capot : les mises à jour des paquets ne se feront désormais plus en passant par Git, mais en téléchargeant des fichiers d’information directement depuis les serveurs du projet. Ce changement devrait avoir une conséquence positive pour les utilisateurs, avec des opérations qui devraient être désormais nettement accélérées.

Montage MacGeneration.

Comme tous les programmes similaires, Homebrew repose sur une liste de tous les paquets qu’il peut installer. Ces paquets peuvent être des apps complètes avec une interface graphique ou des outils à utiliser dans le terminal, peu importe. Dans l’univers de Homebrew, on parle de formules et ce site les liste toutes. Pour chaque formule, une fiche comme celle-ci pour le lecteur vidéo mpv contient quelques informations importantes, dont les numéros de version et les dépendances, c’est-à-dire les autres paquets qui sont nécessaires à son installation.

À chaque fois que vous utilisez Homebrew pour ajouter un paquet ou mettre à jour ceux qui sont installés, le programme doit tout d’abord mettre à jour la liste de tous les paquets connus, ainsi que des numéros de version les plus récents pour tous les éléments. Jusque-là, cette tâche était réalisée en utilisant le gestionnaire de version Git : les formules sont stockées dans le même dépôt qui sert au projet (ici pour celles du « core », les plus courantes), sous la forme de fichiers en Ruby, le langage de développement utilisé par le gestionnaire. À titre d’exemple, voici à quoi cela ressemble, toujours pour mpv.

Homebrew devait ainsi mettre à jour la copie locale du dépôt Git, puis consulter le numéro de version de chaque paquet en parcourant de longues listes de fichiers. Même sur un ordinateur moderne, ces opérations demandent beaucoup de ressources et il fallait du temps, un temps répété quasiment à chaque opération, ce qui ralentissait le gestionnaire de paquets. Les systèmes de versionnement, comme Git, ont des besoins assez spécifiques qui ralentissent ces opérations et il est difficile de les accélérer.

Mise à jour de Homebrew avant la version 4 : de nombreuses opérations liées à Git sont nécessaires.

Avec Homebrew 4, la logique change. Cette fois, le programme va interroger un serveur mis en place par ses créateurs et récupérer les informations nécessaires via des fichiers JSON. Voici le fichier qui correspond à mpv, avec les mêmes informations essentielles, comme les numéros de version et les dépendances. Passer par un serveur est nettement plus rapide, à la fois car on n’utilise pas Git et à la fois parce qu’il n’est pas nécessaire de traiter tous les fichiers à chaque opération. Pour mettre à jour une formule, Homebrew pourra désormais interroger le serveur et ne récupérer que le fichier qui la concerne.

Notez que Homebrew continuera pour le moment d’interroger les dépôts Git par défaut sur les installations existantes. C’est une sécurité, puisque ce changement majeur d’architecture pourrait avoir des conséquences négatives ou poser problème dans des cas qui auraient été mal évalués par les développeurs. Par ailleurs, cette intégration avec Git reste nécessaire pour les contributeurs qui publient ou modifient des formules. Pour les autres, ces deux commandes à saisir dans le terminal peuvent couper le lien et accélérer vraiment les phases de mises à jour :

brew untap homebrew/core
brew untap homebrew/cask
Homebrew 4 réalise nettement moins d’opérations pour se mettre à jour et c’est effectivement bien plus rapide.

La contrepartie de ce changement d’architecture, c’est que Homebrew dépend désormais d’un serveur centralisé pour ses opérations. Ce n’est pas un réel problème toutefois, car il sera toujours possible d’ajouter d’autres sources sous la forme de dépôts Git, comme avant. Par ailleurs, les gains de performances justifient sans doute le compromis sur la centralisation pour la majorité des utilisateurs.

Des options restent néanmoins disponibles si vous ne voulez pas adopter ce nouveau mécanisme, vous trouverez les détails dans l’article de présentation de la nouveauté. Vous pourrez voir au passage qu’il y a aussi quelques exceptions, notamment pour les paquets qui ne sont pas fournis sous la forme de binaires et qui doivent être compilés localement. Tout est géré automatiquement cela dit, vous ne réaliserez même pas que cela arrive, si ce n’est en mesurant éventuellement les temps d’exécution.

D’autres changements sont encore listés, dont l’abandon progressif de Google Analytics pour collecter des statistiques qui renseignent, par exemple, sur la popularité des formules ou encore sur les versions de macOS les plus utilisées. À la place, les développeurs de Homebrew vont stocker les données sur leurs propres serveurs qui offrent deux avantages : ils sont situés en Europe et ils ne collectent aucune information personnelle (ni identifiant unique, ni IP). La transition se fera dans les mois à venir et il reste une option pour désactiver toutes collectes de données si vous n’en voulez pas.


  1. À la base, car il existe désormais aussi pour Linux (et donc aussi Windows !), même si les gestionnaires de paquets sont nombreux dans cet univers.  ↩︎

Soutenez MacGeneration sur Tipeee

MacGeneration a besoin de vous

Vous pouvez nous aider en vous abonnant ou en nous laissant un pourboire

Soutenez MacGeneration sur Tipeee

Siri : interactions avec les données dans iOS 26.4, mais le chatbot complet n’arriverait qu’avec iOS 27 et sur serveurs Google

22:01

• 15


Nvidia prise à utiliser des œuvres piratées pour entraîner son IA

21:15

• 9


MacUpdater est à l’arrêt et les alternatives sont loin d’être à jour

19:27

• 28


Volkswagen détrône Tesla et devient numéro un de l’électrique en Europe en 2025

17:39

• 49


Acrobat Studio génère des présentations et des podcasts à partir de PDF

15:47

• 5


Airbnb confirme qu’Apple travaillait bien sur une voiture, si vous en doutiez encore

15:25

• 15


Offrez-vous un Mac mini M2 pour 360 € (code SOLDES20)

15:15

• 0


Promos : l'iPhone 16e à 499 €, l'iPhone 17 à 839 € et les AirPods Pro 3 à 212 €

14:52

• 13


Il confie son MacBook Pro 2018 pour la batterie, Apple lui donne un modèle M4 ! La belle histoire du jour !

13:26

• 104


Xavier Niel rêverait de l’Élysée en 2027, selon sa fille

12:12

• 108


ChatGPT commence à essayer de deviner l’âge de ses utilisateurs, sauf en Europe pour le moment

10:11

• 27


AirPods Pro : un modèle « Ultra » pour la fin de l'année ?

07:58

• 30


Grosse panne dans la nuit pour les services Apple

06:35

• 33


Test de l’ALPSTUGA d’IKEA : un capteur de qualité d’air complet et pas cher, mais décevant dans Maison

06:07

• 35


Les publicitaires échouent à faire interdire l’encadrement du pistage sur iOS

06:07

• 24


Bouygues Telecom inaugure une seconde Bbox Wi-Fi 7 uniquement bi-bande

20/01/2026 à 20:40

• 5