您的位置:首页 > 运维架构 > Linux

Linux pkgmk (安装包制作命令)用法

2011-03-18 10:44 447 查看

pkgmk 命令

用途

制作可安装的软件包。

语法

pkgmk [ -c ] [ -o ] [ -a Arch ] [ -b BaseDir ] [ -d Directory ] [ -f Prototype ] [ -l Limit ] [ -p PStamp ] [ -r RootPath ] [ -v Version ] [ Variable=Value ... ] [ PkgInst ]

描述

pkgmk 制作一个被用作 pkgadd 命令的输入的可安装软件包。软件包是相关文件和可独立安装的可执行文件的集合。软件包的内容将是目录结构格式。

pkgmk 命令将软件包原型文件用作输入,并且创建 pkgmap 文件。每个原型文件条目的内容被复制到适当的输出位置。关于内容的信息(校验和、文件大小和修改日期)被计算并被存储在 pkgmap 文件中,同时还有在原型文件中指定的属性信息。

标志

-a Arch用 Arch 覆盖 pkginfo 文件中提供的体系结构信息。
-b BaseDir预先考虑指定的 BaseDir 以在源及机器上定位可重定位的对象。
-c压缩非信息文件。当使用 -c 时,必须也指定 -r 选项。Prototype 文件中引用在 RootPath 规范之上的相对路径的条目将不会被压缩。任何在被 pkgmk 处理前已被压缩的文件(也就是仅那些“.Z”格式的文件)将不会被 pkgadd 命令解压。
-d Directory在 Directory 中创建软件包。指定的目录必须存在。
-f Prototype将文件 Prototype 用作命令的输入。该文件的缺省名或者是 Prototype 或者是 prototype。
可以使用 pkgproto 来创建 Prototype 文件。在这种情况下,必须为在软件包中使用的任何安装脚本和文件手工添加条目。仅需要你所使用的文件和脚本的条目。然而,必须总是为软件包中的 pkginfo 文件添加条目。参见 pkgproto 获取更多的信息。

-l Limit指定输出设备的以 512 字节大小的块表示的最大尺寸为 Limit 。 缺省情况下,如果输出文件是目录或可安装的设备, pkgmk 将使用 df 命令来动态计算输出设备上可用空间的数量。对于与 pkgtrans 关联来创建带数据流格式的软件包时很有用。
-o覆盖相同实例。如果已经存在,软件包实例将被覆盖。
-p PStamp用 PStamp 覆盖 pkginfo 文件中的产品戳记定义。
-r RootPath将 Prototype 文件中的源路径名附加到指定的 RootPath 中来定位源机器上的对象。
-v Version用 Version 覆盖 pkginfo 文件中提供的版本信息。
变量=值将指定变量放置到封装环境中。
PkgInst用于表示软件包名缩写的短字符串。pkgmk 将自动创建新实例,如果版本和/或体系结构不同的话。用户应该仅指定软件包名缩写;特殊的实例不应该被指定,除非用户要覆盖它。

示例

如果要创建一个 名为 mypkgA 且包含 lsps 和 lsuser 命令的软件包,必须首先创建软件包的内容。例如:
mkdir -p /home/myuser/example/pkgmk/sbin
cp /usr/sbin/lsps /home/myuser/example/pkgmk/sbin
cp /usr/sbin/lsuser /home/myuser/example/pkgmk/sbin

然后,创建 pkginfo 文件。在这个示例中, pkginfo 文件是 /home/myuser/example/pkgmk/pkginfo,它包含下列内容:
PKG="mypkgA"
NAME="My Package A"
ARCH="PPC"
RELEASE="1.0"
VERSION="2"
CATEGORY="Application"
PSTAMP="AIX  2001/02/05"

然后,创建 Prototype 文件 /home/myuser/example/pkgmk/prototype,它包含下列内容:
!search /home/myuser/example/pkgmk/sbin
i pkginfo=/home/myuser/example/pkgmk/pkginfo
d example /example 1777 bin bin
d example /example/pkgmk 1777 bin bin
d example /example/pkgmk/sbin 1777 bin bin
f example /example/pkgmk/sbin/lsps 555 bin bin
f example /example/pkgmk/sbin/lsuser 555 bin bin

然后,用上述的 Prototype 和 pkginfo 文件通过 pkgmk 命令创建软件包:
pkgmk -d /tmp -f /home/myuser/example/pkgmk/prototype

产生如下的输出:
Building pkgmap from package prototype file
## Processing pkginfo file
WARNING:parameter <CLASSES> set to "example"

## Attempting to volumize 5 entries in pkgmap
Part  1 -- 218 blocks, 10 entries
/tmp/mypkgA/pkgmap
/tmp/mypkgA/pkginfo
/tmp/mypkgA/root/example/pkgmk/sbin/lsps
/tmp/mypkgA/root/example/pkgmk/sbin/lsuser
## Packaging complete

新建的名为 mypkgA 的软件包现在存在于 /tmp/mypkgA 中。

退出状态

0脚本成功完成。
1致命错误。在此点上安装进程终止。
99内部错误。

文件

<
a95a
/a>

/usr/sbin/pkgmk包含 pkgmk 命令.
 

链接:

http://www.kuqin.com/aixcmds/aixcmds4/pkgmk.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息