Was ist das offizielle Installationsprogramm für Unix-Pakete unter Mac OS?

10

Ich bin etwas verwirrt über die Installation von Standard-Unix-Paketen unter Mac OS X. Zum Beispiel habe ich / usr / bin / svn, SVN v.1.4.4, aber FinkCommander sagt, dass svn nicht installiert ist. Das gleiche gilt für andere Pakete wie Emacs usw.

Ist das nur eine falsche FinkCommander Einstellung? Derzeit ist es so eingestellt, dass alles installiert wird /sw, was noch nicht einmal in der ist PATH. Muss ich es nur so einstellen, dass es Pakete installiert /usrund die installierte Software erkennt? Ich möchte nicht von allem doppelte Pakete installieren, und es ist ziemlich seltsam, dass der FinkCommander nicht mit der installierten Software synchron zu sein scheint.

Oder gibt es ein anderes Installationsprogramm, das ich verwenden sollte? Ist Mac Ports das empfohlene Installationsprogramm?

(Ich verwende Mac OS 10.5.8.)

dehmann
quelle
Gute Frage und tolle Antworten. Sie können auch diese: superuser.com/questions/28529/macports-fink-etc
Jonik
Was MacPorts betrifft: Es ist einfach verrückt, jedes Paket von Grund auf neu zu kompilieren. Ich stelle fest, dass ich den Laptop tagelang und nachts laufen lasse, nur um R mit MacPorts zu installieren (das zuerst gcc43, perl, automake, glib2 und viele mehr kompiliert ...).
Dehmann
Wenn Sie vorgefertigte Binärpakete möchten, schauen Sie sich Rudix an .
Telemachus

Antworten:

10

Es gibt keinen offiziellen Paketmanager für OS X.

Fink , MacPorts und Homebrew bieten unterschiedliche Funktionen, um diese Lücke zu schließen.

Viele Benutzer haben darauf hingewiesen:

  • Vermeiden Sie die Verwendung von / usr
  • Bis Sie Ihren PATH konfiguriert haben, werden keine Pakete aus verschiedenen Verzeichnissen gefunden.
Jeremy L
quelle
Danke für die Antwort. Das ist ziemlich enttäuschend. Warum können sie keinen richtigen Paketmanager anbieten? :-(
Dehmann
5
Ihre Zielgruppe würde nicht wissen, was zu tun ist. Der Rest von uns macht es möglich :-)
Jeremy L
Ich wähle es als akzeptierte Antwort, aber ich würde hinzufügen, dass es tatsächlich in Ordnung ist, mehrere Manager zu verwenden. Zumindest Fink und MacPorts können koexistieren, da sie in verschiedenen Verzeichnissen installiert werden.
Dehmann
7

Obwohl es keinen offiziellen Unix / FOSS-Paketmanager für Mac OS X gibt, sollte beachtet werden, dass MacPorts von den Mac OS X / Darwin-Ingenieuren von Apple erstellt wurde und weiterhin hauptsächlich gewartet wird. Die macports.org-Website wird im Rahmen von Apples Projekt "MacOSForge.com" auf Apples Servern gehostet. Da Mac OS X / Darwin * BSD-basiert ist, stammen viele der Unix-Layer-Software-Ingenieure von Apple aus der * BSD-Tradition, weshalb sie MacPorts nach dem Modell der * BSD-"Ports" modellierten.

Fink war der ursprüngliche Open-Source-Paketmanager für Mac OS X, hat jedoch keine enge organisatorische Bindung zu Apple und entschied sich dafür, der Tradition von Debian Linux apt-get zu folgen.

Ich bin mir nicht sicher, ob die oben genannten Details ausreichen, um sie übereinander zu empfehlen. Ich würde sagen, es kommt darauf an, welches Modell Sie bereits besser kennen. Wenn Sie mit apt-get besser vertraut sind, entscheiden Sie sich für Fink. Wenn Sie mit BSD-"Ports" besser vertraut sind, sollten Sie sich für MacPorts entscheiden.

Wie bereits erwähnt, sollten Sie die Standard-Unix-Tools von Mac OS X nicht verwenden. Fink und MacPorts haben diese Lektion bereits gelernt und installieren ihre eigenen Kopien von Dingen in ihren eigenen Verzeichnishierarchien (/ sw für Fink, / opt für MacPorts). Homebrew hat diese Lektion noch nicht vollständig gelernt, aber sie wird, sobald einige Benutzer Homebrew verwenden, um die eingebaute Kopie von beispielsweise Perl oder Python zu aktualisieren, und es gibt ein unvorhergesehenes Kompatibilitätsproblem, das eingebaute Mac-Teile zerstört OS X, z. B. Installationspakete (Mac OS X .pkg-Bundle-Dateien), die Perl-Skripts verwenden, um einige der Installationsaufgaben auszuführen.

Spiff
quelle
5
Soweit ich weiß, wird Homebrew unter / usr / local / installiert und überschreibt daher niemals das Python-System.
Pepijn
4
Mit Homebrew können Sie Ihre vorhandenen Komponenten nicht überschreiben. OSX wird standardmäßig ohne / usr / local ausgeliefert.
Paul Robinson
5

Es gibt keinen offiziellen Paketmanager für OS X.

Fink sagt wahrscheinlich, dass es nicht installiert ist, weil es nicht im Fink-Pfad installiert ist. Ich hatte Probleme, wenn ich etwas von Fink oder MacPorts installierte oder Kopien mit unterschiedlichen Versionsnummern duplizierte.

Wählen Sie eine und bleiben Sie dabei. Wenn Sie der Meinung sind, dass Sie Änderungen vornehmen müssen, sollten Sie den anderen Paketmanager löschen und ihn neu installieren.

Josh K
quelle
3

Die Version von svn, die Sie sehen, wurde mit Mac OS X geliefert - nicht von Fink oder einer anderen Quelle.

Sie können verschiedene Versionen mit dem typeBefehl bash identifizieren . Zum Beispiel verwende ich MacPorts und installiere eine neuere Version von sqlite3:

$ type -a sqlite3
sqlite3 is /opt/local/bin/sqlite3
sqlite3 is /usr/bin/sqlite3

Die Version in / opt / local / bin stammt von MacPorts, die Version in / usr / bin von Mac OS X.

Ich empfehle, dass Sie keine Fink- oder MacPorts-Binärdateien in / usr installieren - lassen Sie diese in Ruhe. Lassen Sie Fink in / sw oder MacPorts in / opt / local installieren. Passen Sie Ihren PATHan, um die Fink / MacPorts-Versionen vor den Standardversionen zu finden

Doug Harris
quelle
Mit ähnlichen Flags können Siewhich -a sqlite3
Jeremy L