ローカルのRedHatEnterpriseLinuxリポジトリが必要になる理由はたくさんあります。インターネットからアップデートをダウンロードすると時間と帯域幅が消費される可能性があるため、帯域幅は主要な要因です。もう1つの理由は、サーバーがインターネットに接続されていないため、ローカルソースから更新を取得する必要があることです。ライセンスにお金をかけたくないが、それでも更新する必要がある開発環境があるかもしれません。理由が何であれ、このチュートリアルでは、ローカルリポジトリを設定するプロセスについて説明します。
注:リポジトリとして機能するサーバーは、リポジトリとしてのみ機能する必要があります。
yum install yum-utils createrepo httpd
mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc
サーバー上のリポジトリを有効と無効の両方で一覧表示します。
yum repolist all
サブスクリプションで利用可能なリポジトリを一覧表示します
subscription-manager repos --list
システムでリポジトリを有効にする
subscription-manager repos --enable=rhel-6-server-optional-rpms
システムのリポジトリを無効にする
subscription-manager repos --disble=rhel-6-server-optional-rpms
サーバー、dts、およびrhsc(ソフトウェアコレクション)リポジトリをリポジトリで有効にする必要があります
これらのリポジトリがすべて有効になったら、次のコマンドを実行して、それぞれのdownload_pathを変更し、そのリポジトリのdownload_pathと一致させます。
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
注:サーバーリポジトリは最も時間がかかります。一晩中のように。他のものはもっと短くする必要があります。
Createrepoコマンド
パッケージがダウンロードされたら、必要なのは各リポジトリの以下のcreaterepoコマンドだけです
createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml
注:-g comps.xmlは、サーバーリポジトリにのみ必要です。
これでローカルリポジトリができましたが、これらのリポジトリを更新に使用するRedHatサーバーにいくつかの変更を加える必要があります。
まず、/ etc / yum.repos.d内のリポジトリファイル内で、他のすべてのリポジトリの有効フラグが0(ゼロ)に設定されていることを確認します。後で必要になる可能性があるため、現時点ではリポジトリを削除しません。有効フラグを変更するだけで十分です。
次に、リポジトリを使用してすべてのサーバーの/etc/yum.repos.dディレクトリに追加される.repoファイルを作成する必要があります。そのファイルは次のファイルのようになります。
vi /etc/yum.repos.d/name_of_repo_file.repo
[server] name = rhel-6-server-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/server gpgcheck = 0 enabled = 1 [dts] name = rhel-server-dts-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts gpgcheck = 0 enabled = 1 [dts2] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1 [rhsc] name = rhel-server-dts2-6-rpms baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2 gpgcheck = 0 enabled = 1
update-repository.shという名前のスクリプトを作成し、次の内容で/ usr / local/binに配置します。
vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/server/ reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts/ \\ reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata createrepo --update /var/www/html/rhel6/dts2/ echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh
毎月ローテーションするように設定したログにドロップしたことに注意してください。
/etc/cron.dにファイルを作成し、次の内容でupdate-repositoryという名前を付けます。
vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh
ローカルリポジトリの設定を実現するにはさまざまな方法がありますが、私は確かにこのリポジトリの車輪を発明しませんでした。セットアップの詳細と洞察については、以下のソースを参照してください。
- https://access.redhat.com/solutions/23016
- http://www.oracle.com/technetwork/articles/servers-storage-admin/yum-repo-setup-1659167.html
- https://www.howtoforge.com/creating_a_local_yum_repository_centos