gpt4 book ai didi

macos - 解析/usr/sbin/installer 的输出

转载 作者:行者123 更新时间:2023-12-05 00:08:52 27 4
gpt4 key购买 nike

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

我只是通过反复试验来解决这个问题,但我发现很难设计自己的包,例如,损坏的包,以弄清楚当包以某种方式损坏时系统会说什么。

所以我问,亲爱的 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 建议 bugtracker 上可能有一些“官方”文档,但您需要 ADC 成员(member)才能找到...

    我发现了什么:
  • 行开始 installer:PHASE 开始一个新阶段。文本可以作为标题显示给用户,完成百分比设置为0。
  • installer:STATUS 开头的行是进度通知,包含可以显示给用户的文本。没有给出完成的指示。
  • installer:% 开头的
  • 行表示完成程度:它们表示已完成工作的 FRACTION,而不是 PERCENTAGE。 (1.000000 == 完成,0.500000 == 中途)
  • 成功完成由以下行表示: installer: The install was successful.
  • 安装失败由以下行指示: installer: The install failed 在任何时候。
  • 如果前一行包含括号内的文本(通常类似于: installer: The install failed (The following install step failed: run <...>) 那么括号内的文本可以作为失败原因显示给用户。
  • 关于macos - 解析/usr/sbin/installer 的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1090575/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com