Oracle® Solaris 11.2 での Image Packaging System を使用したソフトウェアのパッケージ化と配布

印刷ビューの終了

更新: 2014 年 7 月
 
 

パッケージパブリッシャーの変更

もう 1 つの一般的な使用事例は、新しいパブリッシャー名でパッケージを再発行することです。これが有効な場合の事例として、複数のリポジトリからのパッケージを 1 つのリポジトリに統合することがあげられます。たとえば、統合テストのために、いくつかの異なる開発チームのリポジトリからのパッケージを 1 つのリポジトリに統合することが必要な場合があります。

新しいパブリッシャー名で再発行するには、前の例に示した pkgrecvpkgmogrifypkgrepo、および pkgsend の手順を使用します。

次の変換の例では、パブリッシャーを mypublisher に変更します。

<transform set name=pkg.fmri -> edit value pkg://[^/]+/ pkg://mypublisher/>

単純なシェルスクリプトを使用すれば、リポジトリ内のパッケージ全体にわたって繰り返すことができます。リポジトリからの最新のパッケージのみを処理するには、pkgrecv --newest からの出力を使用します。

次のスクリプトでは、上記の変換を change-pub.mog というファイルに保存し、そのあとで development-repo から新しいリポジトリ new-repo に再発行し、その途中でパッケージのパブリッシャーを変更します。

#!/usr/bin/ksh93
pkgrepo create new-repo
pkgrepo -s new-repo 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 new-repo publish -d $pdir $pdir/manifest.newpub
done

このスクリプトは、特定のパッケージのみを選択する、パッケージのバージョン管理スキームに追加の変更を加える、各パッケージを再発行するときの進捗を示す、などのタスクを実行するように変更できます。