IT情報基地
~当サイトはIT・サーバーに関する内容を紹介しています~


yumリポジトリをローカルで作成する

RHEL/CentOS 7.x
インターネット接続が出来ない環境で構築作業をする場合、インターネット上のリポジトリサーバーを参照できないため、yumによるパッケージのインストールを行うことができません。しかしながら、リポジトリをローカルで作成することで、yumを用いたパッケージ導入が可能になります。
rpmファイルはOSインストーラーのPackages内のものをコピーして使用します。

事前準備

createrepoがインストールされていない場合、rpmを使ってインストールをしておきます。既にインストール済みの場合は、次のローカルリポジトリ作成方法へ飛んでください。
以下のパッケージをインストールします。バージョンは適宜読み変えてください。
rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
rpm -ivh libxml2-python-2.9.1-6.el7_2.3.x86_64.rpm
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
インストールメディアに上記のパッケージが存在しない場合、RPM Search(外部リンク)からダウンロードすることができます。ダウンロードしたファイルをftp等で転送してインストールを行います。

ローカルリポジトリ作成方法

リポジトリ用のディレクトリを作成します。今回は/tmpにrepoディレクトリを作成して、さらにその配下にPackagesを作成しています。
# mkdir -p /tmp/repo/Packages
Packages内にrpmファイルを配置します。インストーラーのPackages内のファイルをコピーします。
# cp -p /mnt/cdrom/Packages/* /tmp/repo/Packages
OSインストーラーのマウント方法は「RedHat系のLinuxでCD/DVDをマウントさせる」を参考にしてください。
createrepoコマンドを使用して、/tmp/repo以下にローカルリポジトリを作成します。
# createrepo /tmp/repo/
yumリポジトリの追加をします。今回はlocal.repoという名前でファイルを新規作成しています。
# vi /etc/yum.repos.d/local.repo
以下の文を記述します。リポジトリIDはlocalとしています。
/etc/yum.repos.d/local.repo
[local]
enabled=1
name=localrepo
gpgcheck=0
baseurl=file:///tmp/repo
以下のコマンドで、yumリポジトリを更新します。
# yum clean all
リポジトリが追加できているか確認します。
# yum repolist

(出力結果)

読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * base: ftp.tsukuba.wide.ad.jp
 * extras: ftp.tsukuba.wide.ad.jp
 * updates: ftp.tsukuba.wide.ad.jp
リポジトリー ID          リポジトリー名                 状態
base/7/x86_64            CentOS-7 - Base                9,911
extras/7/x86_64          CentOS-7 - Extras              313
local                    localrepo                      4     # 追加されたリポジトリ
updates/7/x86_64         CentOS-7 - Updates             711
repolist: 10,939
以上で設定終了です。

ローカルリポジトリを使用したyumインストール

明示的に使用するレポジトリを指定します。
# yum --enablerepo=local install <パッケージ名>