0

我正在尝试从命令行在 Mac 上安装我们的产品:

$ installer -package /Volumes/setup.pkg/setup.pkg -target /Volumes/MacOS -verbose
installer: Package name is Foo
installer: Upgrading at base path /
installer: Preparing for installation….....
installer: Preparing the disk….....
installer: Preparing Foo….....
installer: Waiting for other installations to complete….....
installer: Configuring the installation….....
installer:  
installer: Writing files….....
#
installer: Writing files….....
#
installer: Writing files….....
#
installer: Moving items into place….....
##
installer: The upgrade failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)

从 GUI 运行时一切正常。sudo没有帮助。我该如何调试?至少我需要一个信息更丰富的日志。将非常感激。

自原始发布以来的附加信息:当从 GUI 运行时,应用程序安装到运行它的用户的 ${HOME}/Library 中(如预期的那样)。从命令行运行时,它会尝试将其安装到 /Library 中(甚至复制那里的一些文件,但不是所有文件)。

4

1 回答 1

3

在 GUI 中,您没有明确指定目标,因此所有内容都放在包想要放置的位置。但是在命令行上,您明确指定-target /Volumes/MacOS,它覆盖了包指定的内容,因此它试图将文件放入/Library其中,并且可能是其他地方,其中一些您无权访问。

显然-target CurrentUserHomeDirectory解决了问题。

要获得更多详细信息,您需要提取包(最简单的方法是xar -xf setup.pkg在一个空目录中)并查看文件 Distribution、*/PackageInfo 和可能的 */Bom,以查看安装程序具体指定的内容. 但如果你只是想让它工作,你已经知道如何做到这一点。

于 2012-05-29T17:33:06.130 回答