ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 での Image Packaging System を使用したソフトウェアのパッケージ化および配布 Oracle Solaris 11.1 Information Library (日本語) |
もう 1 つの一般的な使用事例は、新しい発行元名でパッケージを再発行することです。これが有効な場合の事例として、複数のリポジトリからのパッケージを 1 つのリポジトリに統合することがあげられます。たとえば、統合テストのために、いくつかの異なる開発チームのリポジトリからのパッケージを 1 つのリポジトリに統合することが必要な場合があります。
新しい発行元名で再発行するには、前の例に示した pkgrecv、pkgmogrify、pkgrepo、および pkgsend の手順を使用します。
次の変換の例では、発行元を mypublisher に変えます。
<transform set name=pkg.fmri -> edit value pkg://[^/]+/ pkg://mypublisher/>
単純なシェルスクリプトを使用すれば、リポジトリ内のパッケージ全体にわたって繰り返すことができます。リポジトリからの最新のパッケージのみを処理するには、pkgrecv --newest からの出力を使用します。
次のスクリプトでは、上記の変換を change-pub.mog というファイルに保存し、そのあとで development-repo から新しいリポジトリ mypublisher に再発行し、その途中でパッケージの発行元を変更します。
#!/usr/bin/ksh93 pkgrepo create mypublisher pkgrepo -s mypublisher set publisher/prefix=mypublisher mkdir incoming for package in $(pkgrecv -s ./development-repo --newest); do pkgrecv -s development-repo -d incoming --raw $package done for pdir in incoming/*/* ; do pkgmogrify $pdir/manifest change-pub.mog > $pdir/manifest.newpub pkgsend -s mypublisher publish -d $pdir $pdir/manifest.newpub done
このスクリプトは、特定のパッケージのみを選択する、パッケージのバージョン管理スキームに追加の変更を加える、各パッケージを再発行するときの進捗を示す、などのタスクを実行するように変更できます。