繁体   English   中英

使用PackageMaker在安装时运行脚本

[英]Using PackageMaker to run a script on install

我有一个应用程序,我需要创建一个安装程序,并且所有安装程序需要做的(除了复制应用程序)运行的脚本(或可执行文件)不是应用程序本身的一部分。 有关如何做到这一点的任何帮助? 我在“ 需求”选项卡中看到“脚本结果” 操作 ,“ 操作”选项卡中还有“ 预安装操作” ,其中包含“ 打开文件”操作。 这些中的任何一个都可以完成这项工作,还是我应该在其

是一个很好的操作方法

在安装过程中可以启动7种类型的脚本:

InstallationCheck:此脚本在安装过程开始时启动(甚至在“身份验证”步骤之前)。 它可用于检查可以在此计算机上安装Package。

VolumeCheck:此脚本在“选择目标”步骤中启动。 它用于确定可以安装包的卷。

预检:此脚本在用户单击“安装”按钮后立即启动。

preinstall / preupgrade:如果有预检脚本,则在预检脚本之后启动此脚本(在单个软件包安装的情况下); 否则只需在用户点击“安装”按钮后。

如您所见,这里有两种类型的脚本。 从未安装Package时启动预安装(从Installer.app的角度来看),在安装Package时启动预升级。 要确定是否已安装Package,Installer.app将查看以下目录的内容:/ Library / Receipts。 如果其中有一个名为PackageName.pkg的文件,则已经安装了Package,否则它是第一次安装。

postinstall / postupgrade:安装包中的文件后启动此脚本。 请参阅(预安装/预升级)以查看启动了哪一个。

postflight:此脚本在postinstall / postupgrade脚本之后或安装包时启动。

我只是设法将Shell脚本包含在我使用PackageMaker创建的包中。 我需要在安装后将我的应用程序添加到登录项目中,因此我创建了一个名为postflight.sh的脚本并将其放入文件夹中。 (它似乎适用于任何位置)

然后在我的包中,我有应用程序。 在内容,包装:应用程序,在脚本选项卡,我选择postflight.sh在飞行后的部分。 而已。

我的postflight.sh开头

#!/bin/bash

然后它有一些脚本将应用程序放入登录项目。 当我没有那个时,我可以制作包,但安装失败了。 希望这是有帮助的。

PackageMaker方法文章已过时,但它有一些关于中途脚本的非常有用的信息。 查找显示从shell和perl看到的命令行变量的表,以及一些有用的退出状态值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM