将软件包或集合传输到系统。
pkgadd [ -d Device] [ -r Response] [ -n ] [ -a Admin] [ Pkginst1 [ Pkginst2 [. . .]]]
pkgadd -s Spool [ -d Device] [ Pkginst1 [ Pkginst2 [. . .]]]
pkgadd 命令从分发介质或目录中传输软件包或集合的内容以将其安装到系统。 软件包是相关文件和可独立安装的可执行文件的集合。集合由特殊用途的软件包(将它称作集合安装包(Set Installation Package (SIP)))和属于集合的一个或多个软件包的集合组成。SIP 控制集合的安装。
pkgadd 检查所有列在命令行中的软件包是否在安装介质中。如果所列软件包中任何一个不存在,就不改变系统,也就是说,所列软件包都不安装。
如果不带 -d 标志运行, pkgadd 在缺省的假脱机目录中寻找软件包( /var/spool/pkg)。如果带 -s 标志运行,它就将软件包写到假脱机目录而不是安装它。
错误消息总是被记录。另外,当 pkgadd 终止时,它就发送邮件(缺省情况下,给 root 用户),该邮件中包含所有的错误消息和哪些软件包被完全地、部分地或一点都没安装的总结。
-r 标志可以用来表示目录名,也可表示文件名。目录中可以包含很多 Response 文件,每个文件都使用与它相关的软件包的名字。例如,这将被使用在当一次调用 pkgadd 以添加多个交互式软件包时。 每个具有请求脚本(request script)的软件包将需要一个 Response 文件。 如果你创建一个与软件包名同名的 response 文件(例如,Package1 和 Package2),那么在 -r 标志之后,指明这些文件驻留的目录。
-n 标志导致安装停止,如果需要任一交互作用来完成它的话。
当不带在命令行中指定的 Pkginst 而调用时,如果至少有一个 SIP 存在于介质上,pkgadd 仅显示集合名。正因为此,如果有些软件包是集合的成员而有些又不是,你就不应该包含同一介质上的这些软件包。如果你包含了,那些不是集合成员的软件包仅当它们的 pkginst 名被提供在命令行中时才能安装。
pkgadd 命令检查是否 Pkginst 中的任何文件都已经安装到系统上,并且,如果任何文件已被安装,就在继续安装前保存这个事实。然后, pkgadd 不再在系统上重新安装这些文件。如果某个软件包安装脚本删去了这样一个文件,结果将是当软件包安装完毕时这个文件将不会在系统上。
pkgadd 命令在被 pkgmk 处理前不解压任何已经被压缩的文件(也就是说,仅仅是“ .Z ”形式的)。
该命令返回下列出口值:
0 | 脚本成功完成。 |
1 | 致命错误。在此点上安装进程终止。 |
2 | 警告或可能错误状态。安装继续。完成时显示警告消息。 |
3 | 脚本被中断并且可能完成不了。在此点上安装终止。 |
4 | 脚本被挂起(管理)。在此点上安装终止。 |
5 | 脚本被挂起(需要交互)。在此点上安装终止。 |
10 | 当所有选定的软件包的安装完成时系统应该重启。(这个值应该被加到上面所描述的某一个一位退出代码上。) |
20 | 当当前软件包安装完成时立即重启系统。(这个值应该被加到上面所描述的某一个一位退出代码上。) |
77 | 没有给集合选择软件包。 |
99 | 内部错误。 |
/var/sadm/install/admin/default | 缺省软件包管理文件 |
/var/sadm/install/logs/pkginst.log | 错误消息日志 |
/var/spool/pkg | 缺省假脱机目录 |
pkgask 命令、pkgchk 命令、pkginfo 命令、pkgmk 命令、pkgparam 命令、pkgrm 命令。