Ich migriere gerade von Ubuntu Linux auf Mac und alles ist neu und ich lerne eine Menge Sachen neu.
Unter Linux hatte ich das ausgezeichnete apt-get, um Softwarepakete zu verwalten. Ich habe auf dem Mac nach einer Alternative gegoogelt und bin auf MacPorts, Fink und Homebrew gestoßen.
Ich werde diesen Computer hauptsächlich zum Entwickeln von Ruby on Rails-Anwendungen verwenden.
Also, was sind die Unterschiede zwischen ihnen? Welches sind die Vor- und Nachteile? Welches ist am besten gepflegt und hat mehr Pakete?
Definitiv Homebrew. Ich habe mit Fink angefangen, bin dann zu MacPorts gewechselt (glücklicher), dann Homebrew (viel, viel glücklicher). Dies sind meine Gründe für die Verwendung von jedem (eine Pro-Liste, wenn Sie so wollen):
/opt/local
/usr/local
(Intel) oder /opt/homebrew
(Apple Silicon)/opt/pkg
Es ist unabhängiger von Mac OS X, das heißt, MacPorts ignoriert einfach viele der Systembibliotheken und Software, die bereits in Mac OS X verfügbar sind, und zieht stattdessen eine eigene herunter , was langsamer sein könnte, wenn das von Ihnen installierte Dienstprogramm einige große benötigt Bibliotheken und Software.
Diese Art der Auswahl ist jedoch sicherer, da die von Ihnen installierten Pakete weniger von Apples Systemaktualisierungs-/Upgrade-Verfahren beeinflusst werden.
Es ist stärker abhängig von vorhandenen, von Mac OS X installierten Paketen, wodurch die Installation von Paketen beschleunigt und redundante Bibliotheken minimiert werden.
Es besteht jedoch das Risiko, dass installierte Pakete aufgrund von Apples Systemaktualisierungen/-upgrades beschädigt werden könnten.
Das sind also die beiden unterschiedlichen Arten von Kompromissen.
Außerdem übernimmt Homebrew standardmäßig /usr/local , was manche Leute nicht mögen , weil es irgendwie mit der Unix-Tradition in Konflikt steht und Probleme verursachen könnte, wenn Sie dort bereits etwas installiert haben (MySQL usw.)
Abgesehen von diesen Unterschieden können Sie in Anbetracht der Pakete, die diese beiden anbieten können, mit diesen beiden Befehlen überprüfen, ob Sie bereits MacPorts/Homebrew installiert haben, die Ihnen die Pakete zeigen, die sie derzeit bereitstellen:
port list | wc -l
brew search | wc -l
Und Sie werden feststellen, dass MacPorts viel mehr Pakete als Homebrew hat.
(19399 vs. 3583 am 13. Mai 2016)
/usr/local
?/usr/local/
"nicht unterstützt" oder "entmutigt" ist.Nur um einige meiner eigenen Gedanken hinzuzufügen, die zumindest Ende 2014 wahr erscheinen.
Homebrew hat vor ein paar Jahren definitiv die Oberhand in Bezug auf Mindshare. Sie werden viele Blogs finden, in denen Leute darüber sprechen, wie viel glücklicher sie mit Homebrew sind – normalerweise wegen der ganzen Sache „MacPorts zieht die ganze Welt an“ vs. „Homebrew nutzt, was Sie bereits haben“.
Meiner Meinung nach ist MacPorts jetzt jedoch ein anderes Biest als noch vor ein paar Jahren. Als ich zum ersten Mal zu OS X wechselte und MacPorts verwendete, war die MP-Philosophie tatsächlich frustrierend, da fast alles aus dem Quellcode erstellt wurde. Eine Neuinstallation war besonders mühsam/langsam. Im Laufe des letzten Jahres oder so scheint es jedoch, basierend auf meinen eigenen Eindrücken, so zu sein, dass 90% der MP-Pakete Binärdateien sind und die Installation jetzt wirklich sehr schnell ist. Soweit ich weiß, bewegt sich Homebrew mit "Bottles" auch in diese Richtung, aber ich habe den Eindruck, dass die meisten Dinge, die Sie zu diesem Zeitpunkt über HB installieren, aus den Quellen kompiliert werden.
Also, um nur eine gegenteilige Meinung zu vertreten, MacPorts scheint heutzutage tatsächlich die "schnellere" Option zu sein. Die Meinungen der meisten Leute über MP scheinen jedoch auf Erfahrungen aus den Jahren 2011-12 oder so zu beruhen und berücksichtigen dies nicht wirklich. Nehmen Sie dies jedoch mit einem Körnchen Salz, da ich kein regelmäßiger HB-Benutzer bin (und es ziemlich schmerzhaft ist, beide nebeneinander zu verwenden).
Ich denke jedoch, dass HB Vorteile hat, die bedeuten, dass es auf lange Sicht wahrscheinlich "den Krieg gewinnen" wird
Ansonsten haben YaOZl & kLy den Hauptunterschied in Bezug auf sudo, Abhängigkeiten usw. ziemlich gut abgedeckt. Persönlich finde ich, dass MacPorts manchmal zu einigen Kopfschmerzen führt, wenn andere Programme nicht erwarten, dass etwas in ist /opt/local
, Dinge mit Root-Rechten installiert werden usw. & es gibt einige Dinge, die im Allgemeinen am besten nicht mit MacPorts installiert werden (z. B. können Sie Rails über MacPorts, aber Sie wären verrückt, es nicht über Rubys normale Gem-Verwaltung zu installieren). Abgesehen davon bin ich ein großer Fan der MacPorts-Philosophie, eine eigene kleine Welt aufzubauen und sich nicht auf eine vorgefertigte OS X-Bibliothek zu verlassen - wenn es funktioniert, und das tut es meistens, ist alles kinderleicht. Was Sie wirklich von einem Paketmanager erwarten. Und wie ich bereits erwähnt habe, ist es zu diesem Zeitpunkt verdammt schnell, die meisten Dinge einzurichten.
Hoffe, einiges davon war nützlich.
Etwas, das andere Antworten (bisher) nicht erwähnt zu haben scheinen, ist, dass MacPorts eine hervorragende Unterstützung für ältere Versionen von macOS bietet. Homebrew unterstützt nur die Betriebssysteme, die derzeit von Apple unterstützt werden, was normalerweise die letzten drei Versionen bedeutet. Beispielsweise sind ab Februar 2022 nur Monterrey, Big Sur und Catalina mit Homebrew kompatibel.
Im Gegensatz dazu können MacPorts auf Tiger (!) installiert werden, und das Projekt pflegt spezielle Patches, um die Software wo immer möglich am Laufen zu halten. Dazu gehört eine „Legacy Support“-Bibliothek, die Funktionen von neueren Versionen von macOS auf ältere zurückportiert; Das Linken gegen diese Bibliothek während des Kompilierens kann dazu führen, dass eine Vielzahl neuer Software plötzlich auf älteren Systemen funktioniert!
Wenn Sie also eine alte Version von macOS verwenden oder glauben, dass Sie möglicherweise nach dem Ablaufdatum von Apple auf einem aktuellen Betriebssystem bleiben müssen, sollten Sie sich wahrscheinlich für MacPorts entscheiden.
Ich bin in China und der Besuch von Github schlägt oft fehl, was die Installation von Brew ziemlich mühsam macht. Ich kenne einige Brew Mirrors in China, also habe ich ein Problem gegen Brew aufgeworfen . Sie haben es in 2.3 behoben . Aber selbst damit funktioniert die Installation von Brew immer noch nicht, z. B. habe ich mehrmals getroffen, dass Brew nach der Installation keine Formel finden kann.
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.
Jetzt weiß ich, dass ich "erneut tippen" muss, aber während dieser Zeit wusste ich einfach nicht den genauen Grund, außer dass die Installation von Brew nicht erfolgreich war.
Aus Verzweiflung habe ich den Macport gewechselt und es funktioniert bisher ganz reibungslos.
Brew war für mich völlig problemlos zu verwenden, daher kann ich nichts über seine Nachteile sagen. Einige Nachteile von MacPorts:
Es gibt mehrere sehr beliebte Fragen zu den ersten beiden Punkten.
Fahrrad