ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Image Packaging System のマニュアルページ Oracle Solaris 11 Information Library (日本語) |
- Image Packaging System パッケージマージユーティリティー
/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(1) を使用して作成できます。
ターゲットリポジトリを変更することなく、試験実行を行います。
このソースのパッケージに使用するバリアント名および値。そのあとに、パッケージを取得する元のソースリポジトリまたはパッケージアーカイブのファイルシステムのパスまたは 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 属性を使用して、競合しない 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 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/