跳过导航链接 | |
退出打印视图 | |
手册页第 1 部分:用户命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 映像包管理系统软件包合并实用程序
/usr/bin/pkgmerge [-n] -d dest_repo -s variant=value[,...],src_repo ... [pkg_fmri_pattern ...]
pkgmerge 是一种用于创建多变量软件包的软件包发布工具。它通过合并具有相同名称和版本的软件包(时间戳除外),使用给定源的指定变量名称和值标记合并的版本中的唯一操作,然后将新的软件包发布到目标系统信息库,从而实现此操作。仅使用每个源中各软件包的最新版本。
如果将某一操作的 pkg.merge.blend 属性设置为要合并变量的名称,则在合并之前将该操作复制到其他清单,以便在最终输出中显示该操作时不显示任何已添加的变量标记。请注意,属性 pkg.merge.blend 本身已从输出清单的所有操作中删除。对于多个传递合并,可以使用不同的值重复该属性。
在输入清单中交付到同一路径的不同操作将导致 pkgmerge 因错误而退出。
支持以下选项:
显示用法消息。
指定要将合并软件包发布到的目标系统信息库的文件系统路径或 URI。目标系统信息库必须已存在。可以使用 pkgrepo 创建新的系统信息库。
执行试运行,不对目标系统信息库进行任何更改。
指定用于该源的软件包的变量名称和值,后跟要从中检索软件包的源系统信息库或软件包归档文件的文件系统路径或 URI。可指定多个变量,以逗号分隔。必须为所有源命名相同的变量。可以多次指定此选项。
支持以下环境变量:
在程序执行期间用于存储临时数据的目录的绝对路径。如果未设置,则存储临时数据的缺省路径为 /var/tmp。
示例 1 指定变量名称和值
使用为从中检索到软件包的源指定的给定变量名称和值标记在指定源中发现的每个软件包:
$ pkgmerge -s arch=sparc,http://src.example.com \ -d http://dest.example.com
样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z dir group=sys mode=0755 owner=root path=usr
操作后的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z set name=variant.arch value=sparc dir group=sys mode=0755 owner=root path=usr
示例 2 合并和发布软件包
合并给定源中每个软件包的最新版本并将新软件包发布到目标系统信息库:
$ pkgmerge -s arch=sparc,http://src1.example.com \ -s arch=i386,http://src2.example.com \ -d /path/to/target/repository
源 1 (SPARC) 中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121410Z file id mode=0555 owner=root group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
源 2 (i386) 中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z file id mode=0555 owner=root group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
合并软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z set name=variant.arch value=sparc value=i386 file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=sparc file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=i386 dir group=sys mode=0755 owner=root path=usr
示例 3 合并 i386 和 SPARC 系统的调试和非调试软件包
在一组用于 i386 和 SPARC 系统的调试及非调试系统信息库中,合并每个软件包的最新版本:
$ pkgmerge -s arch=sparc,debug=false,/repo/sparc-nondebug \ -s arch=sparc,debug=true,/repo/sparc-debug \ -s arch=i386,debug=false,/repo/i386-nondebug \ -s arch=i386,debug=true,/repo/i386-debug \ -d /path/to/target/repository
源 1(SPARC 非调试)中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121410Z file id mode=0555 owner=root group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
源 2(SPARC 调试)中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121411Z file id mode=0555 owner=root group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
源 3(i386 非调试)中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z file id mode=0555 owner=root group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
源 4(i386 调试)中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163428Z file id mode=0555 owner=root group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
合并软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163428Z set name=variant.arch value=sparc value=i386 set name=variant.debug value=false value=true file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=sparc variant.debug=false file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=sparc variant.debug=true file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=i386 variant.debug=false file id mode=0555 owner=root group=bin path=usr/bin/foo variant.arch=i386 variant.debug=true dir group=sys mode=0755 owner=root path=usr
示例 4 使用 pkg.merge.blend 合并
使用 pkg.merge.blend 属性合并两个不相互冲突的体系结构的软件包。
$ pkgmerge -s arch=sparc,http://src1/example.com \ -s arch=i386,http://src2.example.com \ -d /path/to/target/repository
源 1 (SPARC) 中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T121410Z file 1d5eac1aab628317f9c088d21e4afda9c754bb76 mode=0555 owner=root \ group=bin path=usr/bin/sparc/foo pkg.merge.blend=arch file d285ada5f3cae14ea00e97a8d99bd3e357caadc0 mode=0555 owner=root \ group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
源 2 (i386) 中的样例软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z file a285ada5f3cae14ea00e97a8d99bd3e357cb0dca mode=0555 owner=root \ group=bin path=usr/bin/i386/foo pkg.merge.blend=arch file d285ada5f3cae14ea00e97a8d99bd3e357caadc0 mode=0555 owner=root \ group=bin path=usr/bin/foo dir group=sys mode=0755 owner=root path=usr
合并软件包:
set name=pkg.fmri value=pkg://example.com/foo@5.11,5.11-0.200:20381001T163427Z set name=variant.arch value=sparc value=i386 file d285ada5f3cae14ea00e97a8d99bd3e357caadc0 mode=0555 owner=root \ group=bin path=usr/bin/foo file a285ada5f3cae14ea00e97a8d99bd3e357cb0dca mode=0555 owner=root \ group=bin path=usr/bin/i386/foo file 1d5eac1aab628317f9c088d21e4afda9c754bb76 mode=0555 owner=root \ group=bin path=usr/bin/sparc/foo dir group=sys mode=0755 owner=root path=usr
将返回以下退出值:
命令成功。
出现错误。
指定的命令行选项无效。
发生了意外的异常。
有关下列属性的说明,请参见 attributes(5):
|
http://hub.opensolaris.org/bin/view/Project+pkg/