43 votes

Pourquoi Homebrew est-il installé dans /opt/homebrew sur les Macs Apple Silicon ?

Le Homebrew page de documentation pour l'installation déclare ce qui suit :

Ce script installe Homebrew à son préfixe préféré ( /usr/local pour MacOS Intel, /opt/homebrew pour le silicium d'Apple et /home/linuxbrew/.linuxbrew pour Linux) afin que vous n'ayez pas besoin de sudo quand vous brew install . Il s'agit d'un script prudent ; il peut être exécuté même si vous avez déjà des choses installées dans le préfixe préféré. Il vous dit exactement ce qu'il va faire avant de le faire aussi. Vous devez confirmer tout ce qu'il va faire avant de le lancer.

Quelle est la raison (technique ou autre) qui a poussé Homebrew à choisir /opt/homebrew comme préfixe d'installation au lieu de /usr/local comme dans le cas de MacOS fonctionnant sur des puces Intel ?

45voto

Haren S Points 290

Je vous recommande vivement de consulter la discussion originale sur Homebrew. ici . Je vais en résumer quelques points ci-dessous.

Le préfixe par défaut devant Apple Silicon ( /usr/local ) a été choisi pour plusieurs raisons :

  • C'est déjà dans PATH. Cela signifie que les outils installés avec homebrew sont accessibles sans qu'il soit nécessaire de modifier quoi que ce soit.
  • De nombreux systèmes de construction regardent déjà dans /usr/local pour que les bibliothèques installées avec homebrew puissent être utilisées par des outils non-homebrew.

La transition vers le Silicium d'Apple s'est accompagnée d'un changement du préfixe Homebrew par défaut. Voici quelques-unes des raisons de ce changement :

  • /usr/local est également utilisé par d'autres outils, pas seulement Homebrew. Cela peut conduire à des conflits potentiels.
  • Installations dans /opt/homebrew pour le silicium d'Apple et /usr/local pour Rosetta 2 peuvent coexister.
  • Les outils Homebrew ne veulent pas toujours être utilisés par défaut. Un préfixe différent rendrait cela plus facile.

Il y avait aussi une intéressante article Il y a quelque temps, j'ai parlé de certains des risques potentiels de sécurité avec /usr/local qui pourraient vous intéresser.

Les autres gestionnaires de paquets MacOS utilisaient déjà des préfixes différents (MacPorts avec /opt/local /opt/sw ). MacPorts a énuméré quelques raisons pour lesquelles ils n'utilisent pas de /usr/local ici et Fink a ici .

Juste pour noter, bien que non recommandé Homebrew peut techniquement être installé n'importe où. Cependant, les bouteilles/binaires pré-construits ne sont disponibles que sur le préfixe par défaut.

9 votes

J'aime bien le premier commentaire de chacune des raisons de Homebrew - elles s'annulent plutôt l'une l'autre.

0 votes

Pouvez-vous également forcer l'installation des bouteilles/binaires préconstruites dans un préfixe personnalisé ?

0 votes

Non, pas vraiment. Souvent, le préfixe peut être codé en dur dans les fichiers compilés au moment de la construction. Il n'y a pas de moyen facile de changer cela à moins de construire localement le préfixe personnalisé.

11voto

Abramodj Points 1771

Du Homebrew FAQ :

Le préfixe /opt/homebrew a été choisi pour permettre aux installations dans /opt/homebrew pour Apple Silicon et /usr/local pour Rosetta 2 de coexister et d'utiliser des bouteilles.

Cela permet l'installation et l'exécution de deux versions de Homebrew simultanément sur le Silicon d'Apple, une pour ARM et une pour Intel sous Rosetta. Voir aussi ici

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X