Question

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?

Était-ce utile?

La solution

Il semble possible de créer des fichiers DMG avec des outils tiers. Une recherche rapide sur Google révèle au moins quelques outils commerciaux:

Vous n'êtes pas sûr des options de logiciels libres / OSS, mais cela semble au moins possible si vous le souhaitez.

Modifier: j’ai également oublié MacDrive , qui est un autre excellent outil pour travailler avec HFS +. systèmes de fichiers sous Windows. Dans la mesure où un fichier DMG est essentiellement un instantané du système de fichiers HFS +, il est probablement possible avec MacDrive de créer également des fichiers DMG.

Autres conseils

Oui, mkfs.hfsplus le fait.

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

Ceci 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 lequel vous venez 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 sur lequel je travaille crée des fichiers DMG sous Linux en utilisant 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 chic, vous pouvez voler le fichier .DS_Store d'un fichier DMG créé sur un Mac avec un nom de volume nomprog et un ensemble d'applications appelé progname.app (correspondant à ce que vous voulez créer sur le Mac) où vous avez mis un arrière-plan dans .background / background.png et un lien symbolique vers / Applications dans le répertoire racine et mettez-le dans dmgdir avec le vôtre, un 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 travaux non compressés sont prêts à l'emploi, la compression peut poser des problèmes - l'origine / le maître génère au moins une erreur de "somme de contrôle" sur snow-léopard

Je ne suis pas sûr que quelqu'un regarde encore ce fil de discussion, mais j'ai essayé TransMac comme recommandé par Nik Reiman .

À l'aide de cet outil, j'ai pu, sous Windows 7 , créer des fichiers dmg pouvant être montés sur OSX 10.8.3 .

Inconvénient

Le seul inconvénient pour nous est que cet outil ne semble pas être convivial pour les commandes; pour nous, cela représente une rupture, car nous devons pouvoir disposer d'un outil automatisé que notre serveur de compilation (basé sur Windows) peut utiliser pour créer des fichiers dmg à la volée.

Voir mkfs.hfsplus

Si vous distribuez des applications Mac, vous avez sûrement un Mac pour les écrire et les tester. Pourquoi ne pas simplement utiliser ce même Mac pour créer l’image disque?

[Modifier] Si vous distribuez une application portable, par exemple un fichier .jar Java, pourquoi ne pas utiliser une image de disque? Les Mac comprennent très bien les archives .zip et .tar.gz.

Je suppose que je veux en venir au fait, je ne comprends pas comment on peut avoir besoin d’une image de disque DMG, mais je n’ai pas de Mac avec lequel la créer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top