¿Por qué tantas descargas de Mac son un .dmg que contiene un solo .pkg?

He notado que muchas descargas son un dmg (imagen de disco) que contiene un solo archivo pkg (paquete de instalación). Por lo general, el paquete parece estar comprimido ya que el dmg no reduce mucho el tamaño del archivo, si es que lo hace.

Ejemplo :

Un ahorro de 737.658 bytes, o el 0,6 % del tamaño del archivo original.

¿Hay alguna razón para no simplemente distribuir el paquete? ¿Es tan importante el ahorro de compresión del 0,6 %? ¿O es solo la forma en que siempre se han hecho las cosas en la Mac?

(Sí, me doy cuenta de que se suman 737,658 bytes multiplicados por todos los millones de descargas que obtiene el dmg, pero siempre parece molesto tener esos pasos adicionales allí para montar un dmg, ejecutar el instalador y luego desmontar el dmg. Tal vez un una mejor pregunta es "¿por qué Mac OS X no reconoce un dmg con un solo paquete dentro como solo un paquete y simplemente lo instala sin requerir todo ese montaje y desmontaje?")

En realidad, los paquetes modernos son archivos planos, no carpetas. Por lo tanto, ya no es necesario colocarlos en un dmg solo para proporcionar un archivo plano.
@mlaster Eso no parece ser cierto. ¿Tienes un ejemplo?
radiosilenceapp.com/downloads/Private%20Eye.pkg es un ejemplo, al igual que JavaForMacOSX10.7.pkg (aunque Apple todavía lo tiene como .dmg cuando está listo para descargar). Tengo varios otros en mi archivo de Descargas, pero definitivamente aún no es universal. filelos enumera como "archivo xar - versión 1" Pero luego está el problema de asegurarse de que el servidor web esté configurado para forzar la descarga de archivos .pkg en lugar de mostrarlos. (Espero que algunos desarrolladores usen .zip en lugar de .dmg por la misma razón, incluso los servidores web y navegadores peor configurados saben descargar archivos .zip).
Sin embargo, incluso una vez que obtuvimos archivos planos, muchos desarrolladores pusieron archivos .pkg dentro de un .zip porque pueden contar con servidores para tener su tipo MIME configurado correctamente para archivos .zip pero no necesariamente para .pkg (o .dmg para el caso). ).

Respuestas (4)

Técnicamente, un .pkg no es un archivo , sino una carpeta . Entonces, tal vez recopilarlo en un solo archivo sea esencial para la descarga.

Ni siquiera me di cuenta de esto, pero diste en el clavo.
Tampoco sabía eso sobre un .pkg. Sabiendo que todo tiene sentido. ¡Gracias!
Empaquetarlo en un dmg significa que cualquier atributo de archivo extendido OS X y/o bifurcaciones de recursos se conservan y puede servirlo desde un servidor web que no sea OS X. También es por eso que el formato del paquete se actualizó para incluir archivos planos en versiones recientes de OS X.
Esta respuesta ya no es exactamente cierta, .pkglos archivos son hoy en día más que una simple carpeta: en.wikipedia.org/wiki/Installer_(OS_X)#Installer_package
Entonces, ¿por qué nodejs.org/dist/v0.10.9/node-v0.10.9.pkg puede descargarse como un solo archivo e instalarse?
@wisbucky: eso debe ser más reciente que 2011, como lo señaló t0r0X.
@GEdgar, ¿Qué hace pkg que no hace dmg y viceversa?

Se puede verificar la integridad de los datos en la imagen DMG con la utilidad Disco. Puede hacer que sea obligatorio para el usuario aceptar la licencia antes de montar dmg. Podría bloquearse para que no se modifique. Puede agregar fácilmente archivos y carpetas ocultos en DMG. Puedes hacer una imagen de fondo. Puede evitar que se eliminen durante el tránsito a través de sistemas de archivos sin reconocimiento de metadatos como FAT.

Un montón de razones en realidad .

Todas las características interesantes de un DMG, pero no agregan nada a un PKG a menos que no puedan verificar seriamente su propia integridad.

Una posible razón podría ser que Safari monta automáticamente archivos DMG de forma predeterminada y que aparece una ventana del Finder con el contenido. A su vez, la carpeta DMG podría diseñarse con, por ejemplo, una imagen de fondo. Supongo que podría considerarse más fácil de usar que tener que buscar un instalador en la carpeta Descargas, pero estoy de acuerdo en que es bastante discutible.

Otra razón sería la capacidad de agrupar también otros archivos de soporte, por ejemplo, archivos de documentación o incluso instaladores secundarios.

Sin embargo, no es una distribución tan común para empezar. La mayoría de las aplicaciones se distribuyen como carpetas .app independientes dentro de un archivo DMG (si no es a través de la App Store ahora). Su ejemplo parece ser más bien una excepción para mí, aunque tal vez sea más común con algunos canales de distribución en particular. Personalmente, no me detendría mucho más en ello.

+ 1 para el último párrafo: pensé que debido a algunos troyanos .dmg s no (definitivamente no deberían) montarse automáticamente
@Gerry, ¿Montado automáticamente? ¿Qué loca ambientación es esta?
@Gerry, ¿Esto no contradice "..aceptar la licencia..." en apple.stackexchange.com/a/30698/6533 ?

Otra razón más es que no puede ejecutar archivos .pkg directamente desde volúmenes de red, pero puede ejecutar un .dmg desde un volumen de red y luego iniciar el paquete.