【问题标题】:OSX - installer fails when run from command lineOSX - 从命令行运行时安装程序失败
【发布时间】:2012-05-30 03:45:15
【问题描述】:

我正在尝试通过命令行在 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 中(甚至复制那里的一些文件,但不是全部)。

【问题讨论】:

  • 我注意到“-target /Volumes/MacOS”参数,以及日志是“在基本路径/升级”的事实。当您在 GUI 中运行它时,卷“MacOS”是否显示在目标选项列表中 - 如果您选择它,它是否实际安装在那里而不是 / 中?
  • @abarnert,(1)我直到星期一才下班,无法检查是否包含卷(2)从 GUI 运行时,它将应用程序安装到 ${HOME }/运行它的用户的库(正如它应该的那样)。从命令行运行时,它会尝试将其安装到 /Library 中(甚至在 croaking 之前复制其中的一些文件)。我会将此信息添加到问题中。
  • 好吧,首先,如果你想将 -target /Volumes/MacOS 安装到 ${HOME} 中,你为什么要传递它?
  • @abarnert, -target 选项指定卷,而不是安装目录。见installer man page。
  • 是的,${HOME} 通常不会出现在 /Volume/MacOS 上。如果您已将引导驱动器从默认重命名为 MacOS,那么这将是指向 / 的符号链接,因此它应该可以工作。或者,如果您已将主目录移动到其他驱动器或其他各种情况。但是,您为什么要提供它?

标签: macos installation


【解决方案1】:

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

显然-target CurrentUserHomeDirectory 解决了这个问题。

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

【讨论】:

  • 完全脱离 -target 也可能有效。 不行 - 我试过了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-30
  • 1970-01-01
  • 2015-04-19
  • 2016-12-11
  • 2023-04-05
相关资源
最近更新 更多