JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Image Packaging System のマニュアルページ     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

ユーザーコマンド

packagemanager(1)

pkg(1)

pkgdepend(1)

pkgdiff(1)

pkgfmt(1)

pkglint(1)

pkgmerge(1)

pkgmogrify(1)

pkgrecv(1)

pkgrepo(1)

pkgsend(1)

pkgsign(1)

pm-updatemanager(1)

システム管理コマンド

標準、環境、マクロ

pkgsend

- 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 を実行し、検索インデックスを構築します。

オプション

サポートしているオプションは、次のとおりです。

--help or -?

使用方法に関するメッセージを表示します。

サブコマンド

サポートされているサブコマンドは次のとおりです。

generate [-T pattern] [--target file] source ...

source (SVR4 パッケージ、ディレクトリ、tar ファイルなど) を読み取り、その source標準出力に表示するマニフェストを生成します。出力マニフェストで、file および dir アクションの所有者は root に設定され、グループは bin に設定されています。

これで、出力されたマニフェストに注釈を加え、pkgdepend(1) を使用して依存関係を追加または分析し、 pkglint(1) を使用してその正当性を検証してから publish サブコマンドに渡すことができるようになります。

サポートされているソースを次に示します。

  • ファイルシステム形式の SVR4 パッケージ

  • データストリーム形式の SVR4 パッケージ

  • tar ファイル

  • ディレクトリ

ソース内のファイルのベース名が -T で指定されたパターンに一致している場合、ファイルのタイムスタンプがそのファイルのアクションに追加されます。pattern は、次のシェルマッチング規則を使用します。

*

すべてと一致します。

?

任意の単一文字と一致します。

[seq]

seq 内にある任意の文字と一致します。

![seq]

seq 内にない文字と一致します。

指定されたソースがディレクトリ内にある場合、単一の i ノードに対して複数のパス名があると、ファイルのアクションを ハードリンクのアクションと明確に区別できません。通常、ファイルシステム調査で最初に見つかったものがファイルとして扱われ、残りのものがハードリンクとして扱われます。この処理は、ファイルシステムの実装に応じて自由に設定できます。ファイルとして扱うパス名を指定するには、各パス名を引数として --target オプションに渡します。このオプションはほかの種類のソースには影響しません。これは、ソースにはパス名がファイルであるかハードリンクであるかを示す機能があるためです。

SVR4 パッケージがソースとして提供されている場合、pkgsend は、クラスアクションスクリプトを持つファイルが存在せず、プリインストールスクリプト、ポストインストールスクリプト、削除前スクリプト、または削除後スクリプトが存在することを確認します。manifest クラスを使用してインストールされた SMF マニフェストがある場合、例外が作成されます。BASEDIR は、すべての再配置可能パスから削除されます。

SVR4 DESC パラメータは、pkg.description 値に変換されます。SVR4 NAME パラメータは、pkg.summary 値に変換されます。

publish [-b bundle ...] [-d source ...] [-s repo_uri_or_path] [-T pattern] [--no-catalog] [manifest ...]

指定されたパッケージマニフェストを使用するパッケージをターゲットパッケージリポジトリに公開します。これにより、指定されたソースからそのパッケージ用のファイルが取得されます。複数のマニフェストが指定されている場合、それらのマニフェストは指定された順序で追加されます。マニフェストが指定されていない場合、stdin からマニフェストが読み取られます。

-b を指定すると、マニフェスト内でファイルを検索するときに、指定されたバンドルが、検索するソースの一覧に追加されます。バンドルは、tar ファイルや SVR4 パッケージなどのソースです。このオプションが複数回指定されている場合、ソースはコマンド行に表示される順序で検索されます。-b-d の両方が指定されている場合、-d のソースが最初に検索されます。サポートされているバンドルとその使用方法の詳細は、上記の generate サブコマンドを参照してください。

-b を指定すると、マニフェスト内でファイルを検索するときに、指定されたディレクトリが、検索するソースの一覧に追加されます。このオプションが複数回指定されている場合、ソースはコマンド行に表示される順序で検索されます。サポートされているソースとその使用方法の詳細は、上記の generate サブコマンドを参照してください。

-s を指定すると、特定の URI またはファイルシステムパスに存在しているリポジトリにパッケージが公開されます。公開についての制限事項と推奨事項の詳細は、次の「注意事項」のセクションを参照してください。また、「環境変数」のセクションも参照してください。

--no-catalog を指定すると、パブリッシャーのカタログにパッケージが追加されなくなります。パブリッシャーのカタログの更新は連続で実行されるため、複数のパッケージを一度に公開する場合には常にこのオプションを使用することを推奨します。公開が完了すると、pkgrepo(1) の refresh サブコマンドを使用して、新しいパッケージを各パブリッシャーのカタログに追加できます。

その他のすべてのオプションの使用法と効果については、上記の generate サブコマンドを参照してください。

環境変数

PKG_REPO

公開先リポジトリのパスまたは 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

終了ステータス

次の終了ステータスが返されます。

0

コマンドが成功しました。

1

エラーが発生した。

2

無効なコマンド行オプションが指定された。

99

予期しない例外が発生しました。

属性

次の属性については、attributes(5) を参照してください。

属性タイプ
属性値
使用条件
package/pkg
インタフェースの安定性
不確実

関連項目

pkgdepend(1)pkgrepo(1)pkg.depotd(1m)pkg(5)

http://hub.opensolaris.org/bin/view/Project+pkg/

注意事項

公開プロトコルの制限事項により、サイズが 128MB を超えるパッケージファイルを個別に公開する場合には、ファイルシステムベースの公開を使用する必要があります。ファイルシステムベースの公開は、リポジトリのアクセス制御が必要な場合にも推奨されます。

ファイルシステムベースの公開を使用する場合、公開が完了して Web インタフェースまたは検索応答で変更が反映されたあとに、公開先リポジトリを提供している pkg.depotd プロセスを再開する必要があります。詳細は、pkg.depotd(1M) を参照してください。