debootstrap 下調べメモ

debootstrapはローカルミラーでも動くみたい。manにサンプルがあった。

# debootstrap woody ./woody-chroot file:///PATH_TO_LOCAL_MIRROR/debian

操作方法もmanにある。

main # cd / ; mkdir /sid-root
main # debootstrap sid /sid-root http://ftp.debian.org/debian/
[ ... watch it download the whole system ]
main # echo "proc-sid /sid-root/proc proc none 0 0" >> /etc/fstab
main # mount proc-sid /sid-root/proc -t proc
main # cp /etc/hosts /sid-root/etc/hosts
main # chroot /sid-root /bin/bash
chroot # apt-setup
[ set-up /etc/apt/sources.list ]
chroot # vi /etc/apt/sources.list
[ point the source to unstable ]
chroot # dselect
[ you may use aptitude, install mc and vim ... ]
main # echo "8:23:respawn:/usr/sbin/chroot /sid-root " \
"/sbin/getty 38400 tty8" >> /etc/inittab
[ define a login tty that will use this system ]
main # init q
[ reload init ]

パッケージ情報はどこにはいっているのだろう。探す。

# dpkg -L debootstrap
/.
/usr
/usr/sbin
/usr/sbin/debootstrap
/usr/share
/usr/share/man
/usr/share/man/man8
/usr/share/man/man8/debootstrap.8.gz
/usr/share/doc
/usr/share/doc/debootstrap
/usr/share/doc/debootstrap/README.Debian
/usr/share/doc/debootstrap/copyright
/usr/share/doc/debootstrap/changelog.Debian.gz
/usr/lib
/usr/lib/debootstrap
/usr/lib/debootstrap/scripts
/usr/lib/debootstrap/scripts/slink
/usr/lib/debootstrap/scripts/potato
/usr/lib/debootstrap/scripts/woody
/usr/lib/debootstrap/scripts/sarge
/usr/lib/debootstrap/scripts/sid
/usr/lib/debootstrap/scripts/woody.buildd
/usr/lib/debootstrap/scripts/sarge.buildd
/usr/lib/debootstrap/scripts/sid.buildd
/usr/lib/debootstrap/functions
/usr/lib/debootstrap/pkgdetails
/usr/lib/debootstrap/devices.tar.gz
/usr/lib/debootstrap/arch

# cd /usr/lib/debootstrap/

arch ファイルにアーキテクチャが書かれているみたい。i386になっているので、これはsh4に直す必要がるのかな。

sarge には、shアーキテクチャ用の拡張がすでに入っている。いつから入っているのだろうか。たぶん、2001年頃のブームのなごりかもしれない。

sh*)
base="$base libstdc++3 gcc-3.0-base"
base="$(without_package "fdutils" "$base")"
required="$required libgcc1"
required="$(without_package "libstdc++2.10-glibc2.2" "$required")"
;;

いまのところ、これらのツールはOpenLAND26では必要はないものと思われる。書き換えてパッチをする必要がある。IPFWTOOL="ipchains iptables"が付いていないのも古いままだからか。海老原さんのところや、kogiidenaさんのところでは修正しているのだろうか。要チェック。
指定されているパッケージは以下の通り。コマンドラインオプションで渡すよりも、これを書き換えたほうが早いような気も。

required="base-files base-passwd bash bsdutils coreutils libacl1 libattr1 debconf debconf-i18n liblocale-gettext-perl libtext-wrapi18n-perl libtext-charwidth-perl debianutils diff dpkg dselect libblkid1 e2fsprogs e2fslibs libcomerr2 libss2 libuuid1 findutils grep gzip hostname libcap1 libc6 libdb1-compat libdb3 libncurses5 libnewt0.51 libpam-modules libpam-runtime libpam0g libperl5.8 libpopt0
login makedev mawk modutils mount ncurses-base ncurses-bin passwd perl-base procps sed slang1a-utf8 initscripts sysvinit sysv-rc tar util-linux whiptail libgcc1 gcc-3.3-base libstdc++5"

base="adduser apt apt-utils libdb4.2 at base-config aptitude libsigc++-1.2-5c102 bsdmainutils console-common console-tools libconsole console-data cpio cron dhcp-client ed exim4 exim4-base exim4-config exim4-daemon-light libgcrypt11 libgnutls11 libgpg-error0 libopencdk8 libtasn1-2 fdutils gettext-base groff-base ifupdown info klogd libssl0.9.7 liblzo1 zlib1g liblockfile1 libpcre3 libwrap0 logrotate mailx man-db libgdbm3 manpages nano net-tools netbase netkit-inetd iputils-ping nvi ppp pppconfig pppoe pppoeconf libpcap0.7 sysklogd tasksel libtextwrap1 tcpd telnet libtext-iconv-perl wget $additional"

明確なバージョン指定のあるパッケージは思ったより少ない。しかし、実際はそれぞれのパッケージの依存バージョン指定によってかなり縛られたものになるのだろう。