是否可以从非Mac平台构建.dmg文件(用于分发应用程序)? 如果是的话,怎么样?
答案 0 :(得分:34)
是的,mkfs.hfsplus是这样做的。
dd if=/dev/zero of=/tmp/foo.dmg bs=1M count=64
mkfs.hfsplus -v ThisIsFoo /tmp/foo.dmg
这会创建一个可以安装在mac上的dmg文件(在本例中为64M)。它也可以安装在linux上,类似
mount -o loop /tmp/foo.dmg /mnt/foo
之后你只需复制你想要的内容(在/ mnt / foo中)。卸下它,可以将dmg复制到mac并安装在那里。
答案 1 :(得分:28)
我工作的项目使用genisoimage在Linux上创建DMG文件:
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
如果您想要真正喜欢,可以从Mac上制作的.DS_Store
文件中窃取progname
文件,其中卷名为progname.app
,应用包名为.background/background.png
(即匹配您想要在Mac上创建的内容,您在dmgdir
中放置了一个背景,并在根目录中添加了/ Applications的符号链接,并将其与您自己的符号链接一起放在/Applications
中到{{1}}。
答案 2 :(得分:8)
似乎可以使用某些第三方工具创建DMG文件。快速谷歌搜索显示至少一些商业工具:
不确定任何OSS /免费软件选项,但如果你这么倾向,它至少看起来是可能的。
编辑:我也忘记了MacDrive,这是在Windows下使用HFS +文件系统的另一个很棒的工具。由于DMG基本上只是一个HFS +文件系统快照,因此MacDrive可能也可以创建DMG。
答案 3 :(得分:8)
git clone https://github.com/hamstergene/libdmg-hfsplus
cd libdmg-hfsplus && cmake . && make && cd dmg
./dmg --help
生成文件:
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
未压缩的工作开箱即用,压缩可能会导致问题 - 起源/主人至少会对雪豹产生'校验和'错误
答案 4 :(得分:4)
我不确定是否还有人在看这个帖子,但我按照 Nik Reiman 的推荐尝试了 TransMac 。
使用此工具,我能够在 Windows 7 上运行,创建 dmg 文件,这些文件可以安装在 OSX 10.8.3 上。< / p>
<强>下行强>
我们唯一的缺点是这个工具似乎不是命令行友好的;对我们而言,这是一个交易破坏者,因为我们需要能够拥有一个自动化工具,我们的构建服务器(基于Windows)可以使用它来动态构建dmg文件。
答案 5 :(得分:2)
见mkfs.hfsplus
答案 6 :(得分:-28)
如果您正在分发Mac应用,那么您肯定有一台Mac可以编写和测试它们。为什么不简单地使用相同的Mac来创建磁盘映像?
[编辑]或者,如果您要分发便携式应用程序,例如Java .jar文件,为什么还要烦扰磁盘映像? Macs了解.zip和.tar.gz档案就好了。
我想我得到的是,我不明白人们可能需要一个DMG磁盘映像,但没有Mac用于创建它。