当我想安装软件时,通常会下载一个.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自定义图标,自定义背景图像和内容的布局。.dmg
s通常也是只读的,因此内容将保持与开发人员预期的相同。
它们还迫使用户选择他们想要应用程序的位置。解压缩档案文件时,内容通常会提取到档案文件所在的位置。相反,.dmg
s将挂载在文件系统中,然后.app
必须显式复制分发包。
为什么它不以简单的二进制文件形式出现,或者我不知道呢?
Mac应用程序不仅仅是二进制文件。除了二进制文件(位于<appname>.app/Contents/MacOS/
),.app
还包含中的许多资源<appname>.app/Contents/Resources/
。这些资源包括图标,图形和本地化文件,例如en.lproj
。
.dmg文件除了软件安装以外还有其他用途吗?
关于DMG的另一个有用功能(自您询问其他用途以来)是能够创建加密的存储空间并将文件存储在该受保护的空间中。如果要保护某些文件但不加密整个主硬盘,则很有用。
有关创建加密的.dmg文件的更多信息,请参见macOS Sierra的磁盘实用程序:使用磁盘实用程序创建磁盘映像。
.dmg
。Unix不加密吗?