Est-il possible de créer un fichier .dmg (pour la distribution d'applications) à partir d'une plateforme autre que Mac? Et si oui, comment?
Réponses
Trop de publicités?Oui, mkfs.hfsplus le fait.
dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64
mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg
Cela crée un fichier dmg (dans ce cas 64M) qui peut être monté sur un mac. Il peut également être monté sur Linux, avec quelque chose comme
mount -o loop /tmp/foo.dmg /mnt/foo
après quoi, il suffit de copier le contenu souhaité (dans / mnt / foo). Démontez-le, et le dmg peut être copié sur un mac et monté là-bas.
Un projet que je travaille, on crée des fichiers DMG sur Linux à l'aide de 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 vous voulez être vraiment de fantaisie, vous pouvez voler l' .DS_Store
le fichier à partir d'un DMG fait sur un Mac avec un nom de volume progname
et app bundle nommé progname.app
(c'est à dire, correspond à ce que vous souhaitez créer hors Mac) où vous avez mis un fond en .background/background.png
et un lien symbolique vers /Applications dans le répertoire racine, et de mettre en dmgdir
avec votre propre lien symbolique vers /Applications
.
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
les opérations non compressées sont prêtes à l'emploi, la compression peut poser problème - l'origine / le maître génère au moins une erreur de «somme de contrôle» sur snow-léopard
Il ne semble pas possible de créer des fichiers DMG avec certains outils tiers. Une rapide recherche sur google révèle au moins quelques outils commerciaux:
Pas sûr de tout OSS/freeware options, mais elle permet au moins d'semble possible si vous êtes si incliné.
Edit: j'ai aussi oublié MacDrive, qui est un autre excellent outil pour travailler avec des HFS+ systèmes de fichiers sous windows. Depuis un DMG est fondamentalement juste un système de fichier HFS+ instantané, il est probablement possible avec MacDrive pour créer DMG est ainsi.