■ワンライナーでjessieにchroot-stretchを導入する。
ホスト側のjessieは安定版。
chroot側のstretchはテスト版。
$ lsb_release -d
Description: Debian GNU/Linux 8.2 (jessie)
■chrootって結構何度もやっているので今回はワンライナーで。
Squeeze上のsid chrootにjessieのchroot環境を構築、Squeezeへ移動
http://d.hatena.ne.jp/labunix/20130507
chroot環境のsidで、rinseを使ってCentOS5/6のchroot環境を構築
http://d.hatena.ne.jp/labunix/20130313
Wheezy上にchroot環境のWheezyを構築
http://labunix.hateblo.jp/entry/20130819/1376924059
CentOS6上にchrootのdebian wheezyを構築
http://labunix.hateblo.jp/entry/20130820/1377007672
squeeze上にwheezyのchroot環境を構築
http://d.hatena.ne.jp/labunix/20130311
■公式サイトにもあるとおり、テスト版にはリスクがあります。
更新によっては一部の機能が動作しなくなったり
設定を改変しなければならなかったりすることがあることには注意してください。
■ログを残す場合は事前に[script]する。
$ script $(date '+%Y%m%d_%H%M%S').log
■途中以下の変なドメインで停止していたのにハマったので
ホストのsources.listを流用する修正を追加。
$ sudo cat /var/local/stretch/etc/apt/sources.list
deb http://debootstrap.invalid/ stretch main
...
stretch/sid
■バックアップと、空き容量が十分にあることを前提に、
最初の4項目の変数を設定してコピペ。
最終行に[$CHROOT_HOME/etc/debian_version]の中身である
[stretch/sid]が表示されていれば完了。
$ CHROOT_USER=labunix; \
CHROOT_VER=stretch; \
CHROOT_HOME=/var/local/${CHROOT_VER}; \
CHROOT_URL=http://ftp.jp.debian.org/debian; \
wget $CHROOT_URL -o /dev/null && \
test -d $CHROOT_HOME || sudo mkdir -p $CHROOT_HOME; \
sudo cp /etc/fstab /etc/fstab.bak_$(date '+%Y%m%d_%H%M%S')_install; \
sudo apt-get install -y debootstrap schroot && \
sudo env LANG=C debootstrap $CHROOT_VER $CHROOT_HOME $CHROOT_URL && \
grep "$CHROOT_HOME/proc" /etc/fstab > /dev/null 2>&1 || \
sudo sed -i -e '$a\none\t'$CHROOT_HOME/proc'\tproc\tdefaults\t0\t0' /etc/fstab && \
sudo mount -a && \
sed -e 's%debootstrap.invalid%'$CHROOT_URL'%g' \
/etc/apt/sources.list | \
sudo tee /var/local/stretch/etc/apt/sources.list >/dev/null
echo -e "update\nupgrade\nautoremove\nautoclean" | \
awk '{print "chroot '$CHROOT_HOME' apt-get -y "$1}' | sudo sh && \
grep "$CHROOT_VER" /etc/schroot/schroot.conf >/dev/null 2>&1 || \
echo -e "[$CHROOT_VER]\ndescription=Debian $CHROOT_VER\ndirectory=$CHROOT_HOME\nusers=$CHROOT_USER" | \
sudo tee -a /etc/schroot/schroot.conf > /dev/null && \
echo "chroot-$CHROOT_VER" | sudo tee $CHROOT_HOME/etc/debian_chroot > /dev/null && \
sudo chroot $CHROOT_HOME cat /etc/debian_version; \
unset CHROOT_USER CHROOT_VER CHROOT_HOME CHROOT_URL
■すべて正常に完了したので初回ログイン
ここでユーザを作成するので、パスワードを設定します。
$ CHROOT_USER=labunix; \
CHROOT_VER=stretch; \
CHROOT_HOME=/var/local/${CHROOT_VER}; \
sudo chroot $CHROOT_HOME apt-get purge -y isc-dhcp* nano; \
sudo chroot $CHROOT_HOME apt-get install -y vim less chkconfig; \
sudo chroot $CHROOT_HOME adduser $CHROOT_USER; \
schroot -c $CHROOT_VER -p
(chroot-stretch)XXXX:~$ exit
■2回目以降は通常通りschrootで。
$ schroot -c stretch -p
■失敗したり、アンインストールする場合のワンライナー。
$ CHROOT_VER=stretch; \
CHROOT_HOME=/var/local/${CHROOT_VER}; \
sudo umount $CHROOT_HOME/proc; \
test -d $CHROOT_HOME && sudo rm -fr $CHROOT_HOME; \
sudo cp /etc/fstab /etc/fstab.bak_$(date '+%Y%m%d_%H%M%S')_uninstall; \
grep "$CHROOT_HOME/proc" /etc/fstab > /dev/null 2>&1 && \
sudo sed -i -e 's%^none.*'$CHROOT_HOME'.*%%g' /etc/fstab && \
unset CHROOT_VER CHROOT_HOME
■[/etc/fstab.bak_*install]のバックアップも要らなくなったら削除
$ sudo rm /etc/fstab.bak_*install