checkinstall 脚本在可选的 request 脚本执行之后不久执行。checkinstall 脚本以 install 用户身份运行(如果存在这样的用户),或者以 nobody 用户身份运行。checkinstall 脚本没有更改文件系统数据的权限。不过,它可以根据所收集的信息创建或修改环境变量,以控制所发生的安装的过程。该脚本还能够完全停止安装过程。
checkinstall 脚本旨在对文件系统执行基本检查,这些检查无法使用 pkgadd 命令正常执行。例如,此脚本可用于提前检查以确定当前软件包中是否有任何文件将覆写现有文件,或者将管理常规软件相关性。depend 文件只管理软件包级别的相关性。
与 request 脚本不同,无论是否提供了响应文件,checkinstall 脚本都会执行。存在该脚本并不表明软件包是交互式软件包。可使用 checkinstall 脚本的情形包括 request 脚本被禁用或管理交互无法实现。
checkinstall 脚本自 Solaris 2.5 及兼容发行版开始可用。
checkinstall 脚本不能修改任何文件。此脚本只分析系统的状态,并根据该交互创建环境变量赋值的列表。要强制执行此限制,checkinstall 脚本以非特权用户 install 身份执行(如果存在该用户)。否则,此脚本将以非特权用户 nobody 身份执行。checkinstall 脚本没有超级用户权限。
pkgadd 命令使用一个用于命名 checkinstall 脚本的响应文件的参数调用该脚本。脚本的响应文件用于存储管理员的响应。
在软件包删除期间,checkinstall 脚本不会执行。不过,该脚本指定的环境变量将被保存,并在软件包删除期间可用。
应该将环境变量赋值添加到安装环境(通过将其写入到响应文件),供 pkgadd 命令和其他打包脚本使用(对于该脚本称为 $1)。
checkinstall 脚本不能修改除 CLASSES 和 BASEDIR 参数之外的系统环境变量和标准安装环境变量。该脚本可以修改您创建的其他任何环境变量。
对于 checkinstall 脚本可以处理的每个环境变量,应该在 pkginfo 文件中为其指定一个缺省值。
输出列表的格式应该是 PARAM=value。例如:
CLASSES=none class1 |
在 checkinstall 脚本执行期间不允许与管理员交互。所有管理员交互仅限于 request 脚本。