パッケージのインストールまたは更新のためのネットワークリポジトリの設定方法 – Part 11

システム管理者の日常生活において、インストール、更新、および必要に応じてプログラムの削除は重要な責務です。マシンがインターネットに接続されている場合、aptitude(またはapt-get)、yumzypperなどのパッケージ管理システムを使用してこれらのタスクを簡単に実行できます。選択したディストリビューションに応じて、Part 9 – Linux Package Managementで説明されているように、LFCELinux Foundation Certified Engineer)シリーズ。また、.deb.rpmファイルを単独でダウンロードし、それぞれdpkgrpmを使用してインストールすることもできます。

Linux Foundation Certified Engineer – Part 11
Linux Foundation 認定プログラムの紹介

ただし、マシンがインターネットにアクセスできない場合、別の方法が必要です。なぜそうしたいのでしょうか?その理由は、インターネット帯域幅の節約(したがって外部への複数の同時接続を回避する)、ローカルでソースからコンパイルされたパッケージのセキュリティ確保、および公式リポジトリに含めることができない法的理由(たとえば、一部の国で制限されているソフトウェア)のパッケージを提供する可能性など、さまざまです。

それがこの記事の中心テーマであるネットワークリポジトリが重要となる場面です。

私たちのテスト環境
Network Repository Server:	CentOS 7 [enp0s3: 192.168.0.17] - dev1
Client Machine:			CentOS 6.6 [eth0: 192.168.0.18] - dev2

CentOS 7でネットワークリポジトリサーバーの設定

最初のステップとして、CentOS 7ボックスをリポジトリサーバー[IPアドレス192.168.0.17]として設定して構成します。そして、クライアントとしてCentOS 6.6マシンを使用します。openSUSEのセットアップはほぼ同じです。

CentOS 7の場合は、CentOS 7のインストールと静的IPアドレスの設定方法を段階的に説明した以下の記事に従ってください。

  1. スクリーンショット付きCentOS 7.0のインストール
  2. CentOS 7でのネットワーク静的IPアドレスの構成方法

Ubuntuに関しては、このサイトに優れた記事があり、ステップバイステップで独自のプライベートリポジトリを設定する方法が説明されています。

  1. Ubuntuでの‘apt-mirror’を使用したローカルリポジトリの設定

クライアントがリポジトリサーバーにアクセスする方法を最初に選択します – FTPHTTPが最も一般的です。Apacheのインストールは、このLFCEシリーズの第1部 – Apacheのインストールでカバーされているため、後者を選択します。これにより、Webブラウザーを使用してパッケージリストを表示することも可能になります。

次に、.rpm パッケージを格納するためのディレクトリを作成する必要があります。これに応じて、/var/www/html/repos 内にサブディレクトリを作成します。便宜上、各ディストリビューションの異なるバージョン用のパッケージをホストするための他のサブディレクトリを作成することもできます(もちろん、必要に応じていくつでもディレクトリを追加できます)。さらに、異なるアーキテクチャ向けのディレクトリも作成したい場合があります。

リポジトリのセットアップ

独自のリポジトリをセットアップする際に考慮する重要な点は、利用可能なディスク容量がかなり必要であること(約20 GB)です。必要に応じて、リポジトリのコンテンツを格納するファイルシステムのサイズを変更するか、さらに良い方法として、リポジトリをホストするための追加の専用ストレージデバイスを追加します。

以上を踏まえて、リポジトリをホストするために必要なディレクトリを作成します:

# mkdir -p /var/www/html/repos/centos/6/6

リポジトリサーバーのディレクトリ構造を作成したら、/var/www/html/repos/centos/6/6 で、createrepo を使用してパッケージとそれに対応する依存関係を追跡するデータベースを初期化します。

まだインストールしていない場合は、createrepo をインストールします:

# yum update && yum install createrepo

その後、データベースを初期化します。

# createrepo /var/www/html/repos/centos/6/6
Createrepo Repository Initialization

リポジトリの更新

リポジトリサーバーがインターネットにアクセスできる場合、最新のパッケージの更新を取得するためにオンラインリポジトリをプルします。そうでない場合は、CentOS 6.6 のインストール DVD の Packages ディレクトリ全体をコピーできます。

このチュートリアルでは、最初の場合を想定します。ダウンロード速度を最適化するために、私たちは私たちの近くの場所からCentOS 6.6ミラーを選択します。 CentOS ダウンロードミラーに移動して、自分の場所に近いものを選択します(私の場合はアルゼンチン):

Select CentOS Download Mirror

次に、ハイライトされたリンク内のosディレクトリに移動し、適切なアーキテクチャを選択します。そこに到着したら、アドレスバーのリンクをコピーして、リポジトリサーバーの専用ディレクトリにコンテンツをダウンロードします:

Download CentOS Mirror
# rsync -avz rsync://centos.ar.host-engine.com/6.6/os/x86_64/ /var/www/html/repos/centos/6/6/ 

選択したリポジトリが何らかの理由でオフラインになった場合は、戻って別のリポジトリを選択します。大したことではありません。

今がリラックスしてお気に入りのテレビ番組のエピソードを見ることができるタイミングです。オンラインリポジトリのミラーリングにはかなりの時間がかかるかもしれません。

ダウンロードが完了したら、ディスクスペースの使用状況を確認できます:

# du -sch /var/www/html/repos/centos/6/6/*
Check CentOS Mirror Size

最後に、リポジトリのデータベースを更新します。

# createrepo --update /var/www/html/repos/centos/6/6

ウェブブラウザを起動して、repos/centos/6/6ディレクトリに移動して、内容が表示されるか確認します:

Verify CentOS Packages

そして、準備完了です – 今度はクライアントを構成する時です。

Source:
https://www.tecmint.com/setup-yum-repository-in-centos-7/