ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1: ユーザーコマンド Oracle Solaris 11.1 Information Library (日本語) |
- Image Packaging System の公開クライアント
/usr/bin/pkgsend [options] command [cmd_options] [operands]
/usr/bin/pkgsend generate [-T pattern] [--target file] source ...
/usr/bin/pkgsend publish [-b bundle ...] [-d source ...] [-s repo_uri_or_path] [-T pattern] [--no-catalog] [manifest ...]
pkgsend では、パッケージのマニフェストを使用して、新しいパッケージと新しいパッケージのバージョンをイメージパッケージングリポジトリに公開できます。リポジトリを作成または管理するには、pkgrepo(1) を参照してください。既存のリポジトリ内でパッケージからパッケージアーカイブを作成するには、pkgrecv(1) を参照してください。パッケージのマニフェストの詳細は、pkg(5) を参照してください。
pkgsend 操作後に、リポジトリに対して pkgrepo refresh または pkgrepo rebuild を実行し、検索インデックスを構築します。
サポートしているオプションは、次のとおりです。
使用方法に関するメッセージを表示します。
サポートされているサブコマンドは次のとおりです。
各 source (SVR4 パッケージ、ディレクトリ、tar ファイルなど) を読み取り、その source を標準出力に表示するマニフェストを生成します。出力マニフェストで、file および dir アクションの所有者は root に設定され、グループは bin に設定されています。
これで、出力されたマニフェストに注釈を加え、pkgdepend を使用して依存関係を追加または分析し、pkglint を使用してその正当性を検証してから publish サブコマンドに渡すことができるようになります。
サポートされているソースを次に示します。
ファイルシステム形式の SVR4 パッケージ
データストリーム形式の SVR4 パッケージ
tar ファイル
ディレクトリ
ソース内のファイルのベース名が -T で指定されたパターンに一致している場合、ファイルのタイムスタンプがそのファイルのアクションに追加されます。pattern は、次のシェルマッチング規則を使用します。
すべてと一致します。
任意の単一文字と一致します。
seq 内にある任意の文字と一致します。
seq 内にない文字と一致します。
指定されたソースがディレクトリ内にある場合、単一の i ノードに対して複数のパス名があると、ファイルのアクションを ハードリンクのアクションと明確に区別できません。通常、ファイルシステム調査で最初に見つかったものがファイルとして扱われ、残りのものがハードリンクとして扱われます。この処理は、ファイルシステムの実装に応じて自由に設定できます。ファイルとして扱うパス名を指定するには、各パス名を引数として --target オプションに渡します。このオプションはほかの種類のソースには影響しません。これは、ソースにはパス名がファイルであるかハードリンクであるかを示す機能があるためです。
SVR4 パッケージがソースとして提供されている場合、pkgsend は、クラスアクションスクリプトを持つファイルが存在せず、プリインストールスクリプト、ポストインストールスクリプト、削除前スクリプト、または削除後スクリプトが存在することを確認します。manifest クラスを使用してインストールされた SMF マニフェストがある場合、例外が作成されます。BASEDIR は、すべての再配置可能パスから削除されます。
SVR4 DESC パラメータは、pkg.description 値に変換されます。SVR4 NAME パラメータは、pkg.summary 値に変換されます。
指定されたパッケージマニフェストを使用するパッケージをターゲットパッケージリポジトリに公開します。これにより、指定されたソースからそのパッケージ用のファイルが取得されます。複数のマニフェストが指定されている場合、それらのマニフェストは指定された順序で追加されます。マニフェストが指定されていない場合、stdin からマニフェストが読み取られます。
指定しない場合、pkgsend publish はビルドバージョンをパッケージ FMRI に追加します。publish ツールは、タイムスタンプも (UTC の現在時間) をパッケージ FMRI に追加します。パッケージ FMRI のバージョン文字列については、pkg (5) のマニュアルページを参照してください。
マニフェスト内でファイルを検索するときに、指定されたバンドルを検索するソースの一覧に追加します。バンドルは、tar ファイルや SVR4 パッケージなどのソースです。このオプションが複数回指定されている場合、ソースはコマンド行に表示される順序で検索されます。-b と -d の両方が指定されている場合、-d のソースが最初に検索されます。サポートされているバンドルとその使用方法の詳細は、前述の generate サブコマンドを参照してください。
マニフェスト内でファイルを検索するときに、指定されたディレクトリを検索するソースの一覧に追加します。このオプションが複数回指定されている場合、ソースはコマンド行に表示される順序で検索されます。サポートされているソースとその使用方法の詳細は、上記の generate サブコマンドを参照してください。
特定の URI またはファイルシステムパスに存在しているリポジトリにパッケージが公開されます。公開についての制限事項と推奨事項の詳細は、次の「注意事項」のセクションを参照してください。また、「環境変数」のセクションも参照してください。
パッケージを発行元のカタログに追加しません。パブリッシャーのカタログの更新は連続で実行されるため、複数のパッケージを一度に公開する場合には常にこのオプションを使用することを推奨します。公開が完了すると、pkgrepo の refresh サブコマンドを使用して、新しいパッケージを各発行元のカタログに追加できます。
-T オプションの説明については、前述の generate サブコマンドを参照してください。
公開先リポジトリのパスまたは URI です。
例 1 パッケージの生成と公開
pkgsend generate を使用してパッケージを作成し、そのパッケージを公開します。
$ pkgsend generate /path/to/proto > /path/to/manifests/foo.p5m
example.com パブリッシャーのパッケージ FMRI を、foo.p5m の先頭に追加します。
set name=pkg.fmri value=pkg://example.com/foo@1.0
結果として生成されるマニフェストは、次のようになります。
set name=pkg.fmri value=pkg://example.com/foo@1.0 dir group=sys mode=0755 owner=root path=usr dir group=bin mode=0755 owner=root path=usr/bin file usr/bin/foo group=bin mode=0555 owner=root path=usr/bin/foo
$ pkgsend publish -s http://example.com:10000 -d /path/to/proto \ /path/to/manifests/foo.p5m
例 2 簡易パッケージの作成と公開
次の行を含むパブリッシャー example.com に対してマニフェストを作成します。
set name=pkg.fmri value=pkg://example.com/foo@1.0-1 file /exdir/foo mode=0555 owner=root group=bin path=/usr/bin/foo
パッケージを公開します。
$ pkgsend publish -s http://example.com:10000 -d /exdir
例 3 既存のマニフェストの使用
ファイルシステムベースの公開と既存のマニフェストを使用してパッケージを公開します。
$ pkgsend publish -s /tmp/example_repo -d /tmp/pkg_files \ /tmp/pkg_manifest
次の終了ステータスが返されます。
コマンドが成功しました。
エラーが発生した。
無効なコマンド行オプションが指定された。
予期しない例外が発生しました。
次の属性については、attributes(5) を参照してください。
|
pkgdepend(1)、pkgrepo(1)、pkg.depotd(1M)、pkg(5)
http://hub.opensolaris.org/bin/view/Project+pkg/
公開プロトコルの制限事項により、サイズが 128MB を超えるパッケージファイルを個別に公開する場合には、ファイルシステムベースの公開を使用する必要があります。ファイルシステムベースの公開は、リポジトリのアクセス制御が必要な場合にも推奨されます。
ファイルシステムベースの公開を使用する場合、公開が完了して Web インタフェースまたは検索応答で変更が反映されたあとに、公開先リポジトリを提供している pkg.depotd プロセスを再開する必要があります。詳細は、pkg.depotd(1M) を参照してください。