当我想安装软件时,通常会下载一个.dmg(Disk iMaGe)文件。当我打开它时,该.dmg文件看起来像我所谓的“虚拟磁盘”(因此我假设使用它的名称),并Finder在下列出 devices。它也列在Disk Utility下面Disk Images,似乎可以像删除其他磁盘一样将其擦除或卸载。
- 需要使用这种“虚拟磁盘”安装软件的逻辑是什么?
- 为什么它不以简单的二进制文件形式出现,或者我不知道呢?
当我想安装软件时,通常会下载一个.dmg(Disk iMaGe)文件。当我打开它时,该.dmg文件看起来像我所谓的“虚拟磁盘”(因此我假设使用它的名称),并Finder在下列出 devices。它也列在Disk Utility下面Disk Images,似乎可以像删除其他磁盘一样将其擦除或卸载。
Answers:
DMG具有一些关键功能,使其优于普通的旧拉链
真正的关键功能是它们支持完整的HFS +文件系统。Zip(通常,Linux版本有时支持权限)很愚蠢,仅支持捆绑文件和文件夹,而没有其他支持。没有元数据,只有文件。
tar.gz?它确实存储权限。
Mac软件可以作为.app应用程序捆绑包(实质上是包含所有程序资源的文件夹)或作为.pkg安装程序提供,该安装程序是一种以类似于Windows的方式安装应用程序的程序。
仅命令行工具可用作纯二进制文件,然后将其复制到用户的某个位置(PATH例如)/usr/local/bin。
这些可以打包为OS X / macOS磁盘映像(.dmg)或传统的存档格式,例如.zip或.tar。
需要使用这种“虚拟磁盘”安装软件的逻辑是什么?
这在很大程度上取决于开发人员。A .dmg只是一个虚拟硬盘驱动器,而不是安装程序。使用a的选择.dmg是关于包装而不是安装。
如果应用程序是简单的.app捆绑软件,则它是独立的,可以通过双击运行它。/Applications为了方便起见,通常将其复制到。
除了打开时的加密和EULA以外,.dmg存档类型的好处还在于品牌。.dmg可以给s自定义图标,自定义背景图像和内容的布局。.dmgs通常也是只读的,因此内容将保持与开发人员预期的相同。
它们还迫使用户选择他们想要应用程序的位置。解压缩档案文件时,内容通常会提取到档案文件所在的位置。相反,.dmgs将挂载在文件系统中,然后.app必须显式复制分发包。
为什么它不以简单的二进制文件形式出现,或者我不知道呢?
Mac应用程序不仅仅是二进制文件。除了二进制文件(位于<appname>.app/Contents/MacOS/),.app还包含中的许多资源<appname>.app/Contents/Resources/。这些资源包括图标,图形和本地化文件,例如en.lproj。
.dmg文件除了软件安装以外还有其他用途吗?
关于DMG的另一个有用功能(自您询问其他用途以来)是能够创建加密的存储空间并将文件存储在该受保护的空间中。如果要保护某些文件但不加密整个主硬盘,则很有用。
有关创建加密的.dmg文件的更多信息,请参见macOS Sierra的磁盘实用程序:使用磁盘实用程序创建磁盘映像。
.dmg。Unix不加密吗?