vbootstrap - bootstrap a basic Vine Linux system
bootstrap
Vine Linux 上で Vine Linux のベースシステムを作成するためのスクリプト。
- chroot 環境の構築や Xen の DomainU 構築など
- まずは Vine Linux 上で作成できるように。 他のシステム上でも作成できるようにするのは将来。
- 同様の仕組みをもつものとして plus に tiny-buildfarm があるが現状では 動作しない状態になっている。
開発の選択肢
選択肢としては以下のもの。
- tiny-buildfarm をメンテナンスする
- 独自スクリプト(vbootstrap?)を用意する
- ホストの apt を利用した簡便なシステムにする
- bootstrap 用の static な apt を用意してつかう
- apt に頼らないで bootstrapping できるようにする
- rpmstrap を Vine Linux に対応させる
- debootstrap ベースで改造する
- rinse を調整
とりあえず、暫定的に 2.a. で vbootstrap-0.0.1 として用意する予定。
とりあえずのchroot環境作成手順
とりあえず、ホストと同じバージョンであれば、以下の手順で apt が使えるベースの chroot 環境はできる。 /dev などはほぼ空っぽなのでこのままではブートできるシステムにはならない。
INSTALLDIR=/path/to/root # rpmdb の初期化 mkdir -p $INSTALLDIR/var/lib/rpm rpm --initdb --root $INSTALLDIR # apt データベースの更新 apt-get -o RPM::RootDir=$INSTALLDIR update # 基本のパッケージをインストール for i in setup glibc coreutils bash rpm apt rootfiles do apt-get -y -o RPM::RootDir=$INSTALLDIR install $i done # vine-keyring を再インストール(上でいれた apt に再度読み込ませる) apt-get -y -q --reinstall -o RPM::RootDir=$INSTALLDIR install vine-keyring # resolv.conf をホストからコピー cp -a /etc/resolv.conf $INSTALLDIR/etc/
違うバージョンの chroot を作る場合は、apt に別の sources.list を読み込ませる。
- /tmp/sources.list.4.2
rpm http://updates.vinelinux.org/apt 4.2/i386 main plus updates
- apt-get の追加オプション
-o Dir::Etc::sourcelist=/tmp/sources.list.4.2
- 完了後に rpmdb を再構築
rm -f $INSTALLDIR/var/lib/rpm/__db.00* chroot $INSTALLDIR rpm --rebuilddb
関連 bootstrap 機構
- Debian: debootstrap
- RPMベースシステム: rpmstrap (dead?)
- RPMベースシステム: rinse
