系统管理指南:基本管理

在添加软件包时避免用户交互 (pkgadd)

本节提供有关在用 pkgadd 命令添加软件包时避免用户交互的信息。

使用管理文件

在使用 pkgadd -a 命令时,该命令会在一个特殊的管理文件中查找有关如何继续安装的信息。通常,pkgadd 命令会执行几项检查,并在实际添加指定软件包之前提示用户进行确认。但是,您也可以创建一个管理文件,指示 pkgadd 命令应忽略这些检查并且无需用户确认即安装软件包。

缺省情况下,pkgadd 命令会在当前工作目录中查找管理文件。如果 pkgadd 命令在当前工作目录中未找到管理文件,便会在 /var/sadm/install/admin 目录中查找指定的管理文件。pkgadd 命令还接受管理文件的绝对路径。


注 –

明智地使用管理文件。在使用管理文件之前,为了避免执行这些检查并避免出现 pkgadd 命令通常提供的提示,您应当知道软件包文件的安装位置以及软件包安装脚本的运行方式。


以下示例显示了一个管理文件,该管理文件禁止 pkgadd 命令在安装软件包之前提示用户进行确认。


mail=
instance=overwrite
partial=nocheck
runlevel=nocheck
idepend=nocheck
rdepend=nocheck
space=nocheck
setuid=nocheck
conflict=nocheck
action=nocheck
networktimeout=60
networkretries=3
authentication=quit
keystore=/var/sadm/security
proxy=
basedir=default

管理文件可用来在添加软件包时避免用户交互,除此之外,它还有几种其他用途。例如,使用管理文件,可以在出错时退出软件包安装(无用户交互),或者避免在通过 pkgrm 命令删除软件包时进行用户交互。

还可以为软件包指定一个特殊的安装目录,当您希望在系统上维护同一个软件包的多个版本时,您可能需要这样做。为此,可通过使用 basedir 关键字来在管理文件中设置备用基目录。该关键字指定要将软件包安装到的位置。有关更多信息,请参见 admin(4) 手册页。

使用响应文件 (pkgadd)

响应文件中包含由交互式软件包询问的特定问题的答案。交互式软件包中有一个 request 脚本,该脚本会在安装软件包之前询问您几个问题,如是否应当安装软件包的可选部分。

如果在安装之前知道要安装的是交互式软件包,而且希望存储答案,以免在以后安装时进行用户交互,请使用 pkgask 命令保存您的答案。有关此命令的更多信息,请参见 pkgask(1M)

在存储了 request 脚本所询问问题的答案之后,可以使用 pkgadd -r 命令来安装软件包,而无需用户交互。