.dmg organización de archivos

2

Hoy necesitaba ver los contenidos de los SDK de OS X, que se publican como .dmg.

Para mi sorpresa, descubrí que la estructura es la siguiente:

  • El .dmg contiene archivos .pkg ocultos
  • Los archivos .pkg contienen un archivo de carga útil, que es un .gz o un .bz2, depende
  • El archivo .gz contiene un solo archivo comprimido para cpio
  • Este archivo cpio contiene todos los archivos.

¿Alguien puede proporcionar razones técnicas y / o históricas para que esto se haga de esta manera?

Para ser claros: no tengo ningún problema técnico, solo tengo curiosidad.

    
pregunta Calvin1602 27.04.2013 - 18:35

3 respuestas

2
  • .dmg es la imagen del disco que se puede montar como un archivo externo. El valor que proporciona aquí es que los .dmgs se verifican para verificar su consistencia / corrección en el montaje, por lo que si la descarga fue incorrecta, se le notificará
  • El .pkg es el formato estándar para el software instalable y, por lo general, contiene no solo la aplicación en sí, sino todo lo demás que se muestra durante la instalación: Léame, información legal / de licencia, paquetes opcionales, etc.
  • El .gz es para comprimir los datos y mantener los paquetes más pequeños en el disco (y para descargar)
  • .cpio es un formato de archivo similar a tar, etc.
respondido por el nohillside 27.04.2013 - 18:46
2

Históricamente hablando, el formato pkg proviene de paquetes Unix (más directamente los BSD), que son esencialmente la carga útil comprimida (archivos en una estructura de carpetas equivalente a la que acabarían en el disco) , y algunos metadatos e instrucciones adicionales para conducir el asistente de instalación y escribir información en varias bases de datos del sistema.

Un archivo dmg es solo una imagen de disco similar a la que obtendría con una utilidad de tipo dd. En la distribución de aplicaciones Mac, está en un formato HFS similar al que contienen las particiones con formato HFS en medios ópticos.

Ahora, no todos los DMG contienen archivos .pkg. Algunas imágenes DMG contienen solo paquetes .app (que, de nuevo, no son más que una carpeta con todos los recursos que contiene una aplicación, pero como la carpeta tiene la extensión .app Quartz / Finder, la trata como un solo archivo, como lo hacen con las carpetas que terminan en .kext o .component, etc.)

Los archivos ocultos están ahí para ocultar la complejidad y por otras razones de tipo "experiencia de usuario".

    
respondido por el Bojan Markovic 27.04.2013 - 23:19
0

Bueno, la estructura de un .pkg no es que más compleja u oscura que la de un Debian .deb , ambos son archivos que contienen otro archivo comprimido para el Contenidos reales más metadatos a lo largo de él (¡que en un .deb está dentro de otra capa de compresión como la carga útil!)

Acerca de los archivos ocultos en el DMG , no hay una respuesta probada científicamente: uno podría simplemente especular sobre la protección contra copia (un argumento que obviamente no es válido) o un intento excesivo de ocultar el "fondo técnico" al usuario (como lo respalda el contenido de un [Mountain] Lion InstallESD.dmg que, al no haber sido destinado a ser accedido por un usuario humano, tiene algunas carpetas visibles con la funcionalidad que se cumplió por invisibles en versiones de CD y DVD de Mac OS X) ...

Agregue a esto que desde 10.5 puede haber una capa adicional debido a la existencia de packages y distributions / metapackages (se usa para agrupar paquetes con un componente-to -se puede instalar el selector y aparentemente se requiere, al menos con el antiguo PackageMaker de Apple y con limitaciones, usar varias funciones avanzadas como firmas digitales o algunas verificaciones de requisitos del sistema).

    
respondido por el Ryccardo 27.04.2013 - 18:50

Lea otras preguntas en las etiquetas