Mac-Software kann als .app
Anwendungspaket (im Wesentlichen ein Ordner, der alle Programmressourcen enthält) oder als .pkg
Installationsprogramm geliefert werden, bei dem es sich um ein Programm handelt, das Anwendungen ähnlich wie Windows installiert.
Es sind nur Befehlszeilentools als einfache Binärdateien verfügbar, die dann an eine beliebige Stelle im Benutzer kopiert werden, PATH
z /usr/local/bin
.
Diese können in einem OS X / macOS-Image ( .dmg
) oder einem herkömmlichen Archivformat wie .zip
oder gepackt werden .tar
.
Was ist die Logik, für die Software mit einer solchen "virtuellen Festplatte" installiert werden muss?
Dies liegt weitgehend beim Entwickler. A .dmg
ist nur eine virtuelle Festplatte, kein Installationsprogramm. Bei der Auswahl von a .dmg
geht es eher um die Verpackung als um die Installation.
Wenn es sich bei einer Anwendung um ein einfaches .app
Bundle handelt, ist sie in sich geschlossen und kann durch Doppelklicken ausgeführt werden. Es wird der Einfachheit halber häufig kopiert /Applications
.
Neben der Verschlüsselung und den EULAs beim Öffnen besteht der Vorteil eines Archivtyps im .dmg
Branding. .dmg
s können benutzerdefinierte Symbole, benutzerdefinierte Hintergrundbilder und das Layout der Inhalte festgelegt werden. .dmg
s sind in der Regel auch schreibgeschützt, damit der Inhalt genau so bleibt, wie es der Entwickler beabsichtigt hat.
Sie zwingen den Benutzer auch, auszuwählen, wo er eine Anwendung haben möchte. Wenn Sie ein Archiv entpacken, wird der Inhalt normalerweise an den Ort extrahiert, an dem sich das Archiv befand. Im Gegensatz dazu wird .dmg
s im Dateisystem eingebunden und das .app
Bundle muss dann explizit kopiert werden.
Warum kommt es nicht als einfache Binärdatei oder ich weiß nicht was?
Eine Mac-Anwendung ist mehr als nur eine Binärdatei. Neben der Binärdatei (befindet sich unter <appname>.app/Contents/MacOS/
) .app
enthält eine Reihe von Ressourcen in <appname>.app/Contents/Resources/
. Diese Ressourcen umfassen Symbole, Grafiken und Lokalisierungsdateien wie en.lproj
.