43 votes

Installer des trucs : brew vs. l'installateur officiel - lequel utiliser ?

Je me demande comment les programmes doivent être installés sur Mac ? Via Homebrew ou un installateur officiel s'il en existe un ?

Disons que je veux installer Node.js sur mon Mac. Le site guide d'installation officiel de MacOS propose différentes alternatives pour y parvenir. J'ai donc commencé par l'installer via son fichier d'installation officiel. J'ai ensuite basculé vers Homebrew et l'ai installé via brew install node .

Donc maintenant il semble que j'ai deux installations de Node sur mon système. Lorsque j'exécute la commande which node il produit /usr/local/bin . Il est donc clair que l'installation officielle est en faveur ici (peut-être parce que je l'ai installée en premier ? je ne sais pas). L'installation du noeud à partir de Homebrew est en /usr/local/Cellar .

Mes questions sont donc les suivantes :

  1. Dois-je utiliser Homebrew ou l'installateur officiel ? Pourquoi ? Pour moi, il semble que Homebrew présente certains avantages par rapport à un installateur, comme un processus de désinstallation plus facile et une meilleure possibilité de mettre à jour les paquets logiciels installés.
  2. Comment puis-je faire passer mon système de l'usage de la /usr/local/bin Installation du nœud dans le /usr/local/Cellar un ?

10 votes

Je pense que la version "officielle" aurait été installée dans /usr/bin/ car seuls les programmes approuvés par Apple peuvent y être installés. Si j'étais vous, j'ouvrirais le Finder, et je jetterais un coup d'œil à l'écran de l'ordinateur. /usr/local/bin/ dossier. Vous pouvez constater que /usr/local/bin/node est un lien symbolique vers /usr/local/Cellar/node

0 votes

Aussi, faites un node --version et un /usr/local/Cellar/node/node --version (en ajustant la deuxième version pour qu'elle corresponde à ce qui se trouve sur votre ordinateur), et comparez les deux numéros de version. En général, vous choisirez la version dont le numéro est le plus élevé.

0 votes

Même avec l'installateur de Node.js, vous n'installez généralement pas dans /usr/bin (dans les versions récentes de MacOS, vous ne pouvez probablement pas le faire). Homebrew est généralement lié à /usr/local/bin, vous pouvez donc vérifier si le fichier qui s'y trouve n'est qu'un lien symbolique vers la cave.

20voto

Douglas Points 10417

Il y a une question similaire ici sur Ask Different - Quels sont les avantages et les inconvénients de MacPorts, Fink et Homebrew ? - qui fait une comparaison des différents gestionnaires de paquets. C'est une excellente lecture et je vous encourage à l'examiner.

Dois-je utiliser Homebrew ou l'installateur officiel ? Pourquoi ?

La principale différence entre l'utilisation de Homebrew et l'utilisation du paquet d'installation réside dans les dépendances au moment de la construction. Homebrew (et MacPorts) fait un excellent travail pour gérer tout cela. Cependant, avec le paquetage, il n'y a pas d'exigences de construction et le logiciel est prêt à être utilisé.

La désinstallation n'est pratiquement plus un problème. Homebrew gère le processus de désinstallation et s'occupe des dépendances d'exécution en les réduisant si nécessaire. Cependant, avec des applications gratuites comme AppCleaner la suppression complète d'une application n'est pas un problème.

Donc, en fin de compte, tout dépend de votre flux de travail. Si vous avez simplement besoin d'un utilitaire, téléchargez le paquet. Si vous en utilisez plus d'un et qu'il y a des bibliothèques partagées que vous voulez pouvoir gérer, allez-y avec Homebrew.

Comment puis-je faire passer mon système de l'utilisation de l'installation Node /usr/local/bin à l'installation /usr/local/Cellar ?

Vous changez de chemin.

En fonction de votre shell ( ~/.bash_profile pour Bash et ~/.zprofile pour Zsh) vous ajoutez simplement le répertoire du nouvel utilitaire (voir ZSH : .zprofile, .zshrc, .zlogin - Qu'est-ce qui va où ? pour plus d'informations). Pour être sûr qu'il soit sélectionné avant l'autre application (native), vous la placez en premier dans la variable du chemin. Par exemple, le chemin par défaut est (défini par path_helper )

/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Dans votre profil, ajoutez simplement la ligne à l'endroit où se trouvent vos binaires. En utilisant votre exemple, pour ajouter votre chemin :

PATH=/usr/local/Cellar:$PATH

Votre nouveau chemin aura votre répertoire Cellar ajouté au début du chemin existant. Parce qu'il est ajouté au préalable (vient avant) votre chemin existant, il regardera dans ce répertoire en premier. Voir le Documentation Homebrew pour tous les détails. Personnellement, j'utilise une combinaison de MacPorts et d'installateurs "officiels", j'utilise donc une structure de répertoire différente. YMMV.

4 votes

PATH=/usr/local/Cellar:$PATH devrait être PATH=/usr/local/Cellar/package/version/bin:$PATH . Et en fait, il devrait simplement être PATH=/usr/local/bin:$PATH qui contient les liens symboliques que Brew installe.

2 votes

@anki Mon but ici est de éduquer l'OP sur la façon de modifier les choses pour répondre à leurs besoins, et non pas de donner une réponse quant à l'emplacement par défaut du chemin d'accès de Homebrew. Le résultat final est de déterminer ce qui fonctionne le mieux, pas un HOWTO Homebrew.

3 votes

@Allan ce serait un bon objectif, mais nous devrions également éduquer les OP sur le fait que les recherches dans les fichiers PATH ne sont pas récursifs et les binaires ne sont pas directement dans /usr/local/Cellar . Donc même s'il y a un node dans le répertoire /usr/local/Cellar sur $PATH le node commande enfouie dans /usr/local/Cellar/node/<some-version>/bin ne seront pas trouvés.

8voto

awy Points 500

Dois-je utiliser Homebrew ou l'installateur officiel ? Pourquoi ?

Je préférerai toujours un gestionnaire de paquets comme brew ou conda aux fichiers .pkg qui ne fournissent pas de désinstallateurs.

  • On peut vérifier quelles sont les dépendances qui vont être installées.
  • Nettoyage facile.
  • Il n'est pas nécessaire de se rappeler si un élément était fourni avec l'installation standard de MacOS ou s'il a été installé ultérieurement.
  • Il n'est pas nécessaire de saisir le mot de passe Root.

Les outils que l'on ne trouve pas sur la brasserie et que je construis moi-même sont construits avec CMAKE_INSTALL_PREFIX et installé dans ~/Applications . Les binaires que je télécharge directement de quelque part sont également conservés dans ~/Applications

Ensuite, j'ajoute le chemin d'installation à PATH par ~/.bash_profile .


brew conserve les binaires ou les bibliothèques dans le dossier /usr/local/Cellar/<package>/<version>/bin et crée un alias dans /usr/local/bin o /usr/local/lib ou inclure. Et met le chemin /usr/local/bin dans votre PATH variable.

Il est donc clair que l'installation officielle a la faveur ici (peut-être parce que je l'ai installée en premier ? je ne sais pas).

Non, c'est le précédent. Sur PATH variable, /usr/local/bin est mentionné avant /usr/bin par défaut. (Voir le install.sh fichier). Ainsi, lorsqu'un binaire est trouvé, les emplacements à venir ne sont pas vérifiés.


Ce que vous avez téléchargé sur le site est une version simplifiée

curl "https://nodejs.org/dist/latest/node-${VERSION:-$(wget -qO- https://nodejs.org/dist/latest/ | sed -nE 's|.*>node-(.*)\.pkg</a>.*|\1|p')}.pkg" \
> "$HOME/Downloads/node-latest.pkg" \
&& sudo installer -store -pkg "$HOME/Downloads/node-latest.pkg" -target "/"

Je suppose que node est installé dans /usr/bin .


Donc pour nettoyer les choses,

  • Exécuter brew uninstall node
  • Obtenir le fichier xz à partir de https://nodejs.org/dist/latest/ et vérifiez son contenu.
  • Un par un, trouvez tous les dossiers et fichiers comme README et changelog qui correspondent au xz que vous avez téléchargé, et supprimez-les. Très probablement, ils se trouvent à /usr/bin , /usr/local/bin . Ce qui serait utile ici, c'est d'utiliser le finder et de trier par "Date d'ajout".
  • brew install node .

Comment puis-je faire passer mon système de l'utilisation de l'installation Node /usr/local/bin à l'installation /usr/local/Cellar ?

Une fois que vous avez effectué les étapes ci-dessus, et que l'installation de Brew est correcte, c'est-à-dire echo $PATH contient /usr/local/bin vous n'avez rien à faire de plus.

0 votes

Quelle est l'ampleur de l'empreinte du HomeBrew ?

0 votes

~ 350 Mo pour le repo git et un peu de cache des binaires téléchargés. Les installations prennent la taille qu'elles prendraient de toute façon, donc ça n'a pas d'importance.

5voto

benwiggy Points 21125

Si vous prévoyez d'installer beaucoup de choses, vous trouverez peut-être un gestionnaire de paquets plus utile ; si vous n'avez besoin d'installer qu'une poignée de choses, qui ont leurs propres installateurs et pour lesquelles la mise à jour est facile, l'installation de quelque chose comme HomeBrew peut simplement ajouter une couche supplémentaire de complexité.

Il y a également des implications en matière de sécurité à mettre tous ses œufs dans le même panier. https://medium.com/@vesirin/how-i-gained-commit-access-to-homebrew-in-30-minutes-2ae314df03ab

3voto

Seamus Points 3171

Je me demande comment les programmes doivent être installés sur Mac ? Via Homebrew ou un installateur officiel s'il en existe un ?

D'autres réponses ici ont abordé divers points spécifiques. Je vais limiter ma réponse à cette question, faire quelques recommandations et les expliquer brièvement.

Rôle d'un gestionnaire de paquets dans MacOS

Je pense que la plupart des utilisateurs des diverses distributions Linux et BSD ont fini par apprécier l'importance d'un bon gestionnaire de paquets. J'utilise principalement des distributions basées sur Debian, et je considère le gestionnaire de paquets ( aptitude ) pour être aussi essentiel que le noyau lui-même. Je veux dire par là que si le gestionnaire de paquets n'existait pas, ou s'il était peu fiable et sujet aux erreurs, je ne serais pas un utilisateur de Linux.

Apple a choisi no pour fournir un gestionnaire de paquets en soi . Apple propose une sélection de open-source Ils sont fournis avec la distribution de MacOS et mis à jour à la discrétion d'Apple. Mais il existe un un monde immense de logiciels libres disponibles la plupart des informations sont d'excellente qualité et offrent des avantages substantiels par rapport aux logiciels à code source fermé .

Pour tout ce qui dépasse 2 ou 3 paquets, je pense que la plupart des utilisateurs sont mieux servis en utilisant un fichier gestionnaire de paquets . Certains paquets supportent très bien l'installation autonome sous MacOS. Certains supportent même les mises à jour, et quelques-uns supportent également la suppression. Mais ceux-ci seront inévitablement différents, paquet-unique et la maintenance devient une corvée fastidieuse.

Comparaison des gestionnaires de paquets largement utilisés sur MacOS

Je crois qu'il y a trois gestionnaires de paquets largement utilisés sur MacOS :

Certains ne seront pas d'accord avec ma désignation de git comme gestionnaire de paquets. Je ne discuterai pas du fait que dans un sens strict git est logiciel de contrôle de version mais je pense que lorsque git est couplé à d'énormes collections de dépôts de sources libres et ouvertes les différences semblent se fondre dans un jargon obscur.

J'ai essayé Homebrew il y a plusieurs années, et la plupart de mes opinions ont été formées par cette expérience. En clair, malgré le fait que j'avais une certaine expérience des gestionnaires de paquets lorsque j'ai essayé pour la première fois Homebrew je l'ai trouvé maladroit et peu fiable. Emplacement des colis, "L'utilisation par intermittence de l'Internet". sudo " un jargon qui faisait référence à la fabrication de la bière : "brew = faire ?" Qu'est-ce que c'est ? "tonneau" ? et l'utilisation de Ruby (ce qui est génial si vous êtes un utilisateur, mais je ne le suis pas) ont tous contribué à son manque d'attrait. Mais certains l'adorent, et pour ceux-là, je ne peux que leur dire : " Party on, Garth " !

Peu de temps après, je décide de donner MacPorts et je l'utilise depuis. Je pense que c'est principalement dû au fait qu'il me semble rationnel, simple et facile à utiliser. Il offre beaucoup de profondeur pour les situations inhabituelles qui se présentent de temps en temps, mais devenir productif avec lui ne demande que quelques minutes et une poignée de commandes ; la maîtrise peut être atteinte en quelques heures. En résumé, MacPorts est ma recommandation sans réserve pour un gestionnaire de paquets pur.

Quelques mots sur git et pourquoi je pense que c'est utile. "gestionnaire de paquets" . En tant qu'outil de contrôle de version, git est un logiciel complexe dont la maîtrise demande beaucoup d'efforts. Vous pouvez vous en faire une idée en parcourant les nombreuses pages de man pages pour git et ses différentes filiales. Cependant, l'utiliser pour "installer" et mettre à jour des paquets hébergés sur un site Web de l git dépôt ( GitHub par exemple) ne nécessite que quelques commandes. Je pense qu'il est principalement utile dans deux situations :

  1. Pour les paquets (script, documentation, etc) qui ne sont pas disponibles sur MacPorts
  2. Paquets pour lesquels vous souhaitez effectuer des changements de codage et compiler vous-même

2 votes

Il convient de souligner que git est définitivement pas un gestionnaire de paquets, du moins pas plus qu'un serveur ftp ne peut être considéré comme une base de données. En général, si vous avez plusieurs dépôts pour différents paquets sur votre système, git ne les connaîtra pas de manière centralisée (à moins que vous n'ayez décidé de créer un dépôt local et de cloner tous les outils que vous voulez en tant que sous-modules, auquel cas je dirais que vous utilisez git pour créer votre propre gestionnaire de paquets). C'est la caractéristique principale d'un gestionnaire de paquets, et ce n'est pas quelque chose que vous pouvez faire. git supports.

0 votes

@MooseBoys : Ref Some will disagree with my designation of git as a package manager. dans ma réponse. Donc - ça fait 1.

2voto

Saaru Lindestøkke Points 5124

En ce qui concerne votre première question Dois-je utiliser Homebrew ou l'installateur officiel ? Je ressens le besoin d'ajouter un inconvénient à l'utilisation de Homebrew, que je n'ai pas vu ici ou dans le document autre question : compatibilité à long terme.

Prenons l'exemple d'El Capitan, qui est installé sur les Macs qui ne peuvent plus être mis à niveau. Alors que ces Macs peuvent toujours fonctionner correctement, Homebrew (comme Apple) a abandonné le support de cette version d'OS . Maintenant, si vous essayez de brew install quelque chose sur El Capitan, cela peut fonctionner, échouer ou lancer une longue procédure de compilation et puis échouer.

J'ai constaté que cela ne valait pas la peine d'essayer ce processus à chaque fois, alors maintenant, sur l'ancienne machine, j'installe tout avec le programme d'installation officiel.

1 votes

Pourquoi ne pouvez-vous pas installer des versions spécifiques des formules ? Voir : stackoverflow.com/questions/3987683/

0 votes

@Allan Cela ne permettra pas d'installer les nouvelles versions des binaires respectifs.

0 votes

Je comprends @nohillside, je m'attendrais à ce que la version compatible la plus récente soit installée en la spécifiant.

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