确实在MacOSX pkg中调用了postupgrade?

时间:2017-10-05 13:07:57

标签: macos pkgbuild post-install

早上好,我正在阅读MacOSX中准备好的脚本,以便在为我的应用程序创建pkg时使用。

特别是,我对如何确保使用postupgrade脚本有一些疑问。 我到现在所读到的是: 来自here

  

如果已安装文件,则在postflight脚本(如果已定义)之前运行postupgrade脚本。仅当先前已安装该组件时,才会运行此脚本。如果脚本未返回零退出状态,则安装程序将声明安装失败。

好的,似乎postupgrade只会在升级完成后自动运行。但是......来自man pkgbuild--scripts scripts-path

部分
  

将脚本路径的全部内容归档为包脚本。如果此目录包含名为preinstall和/或postinstall的脚本,则这些脚本将作为程序包的顶级脚本运行。如果要为特定包运行脚本,则必须在组件属性列表中指定这些脚本;在COMPONENT PROPERTY LIST上查看更多信息。只有在顶级或特定于组件的脚本调用它们时,才会使用scripts-path下的任何其他文件。

所以,似乎我应该将它添加到component.plist中,因为他们没有对postupgrade说什么。但是看起来很奇怪,我会在那里放置更具体的脚本,而不是postupgrade脚本。

阅读更多内容后,我发现it引用了this,其中有以下内容:

  

要确定是否已安装Package,Installer.app将查看以下目录的内容:/ Library / Receipts。如果其中有一个名为PackageName.pkg的文件,那么Package已经安装,否则就是第一次安装。

好吧,我的应用程序没有留下pkg文件,但是它存在于InstallHistory.plist中。

嗯,最后一个问题:我应该在某处设置升级脚本,例如在component.plist文件中?最后一个链接似乎已经过时了,有些变化了吗?如何在/Library/Receipts内放置一个pkg文件?或者更好的是,如何确定我的安装确实是安装而不是升级,或者反之亦然?

谢谢大家,我有点困惑......

0 个答案:

没有答案