Pourquoi installons-nous des logiciels via des fichiers `.dmg`?

28

Lorsque je souhaite installer un logiciel, je télécharge généralement un .dmgfichier (Disk iMaGe). Lorsque je l'ouvre, ce .dmgfichier ressemble à ce que j'appellerais un "disque virtuel" (d'où son nom, je présume) et est répertorié Findersous devices. Il est également répertorié Disk Utilitysous Disk Imageset il semble qu'il puisse être effacé ou démonté comme n'importe quel autre disque.

  • Quelle est la logique pour laquelle le logiciel doit être installé avec un tel "disque virtuel"?
  • Pourquoi ne s'agit-il pas d'un simple fichier binaire ou je ne sais pas quoi?
Remi.b
la source
12
Installation du logiciel peut toujours provoquer d un m a g e.
dessert
1
Un simple fichier binaire serait un programme d'installation. Avec DMG, vous copiez simplement l'application sans exécuter de programme d'installation.
Thorbjørn Ravn Andersen du
10
La plupart des applications Mac ressemblent à des fichiers uniques, mais en réalité, ce sont des "ensembles d'applications", essentiellement des dossiers contenant de nombreux fichiers à l'intérieur. Le Finder l'affiche en tant qu'entité unique, mais vous pouvez cliquer dessus avec le bouton droit et sélectionner "Ouvrir le contenu" pour inspecter les fichiers à l'intérieur. Donc, "simple binaire" ne fonctionnera pas.
el.pescado
4
Historique: blog.barthe.ph/2011/04/05/dmg_history
Wayfaring Stranger
Le dernier paragraphe devrait être une question distincte car il donne lieu à des réponses distinctes
user151019

Réponses:

34

Les DMG ont quelques caractéristiques clés qui les rendent supérieures aux anciennes fermetures à glissière

  • C'est un système de fichiers complet (ce qui signifie qu'ils peuvent stocker des autorisations de fichiers, avoir des arrière-plans de dossiers personnalisés, etc.)
  • Ils prennent en charge les CLUF «obligatoires» avant le montage, ce qui est bien pour les choses légales
  • Fournissez un environnement d'exécution plus fiable. Si vous devez faire des trucs de chemin absolus pour l'installation (ce que vous ne devriez pas faire), vous pouvez préparer le DMG, le marquer en lecture seule et l'utiliser pour installer

La principale caractéristique est qu'ils prennent en charge le système de fichiers HFS + complet. Zip (généralement, les versions Linux prennent parfois en charge les autorisations) est stupide et ne prend en charge que le regroupement de fichiers et de dossiers et rien d'autre. Pas de métadonnées, juste les fichiers.

Sirènes
la source
14
Points supplémentaires: à partir de la version 10.12, les fichiers .dmg peuvent être signés par code pour l'intégrité (les fichiers .zip peuvent contenir du code signé, mais ne peuvent pas eux-mêmes être signés d'une manière qui survivra au téléchargement). De plus, l'option "simple binaire" ne fonctionne pas du tout, car la plupart des logiciels macOS sont fournis sous forme de packages - dossiers avec une structure interne complexe (cachée) - plutôt que de fichiers simples.
Gordon Davisson
9
"Zip est stupide et ne supporte que ..." - Je ne suis pas d'accord avec cette évaluation. Ce n'est pas parce que quelque chose est simple que c'est stupide. La simplicité est une vertu, et les métadonnées de fichier (souvent invisibles) sont rarement de quelque valeur que ce soit dans un programme d'installation distribué.
Dai
14
@Dai, il veut dire stupide comme stupide; le programme ne sait pas ce qu'il fait - pas qu'il soit inutile.
Tim
3
Je suppose que ZIP n'est pas trop une bonne comparaison. Pourquoi pas par exemple TAR compressé comme tar.gz? Il stocke les autorisations.
Ruslan
2
@Dai, "les métadonnées des fichiers sont rarement (souvent invisibles) de quelque valeur que ce soit dans un programme d'installation distribué" - cela est vrai sur de nombreuses autres plates-formes, mais Apple a une longue histoire de stockage de contenu critique (c'est-à-dire des icônes!) Dans des "fourchettes de ressources" ( ces jours-ci, xattrs).
Charles Duffy
3

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.

Wes Toleman
la source
2

Existe-t-il une autre utilisation des fichiers .dmg que l'installation du logiciel?

Une autre fonctionnalité utile sur les DMG (puisque vous avez posé des questions sur d'autres utilisations) est la possibilité de créer un espace de stockage crypté et de stocker des fichiers dans cet espace protégé. Utile si vous souhaitez protéger certains fichiers, mais pas crypter l'intégralité de votre disque dur principal.

Voir Utilitaire de disque pour macOS Sierra: créer une image disque à l'aide de l'Utilitaire de disque pour plus d'informations sur la création de fichiers .dmg chiffrés.

Ken
la source
Le cryptage est cependant déjà réalisable sans avoir besoin de .dmg. Unix ne crypte-t-il pas?
Pacerier
@ Pacerier - oh pour sûr - comme tout avec Linux / Unix, il y a plus d'une façon de faire quelque chose.
Ken