【问题标题】:Creating DMG without extra space无需额外空间即可创建 DMG
【发布时间】:2012-01-10 17:51:48
【问题描述】:

我目前使用hdiutil 创建我的 DMG。

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

是否有更好的方法可以将 DMG 缩小或创建大小?

【问题讨论】:

  • @DanielA.White:创建磁盘映像通常是打包 OS X 软件以供分发的一部分。虽然它不是编程本身,但它密切相关!
  • @DanielA.White,我倾向于同意duskwuff,这可能属于“程序员常用的软件工具”
  • @DanielA.White: 询问有关如何创建优化磁盘映像文件 (.dmg) 的提示,该文件已成为 Mac OS X 中分发软件的标准文件格式超过 11 年年,跑题了?

标签: macos dmg


【解决方案1】:

是的:

hdiutil create myImage.dmg -srcfolder SourceDir

这将自动调整图像大小以适合。

【讨论】:

  • 我试过这个,我认为它会很完美。我将它指向价值约 7 GB 的数据,它创建了一个具有 212.5 MB 可用空间的 DMG。如果我在创建它时调整大小或仅指定大小,我可以让它更接近。也许我最终会分心,它会以一种或另一种方式为用户下载 7 GB。谢谢。
【解决方案2】:

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

hdiutil resize -size xxxg myImage.dmg

或者创建一个稀疏图像,然后转换它

hdiutil convert -format UDZO Source.sparseimage -o myImage.dmg

我从未尝试过后者,不确定它是否会为 dmg 选择合适的尺寸。

来源:http://nickcharlton.net/post/converting-a-sparseimage-to-a-dmg

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

hdiutil compact Source.sparceimage

【讨论】:

  • 创建超大图像并对其进行压缩并不是一个很好的解决方案,因为大图像会产生大量的 FS 开销。
  • 是的,但是当打包一个小的二进制文件进行分发时,这将不是一个问题。 Sparceimage compact 不会花费那么长时间(大概不会浪费太多空间),并且调整大小几乎会复制整个 dmg。话虽如此,我不知道您的解决方案,这绝对是更清洁和更快:) +1。
  • 呵呵,开销实际上并没有我想象的那么糟糕……一个 1GB 的图像压缩到 164 KB。
猜你喜欢
  • 1970-01-01
  • 2014-01-28
  • 1970-01-01
  • 2013-04-29
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
相关资源
最近更新 更多