系统管理指南:基本管理

将软件包添加到假脱机目录中

为方便起见,可以将经常安装的软件包复制到假脱机目录中。如果将软件包复制到缺省的假脱机目录 (/var/spool/pkg) 中,那么,在使用 pkgadd 命令时无需指定软件包的源位置(-d device-name 参数)。缺省情况下,pkgadd 命令会检查在命令行上指定的软件包是否存在于 /var/spool/pkg 目录中。请注意,将软件包复制到假脱机目录中不同于在系统上安装软件包。

Procedure如何将软件包添加到假脱机目录中 (pkgadd)

  1. 成为超级用户或同等角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见 《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”

  2. 删除与要添加的软件包同名的任何已假脱机的软件包。

    有关删除假脱机软件包的信息,请参见 示例 22–19

  3. 将软件包添加到假脱机目录中。


    # pkgadd -d device-name 
    -s spooldir pkgid ...
    -d device-name

    指定软件包的绝对路径。device-name 可以是设备、目录或假脱机目录的路径。

    -s spooldir

    指定该软件包进行假脱机的假脱机目录名称。必须指定 spooldir

    pkgid

    (可选)要添加到假脱机目录中的一个或多个软件包的名称,用空格分隔。如果省略,pkgadd 命令将复制所有可用的软件包。

  4. 检验软件包是否已成功复制到假脱机目录中。


    $ pkginfo -d spooldir
    | grep pkgid
    

    如果 pkgid 已正确复制,pkginfo 命令将返回一行与 pkgid 相关的信息。否则,pkginfo 命令将返回系统提示符。


示例 22–8 从已挂载 CD 设置假脱机目录

以下示例说明如何将 SUNWman 软件包从基于 SPARC 的已挂载 Oracle Solaris 10 CD 传送到缺省的假脱机目录 (/var/spool/pkg)。


# pkgadd -d /cdrom/cdrom0/Solaris_10/Product -s /var/spool/pkg SUNWman

Transferring <SUNWman> package instance


示例 22–9 从远程软件包服务器设置假脱机目录

如果要复制的软件包位于远程系统上,则可以(以软件包格式)手动挂载包含该软件包的目录,并将它们复制到本地的假脱机目录中。

以下示例说明了此方案中使用的命令。在本示例中,假设名为 package-server 的远程系统的 /latest-packages 目录中有软件包。mount 命令用来在 /mnt 上以本地方式挂载软件包目录。pkgadd 命令用来将 SUNWpl5p 软件包从 /mnt 复制到缺省的假脱机目录 (/var/spool/pkg)。


# mount -F nfs -o ro package-server:/latest-packages /mnt
# pkgadd -d /mnt -s /var/spool/pkg SUNWpl5p
Transferring <SUNWpl5p> package instance

如果站点上运行的是自动安装程序,则不必手动挂载远程软件包服务器,而会使用自动安装程序路径(在本示例中为 /net/package-server/latest-packages)作为 -d 选项的参数。


# pkgadd -d /net/package-server/latest-packages -s /var/spool/pkg SUNWpl5p

Transferring <SUNWpl5p> package instance


示例 22–10 从缺省的假脱机目录安装软件包

以下示例说明如何从缺省的假脱机目录安装 SUNWpl5p 软件包。如果不使用任何选项,pkgadd 命令将在 /var/spool/pkg 目录中搜索已命名的软件包。


# pkgadd SUNWpl5p
	.
	.
	.
Installation of <SUNWpl5p> was successful.