为什么这么多的Mac下载只包含一个.pkg的.dmg?


19

我注意到许多下载都是dmg(磁盘映像),其中包含一个pkg文件(安装包)。通常pkg似乎已经被压缩,因为dmg不会减少文件大小(如果有的话)。

节省737,658字节,或原始文件大小的0.6%。

有没有理由不分发pkg? 0.6%的压缩节省是否重要?或者它只是在Mac上一直做的事情?

(是的,我意识到dmg获得的所有数百万次下载的737,658字节时间确实加起来,但是在那里安装dmg,运行安装程序然后卸载dmg的额外步骤似乎总是很烦人。也许是更好的问题是“为什么Mac OS X不能识别其中只有一个pkg的dmg只是一个pkg而只是安装它而不需要所有的安装和卸载?”)


实际上,现代包是平面文件,而不是文件夹。因此,不再需要将它们放入dmg中以提供平面文件。
mlaster

@mlaster这似乎不是真的。你有一个例子吗?
Gerry

1
radiosilenceapp.com/downloads/Private%20Eye.pkg 就像一个例子,JavaForMacOSX10.7.pkg就是一个例子(尽管Apple准备好下载时仍然将它作为.dmg)。我的下载档案中还有其他几个,但它绝对不是通用的。 file 将它们列为“xar archive - version 1”但是接下来的问题是确保Web服务器设置为强制.pkg文件下载而不是显示。 (我希望一些开发人员使用.zip而不是.dmg出于同样的原因 - 即使配置最差的Web服务器和浏览器也知道下载.zip文件)。
TJ Luoma

但是,即使我们获得了平面文件,许多开发人员也会将.pkg文件放在.zip中,因为他们可以指望服务器为.zip文件正确设置其MIME类型,但不一定是.pkg(或.dmg) )。
TJ Luoma

Answers:


21

从技术上讲,.pkg不是 文件 ,但是 。因此,将其收集到一个文件中对于下载至关重要。


1
我甚至都没有意识到这一点,但是你在头上钉了一针。
Gerry

也不知道关于.pkg。知道这一切都有道理。谢谢!
Jim McKeeth

2
将其打包成dmg意味着保留任何OS X扩展文件属性和/或资源分支,您可以从非OS X Web服务器提供它。这也是为什么在最新版本的OS X中更新包格式以包含平面文件的原因。
Joe Block

4
这个答案不再完全正确, .pkg 文件现在不仅仅是普通文件夹: en.wikipedia.org/wiki/Installer_(OS_X)#Installer_package
t0r0X

1
@wisbucky:正如t0r0X所说,这必须比2011年更新。
GEdgar

11

可以使用“磁盘”实用程序检查DMG映像上的数据的完整性。您可以强制要求用户在安装dmg之前同意许可。它可以锁定修改。您可以在DMG上轻松添加隐藏文件和文件夹。你可以制作背景图片。您可以通过非元数据感知文件系统(如FAT)在传输过程中防止剥离。

实际上有很多原因


1
DMG的所有酷炫功能,但它们不会向PKG添加任何内容,除非他们严重无法验证自己的完整性。
Jim McKeeth

5

一个可能的原因可能是Safari默认自动安装DMG文件,并且Finder窗口会弹出内容。反过来,可以使用例如背景图像来设置DMG文件夹的样式。我认为这可以被认为比用于安装程序的下载文件夹更加用户友好,但我同意这是没有实际意义的。

另一个原因是能够将其他支持文件组合在一起,例如文档文件甚至辅助安装程序。

但是,这并不是一个常见的分布。大多数应用程序作为自包含的.app文件夹在DMG文件中分发(如果不是现在通过App Store)。你的例子似乎对我来说是一个例外,虽然它可能更常见于某些特定的分销渠道?就个人而言,我不会再进一步​​讨论它了。


1
最后一段+ 1 - 我认为由于som木马.dmg s不是(绝对不应该)自动安装
Mark

@Gerry,自动挂载?这有什么疯狂的设定?
Pacerier

@Gerry,这不会与“......授权许可证”相矛盾 apple.stackexchange.com/a/30698/6533
Pacerier
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.