Translated message

A translation of this page exists in English.

Satelliteサーバーを使用せずに、Red Hat Enterprise Linux 5、6、および7の最新アップデートのローカルミラーを作成する方法

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 7
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 5
  • Red Hat Network (RHN)
  • Red Hat Subscription Management (RHSM)
  • reposync

Issue

  • reposync ユーティリティーとは何ですか? どのように使いますか?
  • Satellite サーバーを使用せずに、Red Hat Enterprise Linux 5、6、7 の最新アップデートのローカルミラーを作成するにはどうすればよいですか?
  • 特定のチャンネルからローカルにすべてのパッケージまたは rpm をダウンロードする必要があります。
  • ローカルリポジトリーを作成するにはどうすればよいですか?

Resolution

RHEL 8 および 9 システムについては How to create a local mirror of the latest update for Red Hat Enterprise Linux 8 and 9 without using Satellite server? を参照してください。

RHEL 5

# mkdir /var/repo
# reposync --gpgcheck -l --repoid=rhel-5-server-els-rpms --download_path=/var/repo --downloadcomps
# cd /var/repo/rhel-5-server-els-rpms
# createrepo -v /var/repo/rhel-5-server-els-rpms
# yum clean all
# yum list-sec
# find /var/cache/yum/ -name *updateinfo.xml*
# mv /var/cache/yum/rhel-5-server-els-rpms/365ae03ca85bb9d3bc509ea9129d1d3fb9a18381-updateinfo.xml.gz /tmp
# cd /tmp
# gzip -d 365ae03ca85bb9d3bc509ea9129d1d3fb9a18381-updateinfo.xml.gz
# mv 365ae03ca85bb9d3bc509ea9129d1d3fb9a18381-updateinfo.xml updateinfo.xml
# cp updateinfo.xml /var/repo/rhel-5-server-els-rpms/repodata/
# modifyrepo /var/repo/rhel-5-server-els-rpms/repodata/updateinfo.xml /var/repo/rhel-5-server-els-rpms/repodata/

RHEL 6、7

必要なパッケージをインストールします。

  • 登録済みのシステムに yum-utils パッケージおよび createrepo パッケージをインストールします。

    # yum install yum-utils createrepo
    

基本的なローカルリポジトリーの作成

注記: <repo-id> を同期するリポジトリーに変更します。

  • 指定されたリポジトリーから指定されたディレクトリーにすべてのパッケージを同期します。

    # reposync --gpgcheck -l --repoid=<repo-id>
    for example:
    # reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html
    
  • ターゲットディレクトリーに、リポジトリー ID にちなんで名付けられた新しいディレクトリーがあります。ダウンロードするすべてのパッケージは、このディレクトリー内に置かれます。

    # cd /var/www/html/<repo-id>
    # createrepo -v /var/www/html/<repo-id>
    

クライアントがグループを使用できるローカルリポジトリーの作成

「yum groupinstall」などのさまざまなプラグインを使用できるようにする、同期中のリポジトリーのすべてのメタデータをダウンロードする方法

  • RHEL6 以降では、reposync で --download-metadata および --downloadcomps オプションがサポートされます。以下に例を示します。

    # reposync --gpgcheck -l --repoid=repo-id --downloadcomps --download-metadata
    for example:
    # reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html --downloadcomps --download-metadata
    
  • 新しく同期されたリポジトリーのグループデータにアクセスするには、以下のように createrepo コマンドを実行してください。

    # cd /var/www/html/<repo-id>
    # createrepo -v  /var/www/html/<repo-id>/ -g comps.xml
    

repodata を変更してセキュリティー関連パッケージを定義する

  • これらの手順では、createrepo コマンドがすでに実行されている必要があります。

    # yum clean all
    # yum list-sec
    # find /var/cache/yum/ -name updateinfo.xml            ##For RHEL 5 use '-name *updateinfo.xml*'
    
  • 上記の find コマンドから、reposync を実行した <repo-id> に一致する updateinfo.xml を特定し、そのファイルを repodata ディレクトリーに移動します。

    # cp /var/cache/yum/<repo-id-path>/updateinfo.xml /var/www/html/<repo-id>/repodata/updateinfo.xml
    # modifyrepo /var/www/html/<repo-id>/repodata/updateinfo.xml /var/www/html/<repo-id>/repodata
    
  • How to host a repository using http/https/ftp/nfs ?


注記:

  • 同期を最新に保つには cronjobs などを使用できます。createrepo コマンドでは、既存のリポジトリーを効率的に更新するための --update がサポートされています。
  • ローカルで作成されたリポジトリーは通常、LAN を介して他の RHEL クライアントによって使用されます。たとえば、HTTP / HTTPS (RHEL の一部である apache Web サーバーによって提供)、FTP (vsftpd) または NFS (nfs-utils パッケージ) を介して使用されます。このローカルリポジトリーをオフラインシステムと 共有 して、オフラインシステムを更新します。
  • reposync ユーティリティーは、システムが権限を持つリポジトリーのみをミラーリングできます。
  • 関連情報は、How do I delete old packages in local repository server? を参照してください。
  • RHEL 7.7 以降の場合、Red Hat カスタマーポータルでは、Red Hat が提供するすべての CDN リポジトリーが無効になっている場合、そのシステムは最新コンテンツへのアクセス権がないものとみなされ、エラータ情報が表示されません。 Red Hat カスタマーポータルでシステムエラータ情報を確認する必要がある場合、サブスクリプションマネージャーで少なくとも 1 つの公式 redhat リポジトリーが有効になっている必要があります。有効になっているリポジトリーのみがエラータ適用対象の計算に含まれる点に注意してください。
  • YUM リポジトリーとして準備されたディレクトリーのコピーを作成し、そのリポジトリーにさらにパッケージを追加せずに、"凍結された" パッケージセットとしてクライアントがそのリポジトリーを使用するようにできます。このようなコピーを作成するには追加のストレージが必要ですが、ファイルは既存パッケージの複製であるため、関連するファイルが同じファイルシステム上にある限り、hardlinks を使用することで要件を削減できます。

  • 上記の手順を実行した後に問題が発生した場合は、Red Hat テクニカルサポートケース を作成して、以下の詳細を共有してください。

    1. 次のコマンドの出力を確認します。
    # tree /directory_path_of_the_repository
    
    1. Repo サーバーとクライアントシステムから SOS report を生成して提供します。

Root Cause

Red Hat は、CDN からパッケージをダウンロードするために使用できる reposync と呼ばれるユーティリティーを提供します。特定のチャンネルからすべてのパッケージをダウンロードするには、システムをそのチャンネルにサブスクライブする必要があります。システムが必要なチャンネルにサブスクライブされていない場合、reposync はこれらのパッケージをローカルシステムにダウンロードして同期することができません。

Diagnostic Steps

  • RHEL6.9GA の一部である createrepo-0.9.9-26.el6.noarch には --update に関する問題があります。詳細は bz1434369 を参照してください。

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.

Comments