Le logiciel Mac peut être fourni sous forme de .appbundle d'applications (essentiellement un dossier contenant toutes les ressources du programme) ou sous la forme d' .pkgun programme d'installation qui est un programme qui installe des applications d'une manière similaire à Windows.
Seuls les outils de ligne de commande sont disponibles sous forme de binaires simples qui seraient ensuite copiés quelque part dans l'utilisateur, PATHpar exemple /usr/local/bin.
Ceux-ci peuvent être regroupés dans une image disque OS X / macOS ( .dmg) ou dans un format d'archive traditionnel tel que .zipou .tar.
Quelle est la logique pour laquelle le logiciel doit être installé avec un tel "disque virtuel"?
Cela dépend en grande partie du développeur. A .dmgn'est qu'un disque dur virtuel et non un programme d'installation. Le choix d'utiliser un .dmgconcerne l'emballage plutôt que l'installation.
Si une application est un .appbundle simple, elle est autonome et peut être exécutée en double-cliquant dessus. Il est généralement copié pour plus /Applicationsde commodité.
En plus du chiffrement et des CLUF à l'ouverture, l'avantage d'un type .dmgsur une archive est la marque. .dmgLes icônes peuvent être personnalisées, des images d'arrière-plan personnalisées et la disposition du contenu peut être corrigée. .dmgLes s sont généralement également en lecture seule afin que le contenu reste exactement tel que le développeur l'a voulu.
Ils obligent également l'utilisateur à sélectionner où il souhaite une application; lorsque vous décompressez une archive, le contenu est généralement extrait à l'endroit où se trouvait l'archive. En revanche, .dmgs sera monté dans le système de fichiers, puis le .appbundle doit être explicitement copié.
Pourquoi ne s'agit-il pas d'un simple fichier binaire ou je ne sais pas quoi?
Une application Mac est plus qu'un simple binaire. En plus du binaire (situé à <appname>.app/Contents/MacOS/), an .appinclut un certain nombre de ressources dans <appname>.app/Contents/Resources/. Ces ressources incluent des icônes, des graphiques et des fichiers de localisation tels que en.lproj.