以前chrootでクリーンなビルド環境を作る方法というのを書いたが、もっと簡単な方法を見つけたのでメモしておく。yumでrootディレクトリの位置を指定すれば良いのだ。
chrootでビルド環境の作成 - 超ウィザード級ハッカーのたのしみ
欲しいRHELかCentOSのインストールメディアをマウントする。
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
以下まで消してしまいます。