Ich migriere gerade von Ubuntu Linux auf Mac und alles ist neu und ich lerne eine Menge Dinge neu.
Unter Linux hatte ich die hervorragende Möglichkeit, Softwarepakete zu verwalten. Ich habe auf dem Mac nach einer Alternative gegoogelt und etwas über MacPorts, Fink und Homebrew herausgefunden.
Ich werde diesen Computer hauptsächlich zur Entwicklung von Ruby on Rails-Anwendungen verwenden.
Also, was sind die Unterschiede zwischen Sie? Welches sind die Vor- und Nachteile? Welches ist am besten gepflegt und hat mehr Pakete?
Kommentare
- Ich habe Ihren Titel so bearbeitet, dass er Ihrer eigentlichen Frage entspricht. Auf den meisten Stack Exchange-Sites wird die Frage nach „, die besten “ verpönt.
- Warum benötigen Sie welche? Von diesen werden ‚ t Ruby ‚ Edelsteine nicht ausreichen?
- , um mehr darüber zu erfahren, warum Duplikate nicht ‚ nicht immer schlecht: apple.stackexchange.com/questions/11461/… Außerdem gibt es dort noch ein paar Alternativen.
- Ich habe es selbst nie benutzt, aber vielleicht wäre auch ein Vergleich mit pkgin nützlich.
Antwort
Auf jeden Fall Homebrew. Ich begann mit Fink, wechselte dann zu MacPorts (glücklicher) und dann zu Homebrew (viel, viel glücklicher). Dies sind meine Gründe für die Verwendung der einzelnen (eine Pro-Liste, wenn Sie so wollen):
Fink
- Apt-basiert – fühlen Sie sich wie zu Hause, wenn Sie von einem Debian-basierten kommen Umgebung
- Binärpakete – Pakete sind als Binärpakete verfügbar, sodass keine langen Kompilierungszeiten erforderlich sind. Praktisch, obwohl ich festgestellt habe, dass die vorkompilierten Binärdateien immer veraltet waren und ich sowieso Sachen für mein System kompilieren musste
MacPorts
- Im Gegensatz zu Homebrew hängt nicht von der MacOS-Bibliothek ab, die sich in Zukunft ändern kann.
- Installieren Sie alles in / opt / local
- Nettes -Variantensystem , mit dem Sie den Build anpassen können.
- Einfache und intuitive Portdateien. Außerdem können Sie Ihre eigenen hinzufügen.
- unterstützt viele Versionen von OSX und Macos, die auf Tiger zurückgehen, einschließlich PowerPC-Versionen andere Antwort
Homebrew
- Maximale Nutzung der mit OS X gelieferten Funktionen Bei Fink oder MacPorts müssen Sie Ruby und Bibliotheken nicht von Grund auf neu erstellen / installieren, um ein kleines Ruby-basiertes Tool zu installieren.
- Wird in
/usr/local
- Installation ohne Root-Zugriff
- Jedes installierte Paket wird sauber in einen eigenen Keller gepackt, damit Sie es nicht tun Alle Streudateien auf Ihrem gesamten System, nur Symlinks von bin, man usw.
- Verfügt über Anleitungen und Automatisierung , um Ihre eigenen Formeldateien zu erstellen (dh. Paketdeskriptoren)
- In Ruby geschrieben und alle Formeln sind prägnante Ruby-Skripte
- Schnellere Installationen aufgrund vorkompilierter Binärdateien
pkgin
- Schnellere Installationen aufgrund vorkompilierter Binärdateien
- Alles, was in / opt / pkg /
- installiert ist und von der pkgsrc-Community und Joyent
- unterstützt wird Bekannt für NetBSD, DragonFly BSD, Solaris, Debian, Mac OS X und Minix
https://pkgsrc.joyent.com/install-on-osx/
Kommentare
- Kommentare sind nicht für eine ausführliche Diskussion gedacht. Diese Konversation wurde in den Chat verschoben . Wenn die Sperre aufgehoben werden muss, werfen Sie dieses Problem bitte auf Ask Different Meta oder mit einem Flag auf.
Antwort
MacPorts
Es ist unabhängiger von Mac OS X, dh MacPorts ignoriert nur viele der bereits vorhandenen Systembibliotheken und Software verfügbar unter Mac OS X und ziehen stattdessen eine eigene , was langsamer sein kann, wenn das von Ihnen installierte Dienstprogramm einige große Bibliotheken und Software erfordert.
Aber Diese Auswahl ist sicherer, da die von Ihnen installierten Pakete weniger von Apples Systemupdate / -upgrade beeinflusst werden Vorgehensweise.
Homebrew
Es hängt stärker von vorhandenen installierten Mac OS X-Paketen ab, sodass die Installation von Paketen beschleunigt und redundante Bibliotheken minimiert werden.
Aber das Risiko, dass Pakete installiert sind, ist möglicherweise fehlerhaft n wegen Apples Systemaktualisierung / -aktualisierung.
Dies sind also die zwei verschiedenen Arten von Kompromissen.
Außerdem übernimmt Homebrew / usr / local standardmäßig, mit dem einige Leute dies nicht mögen , weil es irgendwie Konflikt mit der Unix-Tradition und kann Probleme verursachen, wenn Sie dort bereits etwas installiert haben (MySQL usw.).)
Abgesehen von diesen Unterschieden können Sie angesichts der Pakete, die diese beiden anbieten können, mit diesen beiden Befehlen überprüfen, ob Sie bereits MacPorts / Homebrew installiert haben, die Ihnen die aktuell bereitgestellten Pakete anzeigen:
port list | wc -l brew search | wc -l
Und Sie werden feststellen, dass MacPorts viel mehr Pakete als Homebrew enthält.
(19399 gegenüber 3583 am 13. Mai 2016)
Kommentare
- Als Bemerkung zur unterschiedlichen Anzahl von Paketen: Homebrew enthält entschieden keine Pakete für Programmiersprachen, die über ein eigenes Verpackungssystem verfügen (rubygems / pip / cpan…) oder für Software, für die ein wahrscheinlich geeigneteres OS X-Installationsprogramm verfügbar ist (MacTeX). Duplikate und ältere Versionen befinden sich nicht im Standard-Repo, sondern sind in alternativen tap -Repos enthalten. Vergleichen Sie dies mit Macports, die z. B. einen IPython-Port für alle enthaltenen Python-Versionen enthalten. Es ist eine andere Philosophie, die natürlich die Anzahl der Pakete in Macports erhöht.
- Hervorragender Link! terrychay.com/article/macports-vs-homebrew.shtml Vielen Dank!
- @YaOz, Sie könnten Homebrew sicherlich ändern, um etwas zu verwenden sonst anders als
/usr/local
? - @Pacerier Ich glaube, irgendwo anders als
/usr/local/
wird „nicht unterstützt“ oder „entmutigt“ .
Antwort
Nur um einige meiner eigenen Gedanken hinzuzufügen, die zumindest gegen Ende 2014 wahr erscheinen
Homebrew hat seit ein paar Jahren definitiv die Oberhand in Bezug auf Mindshare. Sie werden viele Blogs mit Leuten finden, die darüber sprechen, wie viel glücklicher sie mit Homebrew sind – normalerweise wegen der ganzen Sache „MacPorts zieht in der ganzen Welt“ gegen „Homebrew nutzt das, was Sie bereits haben“.
IMO, MacPorts ist jetzt ein anderes Biest als vor ein paar Jahren. Als ich zum ersten Mal zu OS X wechselte & MacPorts verwendete, war die MP-Philosophie in der Tat frustrierend weil fast alles aus dem Quellcode erstellt wurde. Eine neue Installation war besonders schmerzhaft / langsam. Im letzten Jahr oder so, basierend auf meinen eigenen Eindrücken, scheinen 90% der MP-Pakete Binärdateien zu sein & Die Installation ist also jetzt wirklich sehr schnell. Soweit ich weiß, bewegt sich Homebrew auch mit „Bottles“ in diese Richtung, aber ich habe den Eindruck, dass die meisten Dinge, die Sie zu diesem Zeitpunkt über HB installieren, aus dem Quellcode kompiliert werden.
Um nur eine gegenläufige Meinung abzugeben, scheint MacPorts tatsächlich das „schnellere“ o zu sein ption in diesen Tagen. Die Meinung der meisten Menschen zu MP scheint jedoch auf Erfahrungen aus den Jahren 2011-12 zu beruhen. & berücksichtigt dies nicht wirklich. Nehmen Sie dies mit einem Körnchen Salz, da ich kein normaler HB-Benutzer bin (und es ziemlich schmerzhaft ist, beide nebeneinander zu verwenden).
Ich denke, HB hat Vorteile, die bedeuten, dass es wahrscheinlich „gewinnen“ wird the war „auf lange Sicht ist
- HB alles Ruby, während MacPorts und seine Paketformeln in TCL geschrieben sind, was … nicht gerade eine beliebte Skriptsprache ist Es ist verdammt einfach, eine eigene Portdatei zu erstellen.
- HB basiert auf GitHub & scheint daher für neue Mitwirkende viel willkommener zu sein, während MacPorts irgendwo ein eigenes SVN-Repository hostet Ich denke – was im Grunde genommen das unterschiedliche Alter beider Projekte widerspiegelt, denke ich.
- Wie bereits erwähnt, besteht der allgemeine Konsens darin, dass MacPorts zu Recht oder zu Recht von HB & abgelöst wurde Das zieht fälschlicherweise mehr Menschen an.
Ansonsten hat YaOZl & kLy den Hauptunterschied in Bezug auf Sudo, Abhängigkeiten usw. ziemlich gut abgedeckt. Persönlich ICH Stellen Sie jedoch fest, dass MacPorts manchmal zu Kopfschmerzen in Bezug auf andere Programme führt, die nicht erwarten, dass sich etwas in /opt/local
befindet, Dinge mit Root-Berechtigungen installiert werden usw. & Es gibt einige Dinge, die im Allgemeinen am besten nicht mit MacPorts installiert werden (z Sie können Rails über MacPorts installieren, aber Sie wären verrückt, wenn Sie es nicht über das normale Gem-Management von Ruby installieren würden. Davon abgesehen bin ich ein großer Fan der MacPorts-Philosophie, eine eigene kleine Welt aufzubauen &, die sich nicht auf eine vorgefertigte OS X-Bibliothek verlässt – wenn sie funktioniert und meistens alles tut ist ganz einfach. Was Sie wirklich von einem Paketmanager wollen. Und wie ich bereits erwähnte, ist es zu diesem Zeitpunkt verdammt schnell, die meisten Dinge einzurichten.
Ich hoffe, einiges davon war nützlich.
Kommentare
- “ Wie bereits erwähnt, besteht allgemeiner Konsens darüber, dass MacPorts durch HB &, zu Recht oder zu Unrecht, das zieht mehr Menschen an. “ … das fühlt sich wie eine sehr oberflächliche Aussage an …Beliebt zu sein und Qualität zu bieten, ist nicht dasselbe und bedeutet keineswegs, dass die zweite “ “ durch die erste ersetzt wird.
- MacPorts verwendet jetzt Github. Siehe guide.macports.org/#project.github : “ Das MacPorts-Projekt verwendet das verteilte Git-Versionskontrollsystem um den Code für das gesamte Projekt zu verwalten. Unsere Master-Repositorys werden auf GitHub gehostet. Wir verwalten öffentliche Repositorys für fast unseren gesamten Projektcode und unsere Dokumentation, einschließlich eines GitHub-Repositorys für das MacPorts-System selbst, für die MacPorts-Ports und sogar für das Handbuch, das Sie gerade lesen. “
Antwort
Andere Antworten (bisher) scheinen nicht erwähnt zu haben, dass MacPorts bietet hervorragende Unterstützung für ältere Versionen von macOS. Homebrew unterstützt nur die Betriebssysteme, die derzeit von Apple unterstützt werden, was normalerweise die letzten drei Versionen bedeutet. Ab August 2020 sind beispielsweise nur Catalina, Mojave und High Sierra mit Homebrew kompatibel.
Im Gegensatz dazu können MacPorts auf Tiger (!) Installiert werden, und das Projekt verwaltet spezielle Patches, um Software zu behalten wo immer möglich arbeiten. Sie verwalten auch eine “ Legacy Support “ -Bibliothek, die Symbole von neuen Versionen von macOS auf ältere zurückportiert. Das Verknüpfen mit dieser Bibliothek während des Kompilierens kann dazu führen, dass alle Arten neuer Software plötzlich auf älteren Systemen funktionieren!
Wenn Sie also eine alte Version von macOS ausführen oder der Meinung sind, dass Sie auf einem bleiben müssen Das aktuelle Betriebssystem nach dem Ablaufdatum von Apple ist definitiv ein Grund, sich für MacPorts zu entscheiden.
Antwort
Brew war vollständig glatt für mich zu verwenden, so kann ich nicht über seine Nachteile sagen. Einige Nachteile von MacPorts:
- Sie müssen Xcode von der Apple Developer Site installieren, daher müssen Sie über ein Apple Developer Account verfügen (für die jetzt eine Kreditkarte erforderlich ist) und laden Sie fast 3,5 GB herunter.
- Wenn Port 873 (rsync) von Ihrer Firewall blockiert wird, müssen Sie Manuelles Konfigurieren des HTTPS-Protokolls ;
- Der HTTP (S) -Server, von dem Pakete heruntergeladen werden, ist (häufig) extrem langsam (gestern unter 20 KiB / s; getestet von einigen sehr zuverlässigen Gigabit-Servern) Verbindungen in verschiedenen Ländern) und kann mit dem Fehler fehlschlagen. Der Vorgang ist zu langsam. In den letzten 60 Sekunden wurden weniger als 1024 Bytes / Sek. übertragen , sodass Sie gezwungen sind, alles von Grund auf neu zu erstellen.
Zu den ersten beiden Punkten gibt es einige sehr beliebte Fragen.
Kommentare
- Dies war meine Erfahrung Die Installation von ImageMagick auf 10.6 war sehr einfach, aber nicht ‚ den JP2-Delegaten nicht einschließen. imagemagick.org/script/binary-releases.php
- Für Brew und Macports sind nur Xcode-Befehlszeilentools erforderlich.
- @Mark Ich ‚ bin mir nicht sicher, was du meinst, aber das Brauen hat ohne Xcode perfekt für mich funktioniert.
- Du ‚ benötigt einen Brauer für und MacPorts, der über die Xcode-Befehlszeilentools installiert werden kann. Sie benötigen die Xcode -Anwendung nicht.
- Ich habe vergessen, wie hässlich es ist, dieses Ding hinter einer Firewall zu synchronisieren … yikes!