Mac OS X – Installieren von Software über DMG vs. *nix-Befehlszeilenstil

Mac OS X – Installieren von Software über DMG vs. *nix-Befehlszeilenstil

Neuer Mac-Besitzer hier, aber langjähriger Linux-Benutzer. Kann mir jemand die Unterschiede zwischen der Installation einer Software wie Subversion von einem .dmg-Image und der Kompilierung und Installation aus der Quelle über die Befehlszeile beschreiben? Bleibt die Software am selben Ort? Welche anderen Unterschiede gibt es, z. B. Deinstallationsverfahren? Was sind Ihrer Meinung nach die Vor-/Nachteile des einen Ansatzes gegenüber dem anderen?

Antwort1

A .dmgist lediglich eine virtuelle Festplatte („Disk-Image“) und hat allein nichts mit der Installation zu tun.

Wenn das Disk-Image nur eine Anwendung enthält (normalerweise wird ein erklärender Text angezeigt, der Sie auffordert, es in Ihren Anwendungsordner zu ziehen), sind der gesamte Code und alle Supportdateien in dieser einen Datei enthalten. Die Anwendung ist für die Einrichtung beim ersten Start verantwortlich und für die Bereitstellung eines Deinstallationsmechanismus, falls vorhanden.Istspäter installiert werden. Viele Entwickler verwenden dieFunkelnFramework, um Updates zu finden und zu installieren.

Wenn das Disk-Image ein Paket ( .pkgoder .mpkg) enthält, handelt es sich um ein Installationsprogramm. Wenn Sie es ausführen, können Sie Dateien überall auf Ihrem System installieren und Skripte vor und nach der Installation ausführen. Es gibt keinen integrierten Deinstallations- oder Aktualisierungsmechanismus (das System führt jedoch ein Protokoll der installierten Pakete. Wenn Sie also später ein Installationspaket für eine neuere Version der Software ausführen, kann es sich anders verhalten als bei einer Erstinstallation). Auch in diesem Fall ist der Entwickler für die Deinstallation und für Updates verantwortlich. Verantwortliche Entwickler installieren in Standardverzeichnisse ( /Applications, /Libraryund ~/Library, /usr, usw.) .

Für Befehlszeilensoftware, die Sie normalerweise aus dem Quellcode installieren, empfehle ich einen Paketmanager wieMacPorts(meine Vorliebe) oderFinkgegenüber der Verwendung eines Installationspakets. Beide Paketmanager richten ein eigenständiges Verzeichnis ( /optbzw. /sw) mit allen Supportdateien und ausführbaren Codes für die von ihnen installierte Software ein (und die meisten Pakete respektieren dies) und fügen sich selbst zu Ihrem hinzu $PATH. Ein großer Vorteil der Verwendung eines Paketmanagers besteht darin, dass er die installierte Software im Auge behält und Ihnen die Möglichkeit gibt, sie zu aktualisieren oder zu deinstallieren.

Antwort2

Die Installation aus einer .dmg-Datei erfolgt normalerweise einfach per Drag & Drop in /Applications. Die Deinstallation ist meiner Meinung nach ein wunder Punkt bei der Mac-Erfahrung. Sie können die Datei aus den Programmen löschen, aber nur das, was im .app-Wrapper gekapselt ist, geht verloren. Alle zusätzlichen Konfigurationsdateien verschwinden nicht.

Ein weiterer Installationspfad, den Sie berücksichtigen sollten, istMacPortsund/oderFink. Diese sind in gewisser Weise ähnlich wie apt-get oder yum in der Linux-Welt. Sie bieten ein Befehlszeilenprogramm zum Abrufen, Kompilieren und Installieren gängiger Software. Normalerweise ist es so einfach wie:

$ sudo port install svn

(Macport-Beispiel)

Antwort3

Dies ist etwas kompliziert, da es innerhalb der DMG-Datei eine einfache Drag-and-Drop-Lösung oder eine.PKG, das Dinge an jedem beliebigen Ort installieren kann..pkg-Dateien hinterlassen normalerweise Quittungen (normalerweise in /Library/Receipts), allerdings bietet OS X keine einfache Möglichkeit, diese Quittungen zu verwalten.

Pacifist ist eine nützliche App, die .pkg-Dateien (die viele Befehlszeilen-Apps für benutzerdefinierte Installationsorte verwenden) vor der Installation untersucht, damit Sie genau wissen, wo Dinge installiert werden können. Sie können dann feststellen, ob Ihre selbst kompilierte Version am selben Ort installiert würde oder nicht und ob es zu Konflikten mit Systemversionen kommt:

http://www.charlessoft.com/

Insbesondere müssen Sie sicherstellen, dass Ihr Pfad die gewünschte Version widerspiegelt, die Sie verwenden möchten, wenn die Installation an verschiedenen Orten erfolgt. Ich vermute, dass Subversion mit mehreren installierten Versionen kein Problem darstellen sollte ... Für Ruby verwende ich einen Ruby19-Namen für die ausführbare Ruby-Datei, um Pfadprobleme mit inkompatiblem Code zu vermeiden.

Es gibt ein weniger leistungsfähiges, aber kostenloses Quicklook-Plugin für .pkg-Dateien, das die grundlegende Aufgabe erfüllt, anzuzeigen, wo die Dinge installiert werden:

http://www.mothersruin.com/software/SuspiciousPackage/

verwandte Informationen