ウェブサイト検索

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ユーティリティを使用します。

  1. まだインストールされていない場合は、まずシステムにcreaterepoをインストールします。

    dnf install createrepo
    
  2. この段階で、私たちは自分自身のRed Hatローカルファイルリポジトリを作成する準備ができています。/rhel_repoという名前の新しいディレクトリを作成します:

    mkdir /rhel_repo
    
  3. 次に、マウントされたRHEL DVDから新しいディレクトリにすべてのパッケージをコピーします:

    cp /media/RHEL_6.4\ x86_64\ Disc\ 1/Packages/* /rhel_repo/
    
  4. コピーが終了したら、次に 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
    
  5. 最後のステップとして、このファイルを編集して新しいyumリポジトリエントリを作成します:

    vi /etc/yum.repos.d/rhel_repo.repo
    

    そして、このテキストを挿入します:

    [rhel_repo]
    name=RHEL_6.4_x86_64_Local
    baseurl="file:///rhel_repo/"
    gpgcheck=0
    
  6. あなたの新しいリポジトリは現在アクセス可能なはずです:

    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/(デフォルトのドキュメントルート)にコピーしてください。

  1. まず、クライアントシステムに新しいリポジトリ構成ファイルを作成して、新しい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
    
  2. 新しいリポジトリの正しさを確認するには、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を構成することも検討するかもしれません。

関連記事: