Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 解析/usr/sbin/installer的输出_Macos_Installation - Fatal编程技术网

Macos 解析/usr/sbin/installer的输出

Macos 解析/usr/sbin/installer的输出,macos,installation,Macos,Installation,我写的基本上是许多平台上安装服务的前端。我(显然)想知道的一件事是安装是否成功。在大多数平台上,这很容易:只需检查安装程序的返回代码/退出代码。但是,在Mac上(使用/usr/sbin/installer),这并不容易,因为它总是退出0,并且您必须解析输出(在提供-verboseR选项之后),以确定它是否成功 我只是通过尝试和错误来解决这个问题,但我发现自己很难设计出那些,比如说,坏掉的包,来弄清楚当一个包以某种方式坏掉时,系统会说什么 所以我问,亲爱的Lazyweb:是否有一个规范的解析器用于

我写的基本上是许多平台上安装服务的前端。我(显然)想知道的一件事是安装是否成功。在大多数平台上,这很容易:只需检查安装程序的返回代码/退出代码。但是,在Mac上(使用
/usr/sbin/installer
),这并不容易,因为它总是退出0,并且您必须解析输出(在提供
-verboseR
选项之后),以确定它是否成功

我只是通过尝试和错误来解决这个问题,但我发现自己很难设计出那些,比如说,坏掉的包,来弄清楚当一个包以某种方式坏掉时,系统会说什么


所以我问,亲爱的Lazyweb:是否有一个规范的解析器用于
/usr/sbin/installer-verboseR
的输出,或者至少有一个指南描述它输出的东西的种类?我已经找到了,这很有帮助,但并不能让我一路走到那里。一定有更好的东西;这似乎是一项常见的任务。

您应该查看/var/log/install.log,它是安装程序所有组合输出的所在。此外,根据程序的性质,您可能会发现查看安装程序生成的收据很有用。这些可在/图书馆/收据中找到。有关更多信息,请参阅

在安装结束时,您会得到如下一些日志输出:

Jul 10 19:26:24 ant Installer[24618]: Starting installation:
Jul 10 19:26:24 ant Installer[24618]: Finalizing installation.
Jul 10 19:26:24 ant Installer[24618]: IFDInstallController 857550 state = 5
Jul 10 19:26:24 ant Installer[24618]: Displaying 'Install Succeeded' UI.
Jul 10 19:26:28 ant installdb[24624]: done. (0.006u + 0.004s)

虽然这里没有给出硬返回代码,但至少有足够的代码可以解析以确定安装是否成功。

如果您想查看损坏的软件包是什么样子,只需更换其中一个飞行中的脚本(
preflight
preinstall
preupgrade
post*
对应项)使用返回非零的脚本。它不必做任何其他事情,只需返回非零的内容(如中所述,任何其他返回值都会取消安装)。

您所追求的可能是某种类型的,但此处并未真正记录: 并在这里实施:

如果您需要,这些搜索可能会为您提供大量示例文本:

建议bugtracker上可能有一些“官方”文档,但您需要ADC成员才能找到

我发现:

  • 开始于安装程序:阶段的行开始一个新阶段。文本可以作为标题显示给用户,并且完成百分比设置为0

  • 以安装程序:状态开头的行是进度通知,包含可向用户显示的文本。没有给出完成的迹象

  • 安装程序:%%开头的行表示完成程度:它们表示完成工作的分数,而不是百分比。(1.000000=完成,0.500000=一半)

  • 成功完成由以下行指示:
    安装程序:安装成功。

  • 失败的安装由以下行指示:
    安装程序:安装在任何时候都失败了

  • 如果前一行包含括号内的文本(通常类似于:
    安装程序:安装失败(以下安装步骤失败:运行)
    ,则括号内的文本可以作为失败原因显示给用户


听起来不错,但我想等待关于安装程序输出的更明确的答案。谢谢。我知道我可以很容易地确定安装是否成功;我正在寻找关于安装程序可能输出的所有内容的明确指南。我会等待另一个答案,但谢谢。