Go to main content
Oracle® Solaris 11.3 パッケージリポジトリのコピーと作成

印刷ビューの終了

更新: 2016 年 11 月
 
 

ローカルの IPS パッケージリポジトリを更新する方法


注 -  svc:/application/pkg/mirror SMF サービスを使用してリポジトリを定期的に更新している場合は、この手順を実行する必要はありません。mirror サービスを使用する手順については、インターネットからリポジトリを自動的にコピーする方法を参照してください。
  1. パッケージリポジトリの ZFS スナップショットを作成します。

    更新するリポジトリの最新のスナップショットがあることを確認します。

    $ zfs list -rt all rpool/VARSHARE/pkgrepos/solaris
    NAME                                          USED  AVAIL  REFER  MOUNTPOINT
    rpool/VARSHARE/pkgrepos/solaris              17.6G  78.4G    34K  /var/share/pkgrepos/solaris
    rpool/VARSHARE/pkgrepos/solaris@initial          0      -  17.6G  -

    リポジトリのスナップショットがすでにある場合は、zfs diff コマンドを使用して、そのスナップショットがリポジトリデータセットと同じであるかどうかを確認します。

    $ zfs diff rpool/VARSHARE/pkgrepos/solaris@initial
    $

    zfs diff コマンドで出力が生成されない場合、そのスナップショットは親データセットと同じであり、そのスナップショットを更新に使用できます。

    zfs diff コマンドの出力があった場合、またはリポジトリのスナップショットがない場合は、インターネットからリポジトリを明示的にコピーする方法Step 6 に示すように、新しいスナップショットを作成します。この新しいスナップショットを更新に使用します。

  2. パッケージリポジトリの ZFS クローンを作成します。

    リポジトリのスナップショットをクローニングして、更新可能なリポジトリのコピーを作成します。

    $ zfs clone rpool/VARSHARE/pkgrepos/solaris@initial rpool/VARSHARE/pkgrepos/solaris_tmp
    $ zfs list -rt all rpool/VARSHARE/pkgrepos
    NAME                                          USED  AVAIL  REFER  MOUNTPOINT
    rpool/VARSHARE/pkgrepos                      17.6G  78.4G    34K  /var/share/pkgrepos
    rpool/VARSHARE/pkgrepos/solaris              17.6G  78.4G  17.6G  /var/share/pkgrepos/solaris
    rpool/VARSHARE/pkgrepos/solaris@initial          0      -  17.6G  -
    rpool/VARSHARE/pkgrepos/solaris_tmp            76K  78.4G  17.6G  /var/share/pkgrepos/solaris_tmp
  3. パッケージリポジトリの ZFS クローンを更新します。

    ファイルまたは HTTP の場所から元のリポジトリを作成したように、ファイルまたは HTTP の場所からリポジトリを更新できます。

    • zip ファイルから更新します。
      1. 使用例 2の手順に従います。

        リポジトリを検証するために、install-repo.ksh スクリプトに -v オプションを指定します。

        指定された宛先にすでにパッケージリポジトリが含まれている場合は、zip ファイルの内容が既存のリポジトリの内容に追加され、カタログとインデックスを更新するために pkgrepo rebuild が実行されます。

      2. 後述のStep 6 に進みます。
    • ISO ファイルから更新します。
      1. ISO ファイルを作成します。

        使用例 1の説明に従って、-I オプションを使用して、リポジトリの .zip ファイルから .iso ファイルを作成します。

      2. ISO イメージをマウントします。
        $ mount -F hsfs ./sol-11_3-incr-repo.iso /mnt
      3. ISO ファイルの内容をリポジトリのクローンにコピーします。

        iso ファイルからリポジトリをコピーする方法に示す rsync または tar のどちらかを使用します。

        $ rsync -aP /mnt/repo/ /var/share/pkgrepos/solaris_tmp
      4. ISO イメージをアンマウントします。
    • リポジトリから更新します。

      別のリポジトリの内容をリポジトリクローンにコピーします。セキュアなサイトからコピーする場合は、必要な SSL 証明書および鍵がインストールされていることを確認し、必要な証明書および鍵のオプションを指定します。

      $ pkgrecv -s https://pkg.oracle.com/solaris/support \
      -d /var/share/pkgrepos/solaris_tmp \
      --key /path-to/key-file --cert /path-to/certificate-file '*'

      pkgrecv コマンドの詳細は、pkgrecv(1) のマニュアルページを参照してください。変更されたパッケージのみが更新されるため、リポジトリを更新する時間は、元のリポジトリを取り込むためにかかる時間より大幅に短くなることがあります。リポジトリのコピーのパフォーマンスに関する考慮事項のパフォーマンスのヒントを参照してください。

      pkgrecv 操作が中断された場合は、中断されたパッケージの受信の再開の手順に従います。

  4. 更新されたリポジトリを検証します。

    pkgrepo verify コマンドを使用して、更新済みのリポジトリを検証します。pkgrepo verify および pkgrepo fix コマンドの詳細は、pkgrepo(1) のマニュアルページを参照してください。

  5. 新しいパッケージをカタログ化して検索インデックスを更新します。

    新しく更新されたリポジトリで見つかった新しいパッケージをすべてカタログ化し、すべての検索インデックスを更新します。

    $ pkgrepo refresh -s /var/share/pkgrepos/solaris_tmp
  6. パッケージリポジトリの新しく更新されたクローンの ZFS スナップショットを作成します。
    $ zfs snapshot rpool/VARSHARE/pkgrepos/solaris_tmp@S11U2SRU1
  7. 稼働中のリポジトリを更新済みのクローンに置き換えます。
    $ svcadm disable -st pkg/server:solaris
    $ zfs promote rpool/VARSHARE/pkgrepos/solaris_tmp
    $ zfs rename rpool/VARSHARE/pkgrepos/solaris rpool/VARSHARE/pkgrepos/solaris_old
    $ zfs rename rpool/VARSHARE/pkgrepos/solaris_tmp rpool/VARSHARE/pkgrepos/solaris

    svcadm コマンドの詳細は、svcadm(1M) のマニュアルページを参照してください。

  8. SMF サービスを再起動します。

    HTTP インタフェースを介してリポジトリを提供する場合は、SMF サービスを再起動します。サービスを再起動するときは、適切なサービスインスタンスを指定してください。

    $ svcadm restart pkg/server:solaris
  9. 古いリポジトリを削除します。

    更新されたリポジトリが正しく動作していることを確認したら、古いリポジトリを削除できます。

    $ zfs destroy rpool/VARSHARE/pkgrepos/solaris_old