Pregunta

¿Es posible construir un archivo .dmg (para distribuir aplicaciones) desde una plataforma que no sea Mac? Y si es así, ¿cómo?

¿Fue útil?

Solución

Parece posible crear archivos DMG con algunas herramientas de terceros. Una búsqueda rápida en Google revela al menos algunas herramientas comerciales:

No estoy seguro acerca de las opciones de OSS / freeware, pero al menos parece posible si está tan inclinado.

Editar: también me olvidé de MacDrive , que es otra gran herramienta para trabajar con HFS + sistemas de archivos bajo ventanas. Dado que un DMG es básicamente una instantánea del sistema de archivos HFS +, es probable que MacDrive también pueda crear DMG.

Otros consejos

Sí, mkfs.hfsplus lo hace.

dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64
mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg

Esto crea un archivo dmg (en este caso, 64M) que se puede montar en una Mac. También se puede montar en Linux, con algo como

mount -o loop /tmp/foo.dmg /mnt/foo

luego de que simplemente copie el contenido que desea (en / mnt / foo). Desmontarlo, y el dmg se puede copiar a un mac y montar allí.

Un proyecto en el que trabajo crea archivos DMG en Linux usando genisoimage:

mkdir -p dmgdir/progname.app/Contents/{MacOS,Resources}
...copy your PkgInfo, Info.plist to Contents...
...copy your .icns to Resources...
...copy your other things to where you expect them to go...
genisoimage -V progname -D -R -apple -no-pad -o progname.dmg dmgdir 

Si quieres ser realmente elegante, puedes robar el archivo .DS_Store de un DMG creado en una Mac con un nombre de volumen progname y un paquete de aplicaciones llamado progname.app (es decir, que coincide con lo que desea crear desde la Mac) donde ha puesto un fondo en .background / background.png y un enlace simbólico a / Aplicaciones en el directorio raíz y colóquelo en dmgdir junto con su propio enlace simbólico a / Aplicaciones .

git clone https://github.com/hamstergene/libdmg-hfsplus
cd libdmg-hfsplus && cmake . && make && cd dmg
./dmg --help

Makefile:

dmg:
    genisoimage -D -V "$(PROJECT) $(VERSION)" -no-pad -r -apple -o project-$(VERSION)-uncompressed.dmg $(DARWIN_DIR)
    ./dmg dmg project-$(VERSION)-uncompressed.dmg project-$(VERSION).dmg

sin comprimir funciona de inmediato, la compresión puede causar problemas: el origen / maestro al menos produce un error de "suma de comprobación" en el leopardo de las nieves

No estoy seguro de si alguien sigue viendo este hilo, pero probé TransMac según lo recomendado por Nik Reiman .

Utilizando esta herramienta pude, ejecutándome en Windows 7 , crear archivos dmg que se podían montar en OSX 10.8.3 .


Downside

El único inconveniente para nosotros es que esta herramienta no parece ser compatible con la línea de comandos; para nosotros eso es un factor decisivo, ya que necesitamos poder tener una herramienta automatizada que nuestro servidor de compilación (basado en Windows) pueda usar para compilar archivos dmg sobre la marcha.

Ver mkfs.hfsplus

Si está distribuyendo aplicaciones Mac, entonces seguramente tiene una Mac para escribirlas y probarlas. ¿Por qué no simplemente usar esa misma Mac para crear la imagen de disco?

[Editar] Alternativamente, si está distribuyendo una aplicación portátil, por ejemplo un archivo Java .jar, ¿por qué molestarse con una imagen de disco? Las Mac entienden los archivos .zip y .tar.gz perfectamente.

Supongo que a lo que me refiero es que no entiendo cómo uno podría necesitar una imagen de disco DMG, pero no tener una Mac con la que crearla.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top