解析/ usr/sbin目录/安装
我写的东西基本上是一个前端来安装程序在许多平台服务的输出。我(显然)想知道的一件事是安装是否成功。在大多数平台上很容易:只需检查安装程序的返回代码/退出代码即可。然而,这不是在Mac(使用/usr/sbin/installer
)上那么容易,因为它总是返回0,你必须解析输出,以确定它是否成功还是失败(提供-verboseR
选项之后)。解析/ usr/sbin目录/安装
我只希望这出由试验和错误,但我发现很难工程师自己说的,比如说,破包,找出当一个包以某种方式被打破,系统会说什么。
所以我问,亲爱的Lazyweb:是否有一个规范解析器的输出/usr/sbin/installer -verboseR
,或至少一个指南,描述它输出的东西种类?我发现this,这有助于但不会让我有所有的方式。必须有更好的东西;这似乎是一个常见的任务。
什么你以后是种 - 的 - 也许,但并非真正排序的,这里记录:http://lists.apple.com/archives/installer-dev/2006/Aug/msg00029.html 并在这里实现:http://glimmerblocker.org/browser/trunk/NotificationApp/src/NotificationApp.m?rev=390#L311
这些搜索可能会给你很多示例文本的,如果你需要它:
- google:"installer:phase" "installer:status" "installer:%"
- google:"installer: The install failed"
- google:"installer: The install was successful"和
- google:"The following install step failed"和
http://lists.apple.com/archives/installer-dev/2006/Aug/msg00031.html表明,有可能是在错误追踪一些“官方”的文档,但你需要一个ADC会员发现......
我已经找到了:
行首
installer:PHASE
开始一个新的阶段。文本可以显示为用户的标题,完成百分比设置为0。行开头
installer:STATUS
是进度通知,并包含可显示给用户的文本。没有给出完成的迹象。线开始
installer:%
指示完成度:他们指出这项工作的完成分数,而不是百分比。 (1.000000 ==完整,0.500000 ==一半)成功完成由线表示:
installer: The install failed
在任何时间:installer: The install was successful.
安装失败是由线表示。
如果前面的行包含括号中的文字(通常是这样的:。
installer: The install failed (The following install step failed: run <...>)
那么括号中的文字可以显示给用户作为一个失败原因
你应该看看/var/log/install.log,这就是从安装程序组合输出所有去。另外,根据程序的性质,您可能会发现查看安装程序生成的收据很有用。这些可在/ Library/Receipts中找到。有关更多信息,请参阅this Apple technote。
在安装结束后,你得到一些日志输出是这样的:
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*
同行)与返回非零的脚本之一。它没有做别的,只返回的东西不为0(如Apple software delivery guide记录,任何其他的返回值取消安装)。
听起来不错,但我想要支持对安装程序的输出做出更明确的答复。谢谢。 – 2009-07-13 16:22:03
我明白,我可以很容易地找出是否安装成功;我正在寻找关于*安装程序可能输出的所有*的权威指南,我会继续寻求其他答案,但是谢谢你。 – 2009-07-13 16:22:57