本节提供有关在用 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) 手册页。
响应文件中包含由交互式软件包询问的特定问题的答案。交互式软件包中有一个 request 脚本,该脚本会在安装软件包之前询问您几个问题,如是否应当安装软件包的可选部分。
如果在安装之前知道要安装的是交互式软件包,而且希望存储答案,以免在以后安装时进行用户交互,请使用 pkgask 命令保存您的答案。有关此命令的更多信息,请参见 pkgask(1M)。
在存储了 request 脚本所询问问题的答案之后,可以使用 pkgadd -r 命令来安装软件包,而无需用户交互。