¿Por qué instalamos software a través de archivos `.dmg`?

28

Cuando quiero instalar software, normalmente descargo un .dmgarchivo (Disk iMaGe). Cuando lo abro, este .dmgarchivo se parece a lo que yo llamaría un "disco virtual" (de ahí su nombre, supongo) y aparece en la lista Finderdebajo devices. También aparece en la lista Disk Utilitydebajo Disk Imagesy parece que se puede borrar o desmontar como cualquier otro disco.

  • ¿Cuál es la lógica para la cual el software necesita ser instalado con tal "disco virtual"?
  • ¿Por qué no viene como un simple archivo binario o no sé qué?
Remi.b
fuente
12
Instalación del software siempre puede causar d un m un g e.
postre
1
Un archivo binario simple sería un instalador. Con DMG, simplemente copie la aplicación sin ejecutar un instalador.
Thorbjørn Ravn Andersen
10
La mayoría de las aplicaciones de Mac parecen archivos individuales, pero en realidad son "paquetes de aplicaciones", básicamente una carpeta con muchos archivos en su interior. Finder lo muestra como una entidad única, pero puede hacer clic derecho sobre ellos y seleccionar "Abrir contenido" para inspeccionar los archivos en su interior. Entonces, "binario simple" no funcionará.
el.pescado
44
Historia: blog.barthe.ph/2011/04/05/dmg_history
Wayfaring Stranger
El último párrafo debería ser una pregunta separada, ya que está dando lugar a respuestas separadas
user151019

Respuestas:

34

Los DMG tienen algunas características clave que los hacen superiores a las cremalleras antiguas.

  • Son un sistema de archivos completo (lo que significa que pueden almacenar permisos de archivos, tener fondos de carpetas personalizados, etc.)
  • Admiten EULA "obligatorios" antes del montaje, lo que es bueno para asuntos legales
  • Proporcionar un entorno de ejecución más confiable. Si tiene que hacer cosas de ruta absoluta para la instalación (qué tbh no debería), puede preparar el DMG, marcarlo como de solo lectura y usarlo para instalar

Realmente, la característica clave es que admiten el sistema de archivos HFS + completo. Zip (comúnmente, las versiones de Linux a veces admiten permisos) es estúpido y solo admite la agrupación de archivos y carpetas y nada más. Sin metadatos, solo los archivos.

Sirenas
fuente
14
Puntos adicionales: a partir de 10.12, los archivos .dmg pueden ser firmados con código por integridad (los archivos .zip pueden contener código firmado, pero no pueden ser firmados de una manera que sobreviva a la descarga). Además, la opción "binario simple" no funciona en absoluto, porque la mayoría del software macOS viene como paquetes (carpetas con estructura interna compleja (oculta)) en lugar de archivos simples.
Gordon Davisson el
9
"Zip es estúpido y solo admite ..." - No estoy de acuerdo con esa evaluación. El hecho de que algo sea simple no significa que sea estúpido. La simplicidad es una virtud, y rara vez son metadatos de archivo (a menudo invisibles) de algún valor en un instalador distribuido.
Dai
14
@Dai quiere decir estúpido como tonto; el programa no sabe lo que está haciendo, no es que sea inútil.
Tim
3
Supongo que ZIP no es una buena comparación. ¿Por qué no, por ejemplo, un TAR comprimido tar.gz? Sí almacena permisos.
Ruslan
2
@Dai, "rara vez hay metadatos de archivo (a menudo invisibles) de algún valor en un instalador distribuido", es cierto en muchas otras plataformas, pero Apple tiene una larga historia de almacenamiento de contenido crítico (es decir, ¡iconos!) En "tenedores de recursos" ( en estos días, xattrs).
Charles Duffy
3

El software de Mac se puede entregar como un .apppaquete de aplicaciones (esencialmente una carpeta que contiene todos los recursos del programa) o como un .pkginstalador que es un programa que instala aplicaciones de manera similar a Windows.

Solo las herramientas de línea de comandos están disponibles como archivos binarios simples que luego se copiarían en algún lugar del usuario PATHcomo /usr/local/bin.

Estos se pueden empaquetar en una imagen de disco OS X / macOS ( .dmg) o en un formato de archivo tradicional como .zipo .tar.


¿Cuál es la lógica para la cual el software necesita ser instalado con tal "disco virtual"?

Esto depende en gran medida del desarrollador. A .dmges solo un disco duro virtual, no un instalador. La elección de utilizar un .dmges sobre el embalaje en lugar de la instalación.

Si una aplicación es un .apppaquete simple , es autónoma y se puede ejecutar haciendo doble clic en ella. Se copia comúnmente /Applicationspara mayor comodidad.

Además del cifrado y los EULA en la apertura, el beneficio de un .dmgtipo de archivo sobre un archivo es la marca. .dmgSe pueden asignar iconos personalizados, imágenes de fondo personalizadas y se puede arreglar el diseño de los contenidos. .dmgPor lo general, los s también son de solo lectura, por lo que el contenido permanecerá exactamente como el desarrollador lo diseñó.

También obligan al usuario a seleccionar dónde le gustaría una aplicación; cuando descomprime un archivo, el contenido generalmente se extraerá a donde se encuentre el archivo. Por el contrario, .dmgs se montará en el sistema de archivos y luego el .apppaquete debe copiarse explícitamente.


¿Por qué no viene como un simple archivo binario o no sé qué?

Una aplicación para Mac es más que un binario. Además del binario (ubicado en <appname>.app/Contents/MacOS/), .appincluye varios recursos en <appname>.app/Contents/Resources/. Estos recursos incluyen iconos, gráficos y archivos de localización como en.lproj.

Wes Toleman
fuente
2

¿Hay algún otro uso para los archivos .dmg que no sea la instalación del software?

Otra característica útil sobre los DMG (dado que usted preguntó sobre otros usos) es la capacidad de crear un espacio de almacenamiento cifrado y almacenar archivos en ese espacio protegido. Útil si desea proteger algunos archivos, pero no encriptar todo el disco duro principal.

Consulte Utilidad de discos para macOS Sierra: cree una imagen de disco con la Utilidad de discos para obtener más información sobre cómo crear archivos .dmg cifrados.

Conocer
fuente
Sin embargo, el cifrado ya es factible sin necesidad de hacerlo .dmg. ¿No se encripta Unix?
Pacerier
@ Pacerier - oh, por supuesto - como todo con Linux / Unix, hay más de una forma de hacer algo.
Ken