labunix's blog

labunixのラボUnix

jessieにchroot-stretchを導入する。

■jessieにchroot-stretchを導入する。
 去年もやってたテスト版と異なるのは、
 2017/06/17に安定版としてリリースされていること。
 今のテスト版はbuster。

 ワンライナーでjessieにchroot-stretchを導入する。
 http://labunix.hateblo.jp/entry/20160115/1452789129

■環境

$ lsb_release -d
Description:	Debian GNU/Linux 8.8 (jessie)

■前回のワンライナーが普通に動きそうだったのでそのままコピペで実行
 アンインストールまで作ってたのか(リンク先参照)。。。

$ CHROOT_USER=labunix; \
  CHROOT_VER=stretch; \
  CHROOT_HOME=/var/local/${CHROOT_VER}; \
  CHROOT_URL=http://ftp.jp.debian.org/debian; \
  # wget test \
  wget $CHROOT_URL -o /dev/null && \
  test -d $CHROOT_HOME || sudo mkdir -p $CHROOT_HOME; \
  # fstab backup \
  sudo cp /etc/fstab /etc/fstab.bak_$(date '+%Y%m%d_%H%M%S')_install; \
  sudo apt-get install -y debootstrap schroot && \
  # debian image download \
  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 && \
  # main \
  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

■APTのプロキシ設定をコピーする必要があった以外はそのまま動く。

$ sudo cp /etc/apt/apt.conf /var/local/stretch/etc/apt/

$ 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)XXX@XXXXX:~$ exit
exit

schroot -c stretch -p
(chroot-stretch)XXX@XXXXX:~$ exit
exit

■削除も試す。「sed」はsコマンドではなくdで良い気がするが、
 とりあえず動く。。。

$ 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