chrootでビルド環境の作成2

以前chrootでクリーンなビルド環境を作る方法というのを書いたが、もっと簡単な方法を見つけたのでメモしておく。yumでrootディレクトリの位置を指定すれば良いのだ。

chrootでビルド環境の作成 - 超ウィザード級ハッカーのたのしみ


欲しいRHELCentOSのインストールメディアをマウントする。

mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1511.iso /mnt/cdrom/

マウントしたメディアをリポジトリに追加

cat << _END_ > /etc/yum.repos.d/cdrom.repo
[cdrom]
name=Install CD-ROM 
baseurl=file:///mnt/cdrom
enabled=0
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7
_END_

rootfsを作るディレクトリを作成する。

mkdir centos7-root

最小構成のパッケージをインストールする。

yum -y --installroot=$PWD/centos7-root --disablerepo=\* --enablerepo=cdrom groupinstall "Minimal Install"

--installrootでrootディレクトリを指定する。指定するのは絶対パスでなければならない。--disablerepoで要らないパッケージリポジトリを除外、--enablerepoでメディア配下のリポジトリを使うようにする。

これでcentos7-root以下に綺麗な環境が作成されている。追加で必要なパッケージがあれば同様にインストールすれば良い。

chrootすれば、作った環境で仮想的に作業することができる。

mount -o bind /dev centos7-root/dev/
mount -t proc none centos7-root/proc/
mount -o bind /sys centos7-root/sys/
chroot centos7-root /bin/bash

なお、作業が終わったら、centos7-root/{dev,proc,sys}をumountするのを忘れないように。環境を消すときにうっかりホストの/dev以下まで消してしまいます。