手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

pkgmk(1)

名称

pkgmk - 生产可安装的软件包

用法概要

pkgmk [-o] [-a arch] [-b base_src_dir] [-d device] 
     [-f prototype] [-l limit] [-p pstamp] [-r root_path] 
     [-v version] [variable=value]... [pkginst]

描述

pkgmk 实用程序生产可安装的软件包,用作 pkgadd(1M) 命令的输入。软件包内容是目录结构格式。

命令将软件包 prototype(4) 文件作为输入,创建 pkgmap(4) 文件。prototype 文件中每个条目的内容将复制到相应的输出位置。有关内容(校验和、文件大小、修改日期)的信息都在 pkgmap 文件中计算和存储,还包括在 prototype 文件中指定的信息。

pkgmk 搜索 prototype(4) 文件中列出的文件,如以下条件所述。注意:如果样例文件包含文件的显式位置以包括在软件包中,则以下搜索说明不适用。

  1. 如果 –b–r 选项都未指定,prototype(4) 文件中列出的每个文件路径的文件名部分应可以在与 prototype(4) 文件相同的目录中找到。

  2. 如果 –b 指定为相对路径(无前导 "/"),则 base_src_dir 会放到针对 prototype(4) 文件的相对路径前面。将在 root_path 目录中搜索生成的路径。如果未指定 root_path,它缺省为 "/"。

  3. 如果 –b 指定为绝对路径(具有前导 "/"),则 base_src_dir 会放到针对 prototype(4) 文件的相对路径前面,结果即为文件的位置。搜索 root_path

  4. 如果指定了 –r 选项,则使用针对 prototype(4) 文件的全文件路径。相对路径前面都有 base_src_dir。如果未指定 base_src_dir,它缺省为 ""。在 root_path 的每个目录中搜索生成的路径。

如果使用 "pkgproto a/relative/path""pkgproto a/relative/path=install/path" 创建了样例文件,则应该使用 –r root_path 选项指定 a/relative/path 的位置,使 pkgmk 可以正确定位源文件。

软件包命令,包括 pkgmk,都可以识别 largefile(5)。它们处理大于 2 GB 的文件的方法与处理较小文件的方法相同。在当前的执行中,pkgadd(1M)pkgtrans(1) 和其他软件包命令可以处理最大 4 GB 的数据流。

选项

支持以下选项:

–a arch

使用 arch 覆盖 pkginfo(4) 文件中提供的体系结构信息。

–b base_src_dir

在前面添加指定的 base_src_dir,来定位源计算机上的可重定位目标文件。使用此选项搜索样例文件中的所有目标文件。pkgmk 应分别在 /base_src_dir 中查找目标文件,或者使用 –b–r 选项定位目标文件。

–d device

device 上创建软件包。device 可以是可移除磁盘的绝对目录路径名或标识符。缺省设备是安装假脱机目录 (/var/spool/pkg)。

–f prototype

使用 prototype 文件作为命令的输入。缺省的 prototype 文件名是 [Pp]rototype

–l limit

将输出设备的 512 字节块的最大大小指定为 limit。在缺省情况下,如果输出文件是一个目录或可挂载设备,pkgmk 使用 df(1M) 命令动态地计算输出设备中的可用空间容量。此选项在与 pkgtrans(1)结合使用时可用来创建数据流格式的软件包。

–o

覆盖相同的实例;已存在的软件包实例会被覆盖。

–p pstamp

使用 pstamp 覆盖 pkginfo(4) 文件中的生产标记定义。

–r root_path

使用附加了源路径名的指定 root_path 来定位源计算机上的目标文件,可以用逗号 (,) 作为路径元素的分隔符。如果指定了此选项,在指定的每个目录中搜索全目标路径。如果 –b–r 选项都未指定,则在当前目录中搜索叶文件名。

–v version

使用 version 覆盖 pkginfo(4) 文件中提供的版本信息。

variable=value

将指定的变量放在软件包环境中。(有关变量规范的定义,请参见 prototype(4)。)

操作数

支持下列操作数:

pkginst

按软件包实例指定软件包。实例可以是软件包缩写或特定的实例(例如,inst.1inst.2)。可以通过 inst.* 请求软件包的所有实例。星号字符 (*) 对于某些 shell 来说是特殊字符,可能需要转义。在 C-Shell 中, * 必须由单引号 (') 括起来或者在前面加反斜杠 (\)。

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

pkgparam(1)pkgproto(1)pkgtrans(1)uname(1)df(1M)pkgadd(1M)pkginfo(4)pkgmap(4)prototype(4)attributes(5)largefile(5)

在 Oracle Solaris 11.2 中使用映像包管理系统打包和交付软件

附注

体系结构信息在命令行中通过 –a 选项提供,或在 prototype(4) 文件中提供。如果没有提供体系结构信息, pkgmk 使用 uname –m 的输出。(请参见 uname(1))。

版本信息在命令行中通过 –v 选项提供,或在 pkginfo(4) 文件中提供。如果没有提供版本信息,将提供基于当前日期的缺省信息。

体系结构和版本的命令行定义将覆盖 prototype(4) 的定义。

如果使用以下区域相关参数的无效组合之一,pkgmk 将失败。

  1. SUNW_PKG_ALLZONES 和 SUNW_PKG_THISZONE 都设置为 TRUE

  2. SUNW_PKG_HOLLOW 设置为 TRUE,且 SUNW_PKG_ALLZONES 设置为 FALSE

  3. 软件包包含请求脚本,且 SUNW_PKG_THISZONE 设置为 TRUE

有关这些参数的其他信息,请参见 pkginfo(4)