226 votes

Quels sont les avantages et les inconvénients de MacPorts, Fink et Homebrew ?

Je suis en train de passer d'Ubuntu Linux à Mac, tout est nouveau et je dois réapprendre beaucoup de choses.

Sous Linux, j'avais l'excellent apt-get pour gérer les paquets logiciels. J'ai cherché une alternative sur Mac et j'ai découvert MacPorts, Fink et Homebrew.

J'utiliserai cet ordinateur principalement pour développer des applications Ruby on Rails.

Alors, quelles sont les différences entre eux ? Quels sont les avantages et les inconvénients ? Lequel est le mieux entretenu et offre le plus de forfaits ?

166voto

kLy Points 2532

Définitivement Homebrew. J'ai commencé avec Fink, puis je suis passé à MacPorts (plus heureux), puis à Homebrew (beaucoup, beaucoup plus heureux). Voici les raisons pour lesquelles j'utilise chacun d'eux (une liste de pro si vous voulez) :

Fink

  • Basé sur Apt - sentez-vous comme chez vous si vous venez d'un environnement basé sur Debian.

MacPorts

  • Contrairement à homebrew ne dépend pas de la bibliothèque MacOS qui peut changer dans le futur.
  • Installez tout : /opt/local
  • Nice système de variantes qui vous permet de personnaliser la construction.
  • Fichiers de portage faciles et intuitifs, permettant également d'ajouter les vôtres.
  • Prend en charge de nombreuses versions de MacOS depuis Mac OS X Tiger, y compris les versions PowerPC voir autre réponse .

Homebrew

  • Exploitation maximale de ce qui est fourni avec OS X. Contrairement à Fink ou MacPorts, il ne vous oblige pas à construire/installer ruby et les bibliothèques à partir de zéro juste pour installer un petit outil basé sur Ruby.
  • S'installe dans /usr/local (Intel) ou /opt/homebrew (Silicone d'Apple)
  • Installer sans accès Root.
  • Chaque paquet installé est proprement mis en bac à sable dans sa propre cave, de sorte que vous n'avez pas de fichiers errants partout dans votre système, seulement des liens symboliques de bin, man, etc.
  • dispose de guides et d'automatismes pour créer vos propres fichiers de formule (c'est-à-dire les descripteurs de paquet).
  • Écrit en ruby et toutes les formules sont des ruby scripts concis.

pkgin

  • Tout est installé dans : /opt/pkg
  • Soutenu par la communauté pkgsrc et Joyent
  • Fonctionne sur NetBSD, DragonFly BSD, Solaris, Debian, MacOS et Minix.

https://pkgsrc.joyent.com/install-on-osx/

http://pkgin.net/

0 votes

Les commentaires ne sont pas destinés à une discussion approfondie ; cette conversation a été déplacé vers le chat . Si la salle de chat a besoin d'être dégelée, veuillez soulever cette question à l'adresse suivante Posez des questions différentes à Meta ou avec un drapeau.

87voto

YaOzI Points 911

MacPorts

Il est plus indépendant de Mac OS X, ce qui signifie que MacPorts ignorera la plupart des bibliothèques système et des logiciels qui sont déjà disponibles dans Mac OS X. tirer sa propre version à la place qui peut être plus lent lorsque l'utilitaire que vous installez nécessite un ensemble de bibliothèques et de logiciels volumineux.

Mais Ce type de choix est plus sûr car les paquets que vous avez installés sont moins influencés par la procédure de mise à jour/mise à niveau du système d'Apple.


Homebrew

Il est plus dépendant des paquets déjà installés sur Mac OS X, ce qui permettra d'accélérer l'installation des paquets et de minimiser les bibliothèques redondantes.

Mais le risque est que les paquets installés soient cassés à cause de la mise à jour/mise à niveau du système d'Apple.

Ce sont donc deux types de compromis différents.

Aussi, Homebrew prend le relais /usr/local par défaut, avec lequel certaines personnes n'aiment pas ça parce que cela entre en conflit avec la tradition unix et pourrait causer des problèmes si vous avez déjà installé quelque chose à cet endroit (MySQL, etc.).


En dehors de ces différences, compte tenu des paquets que ces deux-là peuvent offrir, vous pouvez vérifier avec ces deux commandes si vous avez déjà installé MacPorts/Homebrew, qui vous montrent les paquets qu'ils fournissent actuellement :

port list | wc -l
brew search | wc -l

Et vous découvrirez que MacPorts a beaucoup plus de paquets que Homebrew.

(19399 v.s 3583 le 13 mai 2016)

28 votes

Une remarque sur le nombre différent de paquets : Homebrew n'inclut décidément pas les paquets pour les langages de programmation qui ont leur propre système de paquets (rubygems/pip/cpan ) ou pour les logiciels pour lesquels un installateur OS X plus approprié est disponible (MacTeX). De plus, les doublons et les anciennes versions ne sont pas dans le dépôt par défaut mais sont inclus dans les dépôts alternatifs. tapez repos. Comparez cela à macports, qui, par exemple, contient un port IPython pour toutes les versions de Python incluses. C'est une philosophie différente qui augmente naturellement le nombre de paquets dans macports.

2 votes

1 votes

@YaOz, Vous pourriez sûrement changer homebrew pour utiliser autre chose que /usr/local ?

53voto

Hal Points 581

Je veux juste ajouter certaines de mes propres pensées qui semblent vraies vers la fin 2014 au moins.

Le homebrew, depuis quelques années, a définitivement le dessus en termes de notoriété. Vous trouverez de nombreux blogs sur lesquels les gens disent à quel point ils sont plus heureux avec Homebrew - généralement à cause de l'argument "MacPorts attire le monde entier" contre "Homebrew utilise ce que vous avez déjà".

Cependant, à mon avis, MacPorts est une bête différente aujourd'hui de ce qu'elle était il y a quelques années. Lorsque je suis passé à OS X et que j'ai utilisé MacPorts, la philosophie de MP était en effet frustrante car presque tout était construit à partir des sources. Une nouvelle installation était particulièrement pénible et lente. Cependant, au cours de l'année dernière, en me basant uniquement sur mes propres impressions, il semble que 90% des paquets MP soient des binaires et que l'installation soit vraiment rapide maintenant. D'après ce que j'ai compris, Homebrew va également dans cette direction avec "Bottles" mais j'ai l'impression que la plupart des choses que vous installez via HB à ce stade seront compilées à partir des sources.

Ainsi, si ce n'est que pour offrir un avis contraire, MacPorts semble être l'option la plus "rapide" de nos jours. Cependant, l'opinion de la plupart des gens sur MP semble être basée sur des expériences datant d'environ 2011-12 et ne tient pas vraiment compte de cela. Prenez cela avec un grain de sel car je ne suis pas un utilisateur régulier de HB (et il est plutôt pénible d'utiliser les deux côte à côte).

Je pense que HB a des avantages qui font qu'il va probablement "gagner la guerre" à long terme.

  • HB est entièrement en Ruby alors que MacPorts, et ses formules de paquetage, sont écrits en TCL qui n'est pas exactement un langage de script populaire (....). Cela dit, il est assez simple de créer son propre fichier de portage.
  • HB est basé sur GitHub et semble donc beaucoup plus accueillant pour les nouveaux contributeurs alors que MacPorts héberge son propre dépôt SVN quelque part je pense - ce qui reflète essentiellement les différents âges des deux projets je suppose.
  • HB et Macports utilisent désormais tous deux Github pour gérer leurs formules, leurs fichiers de portage et leur code source pour fournir leurs fonctionnalités.
  • Comme nous l'avons mentionné, le consensus général est que MacPorts a été supplanté par HB et, à tort ou à raison, cela attire plus de gens vers lui.

Sinon, YaOZl et kLy ont couvert les principales différences en termes de sudo, de dépendances, etc. assez bien. Personnellement, je trouve que MacPorts donne parfois lieu à des maux de tête, car les autres programmes ne s'attendent pas à ce que quelque chose soit dans le système. /opt/local Il y a aussi des choses qu'il vaut mieux ne pas installer avec MacPorts (par exemple, vous pouvez installer Rails via MacPorts, mais vous seriez fou de ne pas l'installer via la gestion normale des Gem de Ruby). A part cela, je suis un grand fan de la philosophie de MacPorts qui consiste à construire son propre petit monde et à ne pas dépendre d'une bibliothèque OS X préemballée - quand ça marche, et c'est le cas la plupart du temps, tout est très simple. C'est ce que l'on attend d'un gestionnaire de paquets. Et comme je l'ai mentionné, à ce stade, il est assez rapide de mettre en place la plupart des choses.

J'espère que cela vous a été utile.

3 votes

"Comme mentionné, le consensus général est que MacPorts a été supplanté par HB et, à tort ou à raison, cela attire plus de gens vers lui." ... cela ressemble à une déclaration très superficielle... être populaire et fournir de la qualité ne sont pas les mêmes choses et n'impliquent en aucun cas que le second soit "supplanté" par le premier.

4 votes

MacPorts utilise désormais Github. Voir guide.macports.org/#projet.github : "Le projet MacPorts utilise le système de contrôle de version distribué Git pour gérer le code de l'ensemble du projet. Nos dépôts maîtres sont hébergés sur GitHub. Nous maintenons des dépôts publics pour presque tout le code et la documentation de notre projet, y compris un dépôt GitHub pour le système MacPorts lui-même, pour les ports MacPorts, et même pour le guide que vous lisez en ce moment."

2 votes

La stratégie de MacPorts a plus de sens avec Apple qui n'est pas fiable sur les librairies qu'ils distribueront dans leur "prochaine version".

30voto

Wowfunhappy Points 6021

Une chose que les autres réponses (jusqu'à présent) ne semblent pas avoir mentionné est que MacPorts a un excellent support pour les anciennes versions de MacOS. Homebrew ne prend en charge que les systèmes d'exploitation qui sont actuellement pris en charge par Apple, ce qui signifie généralement les trois dernières versions. Par exemple, à partir de février 2022, seuls Monterrey, Big Sur et Catalina sont compatibles avec Homebrew.

En revanche, MacPorts peut être installé sur Tiger ( !), et le projet maintient des correctifs spéciaux pour que les logiciels continuent à fonctionner dans la mesure du possible. Cela inclut une bibliothèque "Legacy Support" qui rétrocomporte les fonctions des versions les plus récentes de MacOS vers les plus anciennes ; la liaison avec cette bibliothèque lors de la compilation peut faire fonctionner soudainement une variété de nouveaux logiciels sur des systèmes plus anciens !

Donc, si vous utilisez une ancienne version de MacOS, ou si vous pensez devoir rester sur un système d'exploitation actuel après la date d'expiration d'Apple, vous devriez probablement opter pour MacPorts.

6voto

Patrick Points 1413

Je suis en Chine et la visite de github échoue souvent, ce qui rend l'installation de brew assez pénible. Je connais un miroir de brew en Chine, alors j'ai soulevé une question contre brew Fournir un moyen facile de changer les origines de homebrew . Ils l'ont réparé en 2.3 . Mais même avec cette installation, brew ne lisse toujours pas, par exemple, j'ai frappé plusieurs fois qu'après l'installation, brew ne peut pas trouver de formule.

qiulang@qiulangdeMacBook-Air redis % brew info wget
Error: No available formula with the name "wget".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
qiulang@qiulangdeMacBook-Air redis % brew info redis
Error: No available formula with the name "redis".
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.

Maintenant, je sais que je dois "re-taper", mais à ces moments-là, je ne connaissais pas la raison exacte, sauf que l'installation de brew n'avait pas réussi.

En désespoir de cause, j'ai changé de macports et cela fonctionne plutôt bien jusqu'à présent.

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