Macos 在没有额外空间的情况下创建DMG

Macos 在没有额外空间的情况下创建DMG,macos,dmg,Macos,Dmg,我目前使用hdiutil创建我的DMG 我使用的命令是hdiutil create-size xxxg myImage.dmg-fs HFS+。我总是对大小坐立不安,直到它足够接近为止 有没有更好的方法可以将DMG缩小到所需大小或创建其大小?您可以创建更大的DMG,添加文件,然后调整其大小: hdiutil resize -size xxxg myImage.dmg 或者创建一个sparseimage,然后转换它 hdiutil convert -format UDZO Source.spar

我目前使用
hdiutil
创建我的DMG

我使用的命令是
hdiutil create-size xxxg myImage.dmg-fs HFS+。
我总是对大小坐立不安,直到它足够接近为止


有没有更好的方法可以将DMG缩小到所需大小或创建其大小?

您可以创建更大的DMG,添加文件,然后调整其大小:

hdiutil resize -size xxxg myImage.dmg
或者创建一个sparseimage,然后转换它

hdiutil convert -format UDZO Source.sparseimage -o myImage.dmg
我从未尝试过后者,不确定它是否能为dmg选择合适的尺寸

资料来源:

请注意,如果从sparseimages中删除文件,则需要压缩sparseimages,因为它们不会自动释放已删除文件中的空间:

hdiutil compact Source.sparceimage
是的:


这将自动调整映像的大小以适应需要。

@DanielA.White:创建磁盘映像通常是打包OS X软件以供分发的一部分。虽然它不是编程本身,但它是密切相关的@DanielA.White,我倾向于同意duskwuff的观点,这可能属于“程序员常用的软件工具”@DanielA.White:How's正在询问如何创建优化的磁盘映像文件(
.dmg
)的技巧,该文件在Mac OS X中已作为分发软件的标准文件格式超过11年,离题?创建一个过大的图像并压缩它不是一个很好的解决方案,因为在大的图像上有大量的FS开销。没错,但是当打包一个小的二进制文件进行分发时,这将不是一个很好的问题。Sparceimage compact不会花费那么长的时间(大概不会浪费太多空间),而resize将几乎复制整个dmg。也就是说,我不知道你的解决方案,它肯定更干净、更快:)+1。嗯,开销实际上没有我想象的那么大。。。1GB的图像压缩到164KB。我试过这个,我认为它会很完美。我将其指向约7Gbs的数据,并创建了一个212.5MB可用的DMG。如果我在创建它时调整大小或只是指定大小,我可以使它更接近。也许我最终会大发雷霆,不管怎样,用户都将获得7GB的下载。谢谢
hdiutil create myImage.dmg -srcfolder SourceDir