MacPorts vs. Fink vs. Homebrew [Duplikat]

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?

Es gibt auch Rudix .
Geht diese ältere Frage auf Ihre Bedürfnisse ein?

Antworten (4)

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/binund 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 dachte, Sie müssen sich in Bezug auf KDE irren, aber es ist wahr. Früher gab es Pakete dafür, aber anscheinend ist etwas an der Art und Weise, wie KDE aufgebaut ist, mit der Hierarchie von Homebrew nicht kompatibel. Hoffentlich wird das eines Tages behoben.
@echristopherson Also hatte es einmal KDE? Eine Überraschung für mich. Aber KDE scheint ziemlich zerbrechlich zu sein, ich habe es einmal mit Fink installiert, und beim nächsten Update wurde die ganze Installation durcheinander gebracht; Sie würden also erwarten, dass es mit Homebrew noch zerbrechlicher ist. Aber wenn sie es eines Tages richtig machen, nehme ich alles zurück, was ich gesagt habe.
Die Installation von Homebrew in /usr/local ist der gleiche Grund, warum ich es auch nicht verwende. Um mich an die traditionelle Unix-Philosophie zu halten, sollte ich nur Sachen in /usr/local ablegen. Ein Paketmanager sollte ein anderes Präfix verwalten.
Persönlich verwende ich MacPorts, aber zuletzt habe ich nachgesehen (was vor einer Weile war), dass Fink eine viel größere Sammlung von Paketen zur Verfügung hatte.
@Jason Gilt dies auch für einen Einzelbenutzercomputer? Ich habe gerade Homebrew installiert und hoffe nur, dass ich es nicht bereuen werde. Mir ist jedoch nicht ganz klar, wie Apple mit Root und Benutzern mit Administratorrechten umgeht. Ich bin der einzige Benutzer auf meinem System.
Wenn ich das richtig verstehe, können die jüngsten Änderungen an Homebrew die Bedenken hinsichtlich der Paketkollision beheben.
Macports lädt jetzt Binärdateien in den meisten gängigen Setups herunter

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.

  • Macports , ehemals Darwin-Ports, scheint ein Portsystem im BSD-Stil wie pkgsrc zu sein, das den Quellcode erhält, patcht, erstellt und installiert. Wenn es pkgsrc sehr ähnlich ist, wird es dies mithilfe von Shell-Skripten tun. Früher war es auf die von Xcode bereitgestellten Tools angewiesen, aber das verursachte Probleme, sodass es jetzt auch gcc booten kann. Außerdem gibt es einige Binärpakete, aber Sie finden möglicherweise nicht immer die neueste Version für Ihr System. Es kam von Darwin, dem Open-Source-BSD von Apple, das auf dem OS X-Kernel basiert und dessen Vertrieb eingestellt wurde. Es installiert Pakete, /opt/localdie wahrscheinlich nicht von anderen Installationspaketen oder Systemaktualisierungen berührt werden.
  • Fink , bezüglich: Finches, das Gegenstand von Charles Darwins Studie ist, ist ein Paketsystem, das auf Debian Package Manager basiert, das heißt, es bietet die Verwendung von dpkgund apt-getder 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, /swum nicht zu überschreiben oder überschrieben zu werden, was andere Installer installieren könnten. Auch etwas über Compiler-Suchpfade und die Vorgabe bereits PATHenthalten /usr/local/bin.
  • Homebrew ist eine Art Portierungssystem im Konzept, aber in Ruby geschrieben. Es stammt nicht aus einer eigenständigen Betriebssystemwelt und war für Mac OS X-Benutzer gedacht (die anderen werden von denselben gründlich verwendet und getestet). Ab Mitte 2014 versucht es, im Grunde jedes Paket (sie nennen sie Formel) zu bauen, obwohl einige in binärer Form namens Flaschen verfügbar sind, und Sie können ein Depot von Flaschen erstellen, das Sie in Ihrer sozialen Gruppe teilen können, wenn Sie halbwegs geneigt sind - Standardisierung der Toolchains von Ihnen und Ihren Freunden (dasselbe gilt für andere Systeme). Auf der positiven Seite baut es mit so vielen Bibliotheken auf, wie Sie wahrscheinlich bereits haben, die von Apple stammen. Ich denke, Sie brauchen Xcode nicht, damit es in den meisten Fällen funktioniert, aber es "unterstützt und empfiehlt" es. Sie können jedes Element in einem eigenen Präfix installieren,/usr/localIch 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.
  • pkgsrc wäre für Mac OS X verfügbar, enthält Binärpakete und stammt von NetBSD, das es verwaltet und wiederum auf dem Portsystem von FreeBSD basiert. NetBSD war so sehr auf Portabilität über Architekturen hinweg fokussiert, dass es wahrscheinlich der beste Kandidat für ein Portierungssystem war, um auch andere Plattformen zu unterstützen, die es hat. In meiner Beschreibung ähnelt es Macport, aber ich habe es nicht verwendet (außer auf NetBSD), und ich denke, es wird in installiert /, 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?)

Die Paketanzahl ist irreführend, da Homebrew bestimmte Paketklassen absichtlich nicht enthält – mehr dazu unter apple.stackexchange.com/questions/32724/…

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:

  • Verwenden Sie viele Linux-Ökosystem-Tools?
  • Benötigen Sie mehrere Versionen?
  • Experimentieren Sie viel mit neuen Tools?
  • Verwenden Sie mathematische/naturwissenschaftliche Tools/Bibliotheken oder andere ungewöhnliche Tools?

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.