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

退出打印视图

更新时间: 2014 年 7 月
 
 

将必要的元数据添加到生成的清单中

软件包应该定义以下元数据。有关这些值以及如何设置这些值的更多信息,请参见设置操作

pkg.fmri

软件包名称软件包版本中所介绍的软件包的名称和版本。软件包发布后会自动添加发布者名称,如发布软件包中所示。有关 Oracle Solaris 中版本控制的说明,请参见Oracle Solaris 软件包版本

pkg.description

软件包内容的描述。

pkg.summary

单行描述概要。

variant.arch

该软件包适用的每种体系结构。如果整个软件包可以安装在任何体系结构中,则可以省略 variant.archChapter 5, 允许变量中讨论了生成包含用于不同体系结构的不同组件的软件包。

info.classification

packagemanager(1) GUI 使用的分组方案。支持的值显示在Appendix A, 对软件包进行分类中。本节中的示例随机指定了一个等级。

此示例还将 link 操作添加到 /usr/share/man/index.d 中,指向 mysoftware 下的 man 目录。添加需要的任何侧面或执行器中进一步介绍了该链接。

请使用 pkgmogrify(1) 编辑生成的清单,而不要直接修改清单。有关使用 Chapter 6, 以编程方式修改软件包清单 修改软件包清单的完整说明,请参见Chapter 6, Modifying Package Manifests Programmatically

创建以下 pkgmogrify 输入文件以指定要对清单进行的更改。将此文件命名为 mypkg.mog。在此示例中,使用宏定义体系结构,使用正则表达式匹配从清单中删除 /opt 目录。

set name=pkg.fmri value=mypkg@1.0,5.11-0
set name=pkg.summary value="This is an example package"
set name=pkg.description value="This is a full description of \
all the interesting attributes of this example package."
set name=variant.arch value=$(ARCH)
set name=info.classification \
    value=org.opensolaris.category.2008:Applications/Accessories
link path=usr/share/man/index.d/mysoftware target=/opt/mysoftware/man
<transform dir path=opt$->drop>

mypkg.p5m.1 清单运行 pkgmogrifymypkg.mog 已更改):

$ pkgmogrify -DARCH=`uname -p` mypkg.p5m.1 mypkg.mog | pkgfmt > mypkg.p5m.2

输出的 mypkg.p5m.2 文件包含以下内容。path=optdir 操作已删除,并且 mypkg.mog 中的元数据和链接内容已添加到原始的 mypkg.p5m.1 内容中。

set name=pkg.fmri value=mypkg@1.0,5.11-0
set name=pkg.summary value="This is an example package"
set name=pkg.description \
    value="This is a full description of all the interesting attributes of this 
example package."
set name=info.classification \
    value=org.opensolaris.category.2008:Applications/Accessories
set name=variant.arch value=i386
dir  path=opt/mysoftware owner=root group=bin mode=0755
dir  path=opt/mysoftware/bin owner=root group=bin mode=0755
file opt/mysoftware/bin/mycmd path=opt/mysoftware/bin/mycmd owner=root \
    group=bin mode=0644
dir  path=opt/mysoftware/lib owner=root group=bin mode=0755
file opt/mysoftware/lib/mylib.so.1 path=opt/mysoftware/lib/mylib.so.1 \
    owner=root group=bin mode=0644
dir  path=opt/mysoftware/man owner=root group=bin mode=0755
dir  path=opt/mysoftware/man/man1 owner=root group=bin mode=0755
file opt/mysoftware/man/man1/mycmd.1 path=opt/mysoftware/man/man1/mycmd.1 \
    owner=root group=bin mode=0644
link path=usr/share/man/index.d/mysoftware target=/opt/mysoftware/man