MacPorts vs. Fink vs. Homebrew [duplizieren]


39

Diese Frage hat hier bereits eine Antwort:

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. Diese beiden Dienstprogramme scheinen in der Mac-Community Fuß zu fassen, aber ich verstehe den Unterschied zwischen ihnen nicht.

Was ist der Hauptunterschied zwischen MacPorts, Fink und Homebrew? Gibt es Qualitäts- oder Leistungsunterschiede?


3
Es gibt auch Rudix .
lhf

4
Geht diese ältere Frage auf Ihre Bedürfnisse ein?
bmike

Antworten:


30

Fink ist seit mindestens 2001 Fink um und MacPorts sind Paket - Manager , die „orthogonal“ auf das System sein wollen, das heißt, sie ihre eigene Version installieren python, perlBibliotheken, Compiler usw. in eigenen Bäume (/ 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 dass es gelegentlich Probleme gab, als Apple seine eigenen Sachen aktualisierte.

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 in anderen Standardordnern. Ich denke, das bedeutet, dass die Software-Auswahl bei Homebrew eingeschränkter ist. Ich kann mir nicht vorstellen, dass man KDE damit installieren kann, aber das habe ich nicht versucht.

Ein Punkt für Fink vs. MacPorts: Vor einigen Jahren lieferte das Fink-Projekt Binärpakete. Das heißt, Sie können die Pakete herunterladen und installieren, ohne sie selbst zu kompilieren. Der Paketmanager verfügt weiterhin über diese Fähigkeit, nur dass seit langer Zeit keine Binärdateien mehr verfügbar sind. Ich weiß nicht, ob sich das inzwischen geändert hat.

Kurz gesagt: Ohne die Binärdateien 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. In Bezug auf die Qualität: Ich habe Homebrew noch nie installiert, und zwischen Fink und MacPorts bevorzuge ich normalerweise diejenige, die ich derzeit nicht verwende.

Wenn Sie 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 selbst in / usr / local / bin und dergleichen, was nur nach Ärger schreit.


Ich dachte, Sie müssen sich bei KDE irren, aber es stimmt. Früher hatte es Pakete dafür, aber anscheinend hat die Art und Weise, wie KDE erstellt wird, etwas, das nicht mit der Hierarchie von Homebrew kompatibel ist. Hoffentlich wird das eines Tages behoben.
Echristopherson

1
@echristopherson Also hatte es mal 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 gesamte Installation durcheinander gebracht. so würde man 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.
Percival Ulysses

4
Die Installation von Homebrew in / usr / local ist der gleiche Grund, warum ich es auch nicht verwende. Wenn ich mich an die traditionelle Unix-Philosophie halte, sollte ich nur Sachen in / usr / local einfügen. Ein Paketmanager sollte ein anderes Präfix verwalten.
Jason

Ich persönlich benutze MacPorts, habe aber zuletzt (vor einiger Zeit) geprüft, ob Fink eine viel größere Sammlung von Paketen zur Verfügung hat.
HairOfTheDog

1
@Jason Gilt das auch für einen Einzelplatzrechner? Ich habe gerade Homebrew installiert und hoffe, dass ich es nicht bereuen werde. Mir ist allerdings nicht ganz klar, wie Apple mit root und Usern mit Admin-Rechten umgeht. Ich bin der einzige Benutzer auf meinem System.
Haziz

8

Ich würde sagen, die Hauptunterschiede sind:
Vorsehung, Ergebnis und Verteilungsmethode.

Das wichtigste Detail ist, dass Sie prüfen, ob das ausgewä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, scheinen ein BSD-artiges Ports-System wie pkgsrc zu sein, das den Quellcode abruft , ihn patcht , erstellt und installiert. Wenn es pkgsrc sehr ähnlich ist, wird dies mithilfe von Shell-Skripten durchgeführt. Früher wurde auf die von Xcode bereitgestellten Tools zurückgegriffen, was jedoch zu Problemen führte, sodass jetzt auch gcc gebootet werden kann. Zusätzlich gibt es einige Binärpakete, aber möglicherweise finden Sie nicht jedes Mal die neueste Version für Ihr System. Es stammt von Darwin, dem Open-Source-BSD von Apple, das auf dem OS X-Kernel basiert und dessen Vertrieb eingestellt wurde. Es installiert Pakete, auf /opt/localdie andere Installer-Pakete oder System-Upgrades wahrscheinlich keinen Einfluss haben.
  • Fink , re: finches, das Gegenstand von Charles Darwins Studie ist, ist ein Paketsystem, das auf Debian Package Manager basiert. Dies bedeutet, dass es die Verwendung von dpkgund apt-getden Hauptvorteil bietet , dass Sie zuverlässig Binärpakete 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 populärer bei denjenigen, die von Debian Linux [für Mac oder PPC] kamen und nach einer etwas stabileren Hardware-Unterstützung suchten ... solange diese bestand. Es installiert Pakete in /swaus Gründen des Nichtüberschreibens oder des Überschreibens, was andere Installer möglicherweise installieren. Auch etwas über Compiler-Suchpfade und den Standard PATH, der /usr/local/binbereits enthält.
  • Homebrew ist eine Art Ports-System im Konzept, aber in Ruby geschrieben. Es stammt nicht aus einer eigenständigen OS-Welt und war für Mac OS X-Benutzer gedacht (die anderen werden von denselben gründlich verwendet und getestet). Ab Mitte 2014 wird versucht, im Grunde jedes Paket (sie nennen sie Formel) zu erstellen, obwohl einige in binärer Form, Flaschen genannt, verfügbar sind. Sie können ein Repository von Flaschen erstellen, um sie in Ihrer sozialen Gruppe zu teilen, wenn Sie halbwegs geneigt sind -Standardisierung der Toolchains für Sie und Ihre Freunde (ebenso für andere Systeme). Positiv ist, dass es so viele Bibliotheken verwendet, wie Sie wahrscheinlich bereits von Apple haben. 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 Kickstart und ist aktueller als die anderen. Ich persönlich habe festgestellt, dass ich dieses am häufigsten verwendet habe, da ich selten voneinander abhängige Pakete benötige und mir nicht klar ist, 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 ist für Mac OS X verfügbar, enthält Binärpakete und stammt von NetBSD, das es verwaltet und wiederum auf dem Port-System von FreeBSD basiert. NetBSD konzentrierte sich so auf die Portierbarkeit über Architekturen hinweg, dass es wahrscheinlich das beste mögliche Portierungssystem war, um auch andere Plattformen zu unterstützen, über die es verfügt. In meiner Beschreibung ähnelt es Macport, aber ich habe es nicht verwendet (außer unter NetBSD), und ich denke, es wird installiert /, erstellt und pflegt Pakete in /pkg. Es gibt wahrscheinlich eine Menge Pakete (wie 12k) und 20% können möglicherweise nicht erstellt werden oder die neueste Version der Quelle kann möglicherweise nicht mit dem zuletzt gepflegten Patch patchen. Aus diesem Grund bevorzuge ich bei solchen Systemen die Binärpakete.

Ich habe auch Perlbrew verwendet , eine Art Homebrew für perlAnwendungen, die in Perl erstellt wurden, und einige Abhängigkeiten. Es ist meistens eine gute Möglichkeit, mehrere Versionen von Perl zu verwalten, und es macht andere allgemeinere Paketsysteme (für deren Zweck) praktisch überflüssig. Aber das hat natürlich auch cpan und cpanminus .

Sie könnten ähnliche Manager für Ihre eigene Mini-Umgebung finden (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?)



5

Fink und MacPorts sind direkte Konkurrenten, da sie ein orthogonales System installieren. Fink hat vor einigen Jahren gegenüber MacPorts erheblich an Boden verloren. Ich bin mir nicht ganz sicher, warum, aber MacPorts hat fast alles besser gemeistert.

Wir haben jetzt weniger Grund für eine orthogonale Installation, da Mac OS X weniger verrückt geworden ist. Brew wurde entwickelt, um eine bessere Integration in Mac OS X zu ermöglichen, wodurch es leichter und weniger orthogonal ist 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 Werkzeugen?
  • Verwenden Sie mathematische / naturwissenschaftliche Werkzeuge / Bibliotheken oder andere ungewöhnliche Werkzeuge?

Alle Ja-Antworten lassen darauf schließen, dass Sie sich für MacPorts entscheiden sollten. Brew ist weniger aufwändig, wenn Sie relativ wenige und übliche Pakete installieren, aber Brew wird auch Komplexitäten nicht bewältigen. Brauen /usr/localSie Verschmutzungen, die Sie möglicherweise auch für manuelle Installationen benötigen. Eigentlich gibt es detailliertere Argumente für MacPorts, aber auch diese treffen wahrscheinlich nicht zu, wenn Sie mit Nein geantwortet haben.

Umgekehrt: Wenn Sie mit "Ja" geantwortet haben, aber auf Ihrem primären Computer Linux ausgeführt wird und auf Ihrem Mac nur eine minimale Linux-Software ausgeführt wird, können Sie mit Brew möglicherweise bessere Ergebnisse erzielen.


2

Nebenbei bemerkt, würde sich nichts, was mit Apple OS X zu tun hat, in / usr / local / bin installieren. Sie verwenden / usr / lib, / usr / bin hinter den Kulissen und Frameworks werden in / Library / Frameworks gepackt, während Dinge, die Sie selbst über das reguläre Unix installieren ./configure, make, make install verwenden werden / usr / local / bin etc , und Dienstprogramme wie MacPorts verwenden / opt / und packen möglicherweise Frameworks in Ihre persönliche ~ / Library / Frameworks /.

Ich empfehle, bei MacPorts zu bleiben, wenn Sie das gewohnt sind. Grundsätzlich besteht der Hauptunterschied darin, dass MacPorts ein System verwendet, das der tatsächlichen Implementierung des Unix / BSD-Portbaums mit Ports von FreeBSD ähnelt, während Fink Anwendungen verwendet, die aus Linux-Debian-Archiven portiert wurden, und dasselbe Paketmanagersystem wie Linux-Debian verwendet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.