yumリポジトリをローカルで作成する
2018/06/30
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 <パッケージ名>