2015-04-29 22 views

回答

1

您可以使用pkgutil将您的软件包提取到临时目录中。

pkgutil --expand pkg-path dir-path 

Expand the flat package at pkg-path into a new directory specified by dir-path. 

也有非常好的称为Pacifist第三方工具,通过CharlesSoft。您可以在不提取它的情况下查看包的内容。

更新

pkg档案(这是一个xar档案),你可能会遇到以下文件:

  • :材料的Mac OS X清单(BOM)文件

Mac OS X安装程序使用文件系统tem“材料清单”来确定要安装,删除或升级哪些文件。材料清单bom包含目录中的所有文件以及关于每个文件的一些信息。文件信息包括:文件的UNIX权限,所有者和组的大小,上次修改时间等。 还包括每个文件的校验和以及有关硬链接的信息。 [man bom]

您可以列出bom文件的内容与lsbom命令。并用mkbom创建文件。

  • PackageInfo:XML文档中的文本

xml文件包含有关包的一般信息。

  • 有效载荷:gzip压缩的数据,从Unix

这是一个gziped cpio存档。您可以提取其内容以当前目录tar命令:

$ tar -xf Payload 

或提取到指定目录dir-path

$ tar -C dir-path -xf Payload 

可选,你可以只列出Payload归档文件的内容有:

$ tar -tf Payload 

您应该可以通过dir-path从以下位置重新创建存档:

$ tar --format cpio -czf Payload dir-path 
+0

当我提取它时,我有文件夹com.mydomain.mypackage.pkg包含三个文件:Bom,PackInfo和Payload。我如何获取Payload的内容? –

+0

@Martin我更新了我的答案。 – baf

+0

你的答案令人印象深刻!谢谢 ;-) –