wiki:VineBootstrap

Version 4 (modified by daisuke, 13 years ago) (diff)

--

vbootstrap - bootstrap a basic Vine Linux system

bootstrap

Vine Linux 上で Vine Linux のベースシステムを作成するためのスクリプト。

  • chroot 環境の構築や Xen の DomainU 構築など
  • まずは Vine Linux 上で作成できるように。 他のシステム上でも作成できるようにするのは将来。
  • 同様の仕組みをもつものとして plus に tiny-buildfarm があるが現状では 動作しない状態になっている。

開発の選択肢

選択肢としては以下のもの。

  1. tiny-buildfarm をメンテナンスする
  2. 独自スクリプト(vbootstrap?)を用意する
    • ホストの apt を利用した簡便なシステムにする
    • bootstrap 用の static な apt を用意してつかう
    • apt に頼らないで bootstrapping できるようにする
  3.  rpmstrap を Vine Linux に対応させる
  4.  debootstrap ベースで改造する

とりあえずの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 機構