Ich habe immer MacPorts verwendet, um meine GCC-Compiler und andere Programme zu installieren und zu warten. Jetzt habe ich von Fink und Homebrew gehört. Es scheint, dass diese beiden Dienstprogramme in der Mac-Community an Boden gewinnen, aber ich verstehe den Unterschied zwischen ihnen nicht.
Was ist der Hauptunterschied zwischen MacPorts, Fink und Homebrew? Gibt es Unterschiede in Qualität oder Leistung?
Fink gibt es mindestens seit 2001. Fink und MacPorts sind Paketmanager, die "orthogonal" zum System sein wollen, d. h. sie installieren ihre eigene Version von python
, perl
, Bibliotheken, Compilern usw. in eigenen Bäumen (/sw für Fink, /opt/local für MacPorts). Der Grund dafür ist, dass sie keine Kontrolle darüber haben, was Apple mit seiner Software macht, und es hat gelegentlich Dinge kaputt gemacht, wenn Apple seine eigenen Sachen aktualisiert hat.
Soweit ich weiß, möchte Homebrew stärker in das System "integriert" werden, verwendet die von Apple bereitgestellten Bibliotheken und installiert seine Inhalte in /usr/local/bin
und anderen Standardordnern. Ich denke, das bedeutet, dass die Softwareauswahl bei Homebrew eingeschränkter ist, ich kann mir nicht vorstellen, dass man KDE damit installieren könnte, aber das habe ich nicht versucht.
Ein Punkt für Fink vs. MacPorts: Vor ein paar Jahren lieferte das Fink-Projekt Binärpakete; das heißt, Sie könnten die Pakete herunterladen und installieren, ohne sie selbst zu kompilieren. Sein Paketmanager hat diese Fähigkeit immer noch, nur dass es seit langem keine Binärdateien mehr gibt. Ich weiß nicht, ob sich das inzwischen geändert hat.
Kurz gesagt: Ohne den binären Kram sind sich Fink und MacPorts sehr ähnlich. Sie sollten mehr Pakete zur Verfügung haben als Homebrew, während Homebrew aus den oben genannten Gründen weniger Speicherplatz beanspruchen sollte. Zur Qualität: Homebrew habe ich noch nie installiert, und zwischen Fink und MacPorts bevorzuge ich meist den, den ich gerade nicht nutze.
Wenn Sie also mit MacPorts zufrieden sind, bleiben Sie einfach dabei.
PS Der Grund, warum ich Homebrew nie ausprobiert habe, ist, dass ich einige vorkompilierte Pakete verwende. Diese installieren sich normalerweise auch in /usr/local/bin und dergleichen, was nur nach Ärger schreit.
Ich würde sagen, die Hauptunterschiede sind:
Vorsehung, Ergebnis und Verteilungsmethode.
Als wichtigstes Detail prüfen Sie, ob das von Ihnen gewählte System Pakete für die gewünschte Software enthält. Die Anzahl der Pakete beträgt ungefähr: 19.000 Macports, 22.000 Fink, 3.000 Homebrew, 10.000 pkgsrc.
/opt/local
die wahrscheinlich nicht von anderen Installationspaketen oder Systemaktualisierungen berührt werden.dpkg
und apt-get
der Hauptvorteil besteht darin, dass Sie Binärpakete zuverlässig finden können.. vorausgesetzt, Sie haben ein Upstream-Paket Repository, das Binärdateien für Ihre aktuelle Betriebssystemversion enthält. Es kam auch aus der Darwin-Benutzerbasis, ist aber wahrscheinlich beliebter bei denen, die von Debian Linux [für Mac oder PPC] kamen und nach etwas stabilerer Hardwareunterstützung suchten ... solange es dauerte. Es installiert Pakete, /sw
um nicht zu überschreiben oder überschrieben zu werden, was andere Installer installieren könnten. Auch etwas über Compiler-Suchpfade und die Vorgabe bereits PATH
enthalten /usr/local/bin
./usr/local
Ich denke, es wurde gestartet und ist neuer als die anderen. Ich persönlich habe festgestellt, dass ich dieses am häufigsten verwendet habe, weil ich selten voneinander abhängige Pakete benötige, und ich bin mir nicht sicher, wie gut Mac Homebrew es unterstützt. Homebrew zielt darauf ab, Sie zu zwingen, geeignetere Paketmanager für Software zu verwenden, die von einem eng gekoppelten Manager stammt, wie cpan, gems und dergleichen./
, baut und verwaltet jedoch Pakete in /pkg
. Es gibt wahrscheinlich viele Pakete (wie 12k) und etwa 20% werden möglicherweise nicht erstellt, oder die neueste Version der Quelle wird möglicherweise nicht mit dem letzten gepflegten Patch gepatcht. Deshalb bevorzuge ich bei dieser Art von Systemen die Binärpakete.Ich habe auch perlbrew verwendet, das eine Art Homebrew für perl
, in Perl gebaute Anwendungen und einige Abhängigkeiten ist. Es ist meistens eine gute Möglichkeit, mehrere Versionen von Perl zu verwalten, und es macht praktischerweise die Notwendigkeit anderer, allgemeineren Paketsysteme (für seinen Zweck) zunichte. Aber das hat natürlich auch cpan und cpanminus .
Möglicherweise finden Sie ähnliche Manager für Ihre eigene Mini-Umgebung (wie vundle für vim oder gem für ruby, npm für node.js, pypm oder pip für python, go's built-in go install
... etc?)
Fink und MacPorts sind direkte Konkurrenten, da sie ein orthogonales System installieren. Fink verlor vor einigen Jahren erheblich an Boden gegenüber MacPorts. Ich bin mir nicht ganz sicher, warum, aber MacPorts hat fast alles besser gehandhabt.
Wir haben jetzt weniger Grund für eine orthogonale Installation, da Mac OS X weniger verrückt geworden ist. Brew wurde otoh entwickelt, um sich besser in Mac OS X zu integrieren, wodurch es leichter und weniger orthogonal wird, und auch, weil Rubyist alles neu schreibt.
In der Praxis ist MacPorts etwas komplizierter, aber MacPorts funktioniert fast immer, während Brew einfacher ist, aber eher gegen eine Mauer stößt.
Stellen Sie sich diese Frage:
Alle Ja-Antworten legen nahe, dass Sie sich für MacPorts entscheiden sollten. Brew ist weniger aufwändig, wenn Sie relativ wenige und gängige Pakete installieren, aber Brew wird auch nicht mit Komplexitäten fertig. Brauen Sie Schadstoffe /usr/local
, die Sie möglicherweise auch für manuelle Installationen benötigen. Tatsächlich gibt es detailliertere Argumente für MacPorts , aber auch hier treffen sie wahrscheinlich nicht zu, wenn Sie mit Nein geantwortet haben.
Umgekehrt, wenn Sie mit Ja geantwortet haben, aber auf Ihrem primären Computer Linux läuft und Ihr Mac nur ein Spielzeug ist, auf dem minimale Linux-Software läuft, dann könnten Sie mit Brew tatsächlich besser abschneiden.
Aber als Randbemerkung, nichts, was mit Apple OS X zu tun hat, würde sich selbst in /usr/local/bin installieren. Sie verwenden /usr/lib , /usr/bin hinter den Kulissen und Frameworks werden in /Library/Frameworks verpackt, während Dinge, die Sie selbst über das reguläre Unix ./configure, make, make install installieren, /usr/local/bin usw. verwenden , und Dienstprogramme wie MacPorts verwenden /opt/ und packen möglicherweise Frameworks in Ihre persönliche ~/Library/Frameworks/.
Meine Empfehlung ist, bei MacPorts zu bleiben, wenn Sie das gewohnt sind. Grundsätzlich besteht der Hauptunterschied darin, dass MacPorts ein System verwendet, das der echten Unix/BSD-Ports-Tree-Implementierung mit Ports von FreeBSD ähnlicher ist, während Fink Anwendungen verwendet, die aus den Linux-Debian-Archiven portiert wurden, und dasselbe Paketverwaltungssystem wie Linux Debian verwendet.
lhf
Fahrrad