ksaitoの日記

日々試したことの覚え書き

yumのリポジトリを作る

RedHat Enterprise Linux 5.0は、yumでパッケージのメンテナンスができますが、Debian/Ubuntuに比べて利用可能なパッケージが少ないです。
RPMパッケージとして個別に配布されているものやcheckinstallでtar ballからパッケージしたものをバラバラと入れていくと収集がつかなくなってしまいます。
yumのプライベートリポジトリは、比較的簡単に作れるようなので、これらのパッケージを必ずプライベートリポジトリに配置してインストールするようにすると良いです。
必要なものは、Webサーバとcreaterepoパッケージですが、いずれもRedHat Networkから入手できます。

createrepoパッケージのインストール

RedHat Networkに用意されているcreaterepoパッケージをインストールします。

$ sudo yum list | grep createrepo
createrepo.noarch             0.4.11-3.el5          rhel-i386-server-5
$ sudo yum install createrepo
Loaded plugins: rhnplugin, security
Setting up Install Process
Resolving Dependencies
    • > Running transaction check
      • > Package createrepo.noarch 0:0.4.11-3.el5 set to be updated
    • > Finished Dependency Resolution
Dependencies Resolved ============================================================================================================================================================================================================================================= Package Arch Version Repository Size ============================================================================================================================================================================================================================================= Installing: createrepo noarch 0.4.11-3.el5 rhel-i386-server-5 59 k Transaction Summary ============================================================================================================================================================================================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 59 k Is this ok [y/N]: y Downloading Packages: createrepo-0.4.11-3.el5.noarch.rpm | 59 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : createrepo 1/1 Installed: createrepo.noarch 0:0.4.11-3.el5 Complete! $

プライベートリポジトリの作成

プライベートリポジトリで配布したいRPMファイルをWebサーバに配置します。
保管場所は任意ですが、RedHatでWebサーバのコンテンツを保管している/var/www/htmlにyumというディレクトリを作成しました。
この下に任意の分類名で下記のように整理していきます。
/var/www/html/yum/[分類]/RPMS
RPMSディレクトリにRPMファイルをコピーしたらcreaterepoコマンドでリポジトリを作成します。
これで、プライベートリポジトリの作成は、おしまいです。

$ sudo createrepo /var/www/html/yum/checkinstall/RPMS/
2/2 - ruby-1.8.7-p160-1.i386.rpm
Saving Primary metadata
Saving file lists metadata
Saving other metadata
$

プライベートリポジトリを参照する設定

次に作成したプライベートリポジトリを参照する設定です。
/etc/yum.repos.dに任意のファイル名で設定を作成するだけです。

$ cat /etc/yum.repos.d/priv.repo
[分類名1]
name=Red Hat Enterprise Linux $releasever - $basearch build, [分類名1]
baseurl=http://[サーバ名]/yum/[分類名1]/RPMS/
enabled=1
gpgcheck=0

[分類名2]
name=Red Hat Enterprise Linux $releasever - $basearch build, [分類名2]
baseurl=http://[サーバ名]/yum/[分類名2]/RPMS/
enabled=1
gpgcheck=0

確認

下記でプライベートリポジトリが参照できているか確認します。
これで、RPMファイルを探しまわらずに済みます。

$ sudo yum clean all
Loaded plugins: rhnplugin, security
Cleaning up Everything
$ sudo yum update
Loaded plugins: rhnplugin, security
...中略...
Skipping security plugin, no data
Setting up Update Process
No Packages marked for Update
$ sudo yum list available | grep 分類名
nxclient.i386                 3.3.0-6               分類名1
nxnode.i386                   3.3.0-22              分類名1
nxserver.i386                 3.3.0-27              分類名1
ruby-1.8.7.i386               p160-1                分類名2
rubygems.i386                 1.3.3-1               分類名2

$