web-dev-qa-db-fra.com

Comment créer un fichier dmg Mac OS X (sur une plateforme non-Mac)?

Est-il possible de créer un fichier .dmg (pour distribuer des applications) à partir d'une plate-forme non Mac? Et si oui, comment?

52
michelemarcon

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:

Je ne suis pas sûr des options OSS/freeware, mais cela semble au moins possible si vous êtes si enclin.

Edit: j'ai également oublié MacDrive , qui est un autre excellent outil pour travailler avec les systèmes de fichiers HFS + sous Windows. Puisqu'un DMG est simplement un instantané de système de fichiers HFS +, il est probablement possible avec MacDrive de créer également des DMG.

8
Nik Reiman

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 vous venez de copier le contenu que vous voulez (dans/mnt/foo). Démontez-le et le dmg peut être copié sur un mac et monté là-bas.

34
jstck

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 .DS_Store fichier d'un DMG créé sur un Mac avec un nom de volume progname et un ensemble d'applications appelé progname.app (c'est-à-dire 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 votre propre lien symbolique vers /Applications.

29
uckelman
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

travaux non compressés prêts à l'emploi, la compression peut provoquer des problèmes - l'Origin/master génère au moins une erreur de "somme de contrôle" sur le léopard des neiges

8
name

Je ne sais pas si quelqu'un regarde toujours ce fil, mais j'ai essayé TransMac comme recommandé par Nik Reiman.

En utilisant cet outil, j'ai pu, en exécutant Windows 7, créer dmg des fichiers montables sur OSX 10.8..


inconvénient

Le seul inconvénient pour nous est que cet outil ne semble pas être convivial en ligne de commande; pour nous, c'est une rupture, car nous devons pouvoir disposer d'un outil automatisé que notre serveur de génération (basé sur Windows) peut utiliser pour créer des fichiers dmg à la volée.

4
MattWeiler

Voir mkfs.hfsplus

2
Josh