OS X安装程序包如何计算所需空间?

DNS*_*DNS 4 macos installer

我正在为产品构建OS X安装程序包.运行时,"选择目标"窗格中有"安装此软件需要X MB空间"标签.但是我可以在同一台机器上运行相同的包两次,并且看到声称的用法不同,即85到127 MB,这两者都不是实际的~65MB产品使用量.

Installer如何计算所需空间?

gav*_*inb 5

安装程序.pkg文件包含几个组件:

  • 要安装的文件的存档
  • 物料清单(列出所有可安装文件的元数据)
  • 安装本身的资源(图像,脚本等)
  • 一个Info.plist含有版本信息和默认值

物料清单或"BOM"包含权限,文件大小,校验和等信息.当安装程序第一次运行包时,BOM中列出的文件大小总和用于估计所需的大小.(如果有任何共享组件,这显然会影响总数.)

安装完成后,BOM将保存在包裹收据文件夹(/Library/Receipts/boms)中,作为已安装内容的记录.该lsbom实用程序可用于检查这些文件的内容.

在后续安装相同软件包(由软件包标识符确定)时,将查询BOM收据以确定已安装的文件及其总大小.现有的未更改文件总计并从要安装的新文件中减去,同时也考虑需要替换旧文件的更新文件.该pkgutil工具可用于显示有关已安装软件包的信息.

因此,这就是为什么安装尺寸估计可能因安装而异.新文件和现有文件会添加到总数中,而现有的未更改文件会从安装要求中减去.