应用程序包开发者指南

软件包环境变量

您可以使用必需的信息文件 pkginfoprototype 中的变量。也可以使用 pkgmk 命令的选项,该命令用于生成软件包。随着本章对这些文件和命令的讨论,将会提供更多有关这些变量的上下文相关信息。不过,在开始生成软件包之前,您应该了解不同类型的变量,以及它们如何影响软件包的成功创建。

变量可以分为两种类型:

关于使用环境变量的一般规则

pkginfo 文件中,变量定义采用 PARAM=value 形式,其中,PARAM 的首字母是大写字母。仅在安装时对这些变量进行计算。如果这些变量中的任一个不能被计算,则 pkgadd 命令将出错而异常中止。

prototype 文件中,变量定义可采用 !PARAM=value$ variable 形式。PARAMvariable 均可以一个大写或小写字母开头。只有在生成时值已知的变量才会被计算。如果 PARAMvariable 是在生成时值未知的生成变量或安装变量,则 pkgmk 命令将出错而异常中止。

您还可以将 PARAM=value 选项用作 pkgmk 命令的选项。此选项的作用与在 prototype 文件中基本相同,只不过其作用域是全局的,适用于整个软件包。 prototype 文件中的 !PARAM=value 定义是局部的,仅适用于该文件及其所定义的软件包组成部分。

如果 PARAM 是安装变量,而 variable 是值已知的安装变量或生成变量,则 pkgmk 命令会将定义插入到 pkginfo 文件中,以便该定义在安装时可用。但是,pkgmk 命令不会计算在 prototype 文件中指定的任何路径名中的 PARAM 变量。

软件包环境变量汇总

下表汇总了变量的规范格式、位置和作用域。

表 2–2 软件包环境变量汇总

变量的定义位置 

变量定义格式 

定义的变量类型 

变量计算时间 

变量计算位置 

变量可以替换的项目 

pkginfo 文件

PARAM=value

生成 

在生成时忽略 

N/A 

无 

   

安装 

安装时 

pkgmap 文件中

ownergrouppath 或链接目标

prototype 文件

!PARAM=value

生成 

生成时 

prototype 文件和任何内含的文件中

modeownergrouppath

   

安装 

生成时 

prototype 文件和任何内含的文件中

!search!command 命令

pkgmk 命令行

PARAM=value

生成 

生成时 

prototype 文件中

modeownergrouppath

   

安装 

生成时 

prototype 文件中

!search 命令

     

安装时 

pkgmap 文件中

ownergrouppath 或链接目标