5 chroot からはじめる sid

山下尊 也

PIC
____________________________________________________________________

sid って 危 険 って 言 う け ど 、 本 当 に 危 険 な ん で す か ?と か 、 unstableって 名 前 が 怖 か ったりとか、 はたまた、 本日締切りの原 稿とかあるのに、 新しいバージョンなものを触ってみたいとか、 いろいろあると思います。

今回は、 初めて sid の環境を触ろうと考えていらっしゃる方にお勧めなものを紹介します。

debootstrap を用いれば、 chroot した Debian 環境を安易に構築する事が可能です。

今回は、 /home/tommy/chroot/sid の下に chroot 環境な sid を構築します。

 $ sudo mkdir -p /home/tommy/chroot/sid
 $ sudo debootstrap sid /home/tommy/chroot/sid http://ftp.jp.debian.org/debian
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
・・・
I: Configuring klogd...
I: Configuring tasksel-data...
I: Configuring tasksel...
I: Base system installed successfully.

さっそく、 作った環境にログインしてみましょう。

 $ sudo chroot /home/tommy/chroot/sid /bin/bash
root@hoge:/#

これでログイン出来ました。

基本的なパッケージしか入っていないため、 /etc/apt/souces.list を更新し、 自分に必要なパッケージなどをいれま し ょう 。

root@hoge:/# vi /etc/apt/sources.list

/home などを共有したい場合は、 以下のように親の/etc/fstab に書き加えます。

 $ sudo vi /etc/fstab
/home           /home/tommy/chroot/sid/home        none    bind            0       0
/tmp            /home/tommy/chroot/sid/tmp         none    bind            0       0
proc-chroot     /home/tommy/chroot/sid/proc        proc    defaults        0       0
devpts-chroot   /home/tommy/chroot/sid/dev/pts     devpts  defaults        0       0

ユーザ情報をコピーしましょう。

 $ sudo cp /etc/passwd /home/tommy/chroot/sid/etc/
 $ sudo sed ’s/\([^:]*\):[^:]*:/\1:*:/’ /etc/shadow | sudo tee /home/tommy/chroot/sid/etc/shadow
 $ sudo cp /etc/group /home/tommy/chroot/sid/etc/
 $ sudo cp /etc/hosts /home/tommy/chroot/sid/etc/

chroot は、 管理者権限がなければ使う事が出来ません。 dchroot は、 chroot の環境のコマンドを一般ユーザの権限で実行す る事を可能にします。 アプリケーションを用いたい場合などは、 一般ユーザ権限で実行したい場合が多いと思い ます。

 $ echo ‘‘mychroot /home/tommy/chroot/sid’’ | sudo tee /etc/dchroot.conf
 $ dchroot -c mychroot  (ログイン)

現在、 experimental な環境に iceweasel のバージョン 3 ベータがきています。 これを実行する事を考えてみましょう。 まず、 experimental な環境をインストール出来るように/etc/apt/sources.list を編集します。

 $ dchroot -c mychroot
 $ su -
root@hoge:/# vi /etc/apt/sources.list
deb http://cdn.debian.or.jp/debian/ sid main contrib non-free
deb http://cdn.debian.or.jp/debian/ experimental main contrib non-free

そして、 experimental な Iceweasel をインストールします。

root@hoge:/# aptitude install iceweasel/experimental

dchroot は、 chroot 環境以下に対して、 一般ユーザの権限でコマンドを用いる事も可能です。

 $ dchroot -c mychroot -d iceweasel

これで、 chroot 環境内に構築しました experimental の Iceweasel を使う事が出来ます。

chroot は現在動いているカーネル上に仮想 OS を作成することから、 オーバーヘッドが比較的小さい事が大きな利点である と思います。

すでに安定版の Debian を使っているのであれば、 chroot を用いれば、 簡単に不安定版の Debian のアプリケーションを 利用する事が出きるので、 ちょっと触れてみたい方にはお勧めな方法の一つだと思うので是非試してみて下 さい。

5.1 参考文献

第 12 回関西 Debian 勉強会 2008 年 4 月
____________________________________________________________________________________________