更新するリポジトリの最新のスナップショットがあることを確認します。
$ zfs list -t all -r rpool/export/IPSpkgrepos/Solaris NAME USED AVAIL REFER MOUNTPOINT rpool/export/IPSpkgrepos/Solaris 17.6G 78.4G 34K /export/IPSpkgrepos/Solaris rpool/export/IPSpkgrepos/Solaris@initial 0 - 17.6G -
リポジトリのスナップショットがすでにある場合は、zfs diff コマンドを使用して、そのスナップショットがリポジトリデータセットと同じであるかどうかを確認します。
$ zfs diff rpool/export/IPSpkgrepos/Solaris@initial $
zfs diff コマンドで出力が生成されない場合、そのスナップショットは親データセットと同じであり、そのスナップショットを更新に使用できます。
zfs diff コマンドの出力があった場合、またはリポジトリのスナップショットがない場合は、インターネットからリポジトリを明示的にコピーする方法のStep 6 に示すように、新しいスナップショットを作成します。この新しいスナップショットを更新に使用します。
リポジトリのスナップショットをクローニングして、更新可能なリポジトリのコピーを作成します。
$ zfs clone rpool/export/IPSpkgrepos/Solaris@initial rpool/export/IPSpkgrepos/Solaris_tmp $ zfs list -r rpool/export/IPSpkgrepos/Solaris/ NAME USED AVAIL REFER MOUNTPOINT rpool/export/IPSpkgrepos/Solaris 17.6G 78.4G 34K /export/IPSpkgrepos/Solaris rpool/export/IPSpkgrepos/Solaris@initial 0 - 17.6G - rpool/export/IPSpkgrepos/Solaris_tmp 76K 78.4G 17.6G /export/IPSpkgrepos/Solaris_tmp
ファイルまたは HTTP の場所から元のリポジトリを作成したように、ファイルまたは HTTP の場所からリポジトリを更新できます。
Example 2–2 を参照してください。指定した宛先にパッケージリポジトリがすでにある場合は、zip ファイルの内容が既存のリポジトリの内容に追加されます。
$ mount -F hsfs ./sol-11_2-incr-repo.iso /mnt
iso ファイルからリポジトリをコピーする方法に示す rsync または tar のどちらかを使用します。
$ rsync -aP /mnt/repo/ /export/IPSpkgrepos/Solaris_tmp
別のリポジトリの内容をリポジトリクローンにコピーします。セキュアなサイトからコピーする場合は、必要な SSL 証明書および鍵がインストールされていることを確認し、必要な証明書および鍵のオプションを指定します。
$ pkgrecv -s https://pkg.oracle.com/solaris/support \ -d /export/IPSpkgrepos/Solaris_tmp \ --key /path-to-ssl_key --cert /path-to-ssl_cert '*'
pkgrecv コマンドの詳細は、pkgrecv(1) のマニュアルページを参照してください。変更されたパッケージのみが更新されるため、リポジトリを更新する時間は、元のリポジトリを取り込むためにかかる時間より大幅に短くなることがあります。リポジトリのコピーのパフォーマンスに関する考慮事項のパフォーマンスのヒントを参照してください。
pkgrecv 操作が中断された場合は、中断されたパッケージの受信の再開の手順に従います。
$ svcadm disable -st pkg/server:solaris $ zfs promote rpool/export/IPSpkgrepos/Solaris_tmp $ zfs rename rpool/export/IPSpkgrepos/Solaris rpool/export/IPSpkgrepos/Solaris_old $ zfs rename rpool/export/IPSpkgrepos/Solaris_tmp rpool/export/IPSpkgrepos/Solaris
svcadm コマンドの詳細は、svcadm(1M) のマニュアルページを参照してください。
pkgrepo verify コマンドを使用して、更新済みのリポジトリを検証します。pkgrepo verify および pkgrepo fix コマンドの詳細は、pkgrepo(1) のマニュアルページを参照してください。
新しく更新されたリポジトリで見つかった新しいパッケージをすべてカタログ化し、すべての検索インデックスを更新します。
$ pkgrepo refresh -s rpool/export/IPSpkgrepos/Solaris
$ zfs snapshot rpool/export/IPSpkgrepos/Solaris@S11U2SRU1
HTTP インタフェースを介してリポジトリを提供する場合は、SMF サービスを再起動します。サービスを再起動するときは、適切なサービスインスタンスを指定してください。
$ svcadm restart pkg/server:solaris
更新されたリポジトリが正しく動作していることを確認したら、古いリポジトリを削除できます。
$ zfs destroy rpool/export/IPSpkgrepos/Solaris_old