Redhatパッケージリポジトリの作成
もしあなたのRed Hatサーバーが公式のRHNリポジトリに接続されていない場合は、後でパッケージをインストールするために使用できる独自のプライベートリポジトリを設定する必要があります。Red Hat Linuxリポジトリを作成する手順は非常に簡単な作業です。この記事では、ローカルファイルのRed HatリポジトリとリモートHTTPリポジトリを作成する方法を示します。
このチュートリアルでは、あなたは学びます:
- 公式のRed Hat DVDをリポジトリとして使用する方法
- ローカルファイルのRed Hatリポジトリの作成方法
- リモートHTTP Red Hatリポジトリを作成する方法
カスタムRed Hatリポジトリを使用する - この場合はRed Hat DVDから
公式のRed Hat DVDをリポジトリとして使用しています。
デフォルトのインストールを行った後、公式のRHNリポジトリにサーバーを登録しなければ、Red Hatリポジトリから新しいパッケージをインストールするチャンスはありません。なぜなら、リポジトリリストには0件のエントリしか表示されないからです。
dnf repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repolist: 0
この時点で最も簡単な方法は、Red Hat のインストール DVD をローカルリポジトリとして接続することです。そのためには、まず RHEL DVD がマウントされていることを確認してください。
mount | grep iso9660
/dev/sr0 on /media/RHEL_6.4 x86_64 Disc 1 type iso9660 (ro,nosuid,nodev,uhelper=udisks,uid=500,gid=500,iocharset=utf8,mode=0400,dmode=0500)
現在最も関心のあるディレクトリは/media/RHEL_6.4 x86_64 Disc 1/repodataです。このディレクトリには、この特定のDVDディスクに含まれるすべてのパッケージに関する情報が含まれています。
次に、/media/RHEL_6.4 x86_64 Disc 1/を指す新しいリポジトリを定義する必要があります。/etc/yum.repos.d/にリポジトリエントリを作成します。viエディタを使用して、/etc/yum.repos.d/RHEL_6.4_Disc.repoという新しいファイルを作成し、以下のテキストを挿入します:
[RHEL_6.4_Disc]
name=RHEL_6.4_x86_64_Disc
baseurl="file:///media/RHEL_6.4 x86_64 Disc 1/"
gpgcheck=0
ファイルが作成されると、ローカルのRed Hat DVDリポジトリが使用できる状態になっているはずです。
dnf repolist
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
repo id repo name status
RHEL_6.4_Disc RHEL_6.4_x86_64_Disc 3,648
repolist: 3,648
ローカルファイルRed Hatリポジトリの作成
通常、Red HatのDVDリポジトリがあれば始めるのに十分ですが、唯一の欠点はリポジトリを変更できず、新しい/更新されたパッケージを挿入できないことです。この問題を解決するために、ファイルシステム上のどこかにローカルファイルリポジトリを作成することができます。この計画を助けるために、createrepoユーティリティを使用します。
まだインストールされていない場合は、まずシステムに
createrepoをインストールします。dnf install createrepoこの段階で、私たちは自分自身のRed Hatローカルファイルリポジトリを作成する準備ができています。
/rhel_repoという名前の新しいディレクトリを作成します:mkdir /rhel_repo次に、マウントされたRHEL DVDから新しいディレクトリにすべてのパッケージをコピーします:
cp /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/* /rhel_repo/コピーが終了したら、次に createrepo コマンドを実行し、引数として新しいローカルリポジトリのディレクトリ名を指定してください。
createrepo /rhel_repo/ Spawning worker 0 with 3648 pkgs Workers Finished Gathering worker results Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete最後のステップとして、このファイルを編集して新しいyumリポジトリエントリを作成します:
vi /etc/yum.repos.d/rhel_repo.repoそして、このテキストを挿入します:
[rhel_repo] name=RHEL_6.4_x86_64_Local baseurl="file:///rhel_repo/" gpgcheck=0あなたの新しいリポジトリは現在アクセス可能なはずです:
dnf repolist Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. rhel_repo | 2.9 kB 00:00 ... rhel_repo/primary_db | 367 kB 00:00 ... repo id repo name status RHEL_6.4_Disc RHEL_6.4_x86_64_Disc 3,648 rhel_repo RHEL_6.4_x86_64_Local 3,648
リモートHTTP Red Hatリポジトリの作成
複数のRed Hatサーバーがある場合、ネットワーク上の他のすべてのサーバーがアクセスできる単一のRed Hatリポジトリを作成したいかもしれません。そのためにはApacheウェブサーバーが必要です。Apacheのセットアップに関するヘルプが必要な場合は、RHELにApacheをインストールするためのガイドをご覧ください。
新しいリポジトリにHTTP経由でアクセスできるようにするためには、前のセクションで作成した/rhel_repo/ディレクトリをドキュメントルートディレクトリとしてApacheを設定するか、単にそのディレクトリ全体を/var/www/html/(デフォルトのドキュメントルート)にコピーしてください。
まず、クライアントシステムに新しいリポジトリ構成ファイルを作成して、新しいyumリポジトリエントリを作成します:
vi /etc/yum.repos.d/rhel_http_repo.repo以下の内容で、ホストはあなたのRed HatリポジトリサーバーのIPアドレスまたはホスト名です:
[rhel_repo_http] name=RHEL_6.4_x86_64_HTTP baseurl="http://myhost/rhel_repo/" gpgcheck=0新しいリポジトリの正しさを確認するには、
dnf repolistコマンドを実行してください。dnf repolist Loaded plugins: product-id, refresh-packagekit, security, subscription-manager This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register. repo id repo name status rhel_repo_http RHEL_6.4_x86_64_HTTP 3,648 repolist: 3,648
締めくくりの考え
自分のパッケージリポジトリを作成することで、有料のRHNサブスクリプションがなくても、Red Hatシステムでのパッケージ管理の方法が増えます。リモートHTTP Red Hatリポジトリを使用する際には、インストール前にパッケージが改ざんされていないことを確認するために、リポジトリの一部としてGPGCHECKを構成することも検討するかもしれません。
