coLinux で最小構成 Vine3.2 を作ろう!
世の中には coLinux インストーラというすごく便利なスクリプトがあります。ただしこれを使うとほとんど全てのRPMパッケージがインストールされてしまうので、サーバー等に使うには微妙です(インストールするだけで2GB近く使います)。幸い、インストールスクリプトを修正すればこの問題は回避できます。
いまとなっては Vine もあまり人気のないディストリビュージョンですが、CD一枚で大方のパッケージが揃ってしまう手軽さはいまだサーバーやプログラムの勉強にぴったりだと思います。自分は大学2年の頃からだからもう7年くらい使っています(笑
coLinux-installer/lib/script.0
install_rpms_vine という関数を以下のように書き換えます。このRPMリストは Vine3.2 を最小構成でインストールした直後に rpm -qa | sort で取り出したものです。
install_rpms_vine() { echo "##### rpm install #####" if [ ! -d "${MNT_NEW_DIR}/usr/bin" ] ; then echo "ERROR" exit 1 fi if [ ! -d "${MNT_NEW_DIR}/${MNT_CDROM}/${DIST_DIR}/RPMS" ] ; then echo "ERROR" exit 1 fi mount -t proc none ${MNT_NEW_DIR}/proc cat > ${MNT_NEW_DIR}/tmp/rpms << x #! /${BASE_DIR}/usr/bin/bash PATH=/bin:/usr/bin:/sbin:/${BASE_DIR}/bin:/${BASE_DIR}/usr/bin:/${BASE_DIR}/usr/sbin export PATH exec rpm -ivh --nodeps \\ x (cd ${MNT_NEW_DIR}/${MNT_CDROM}/${DIST_DIR}/RPMS; ls MAKEDEV-3.3.13-1vl3.i386.rpm\ SysVinit-2.85-5vl2.i386.rpm\ adjtimex-1.13-4vl2.i386.rpm\ alternatives-0.1.10.18-0vl1.i386.rpm\ anacron-2.3-29vl1.i386.rpm\ apt-0.5.15.cnc.7-0vl6.1.i386.rpm\ at-3.1.8-23vl1.i386.rpm\ authconfig-4.6.1-1vl2.i386.rpm\ autofs-3.1.7-42vl3.i386.rpm\ basesystem-6.0-4vl3.noarch.rpm\ bash-2.05b-0vl2.i386.rpm\ bc-1.06-10vl2.i386.rpm\ bzip2-1.0.2-0vl2.i386.rpm\ chkconfig-1.2.17-1vl8.i386.rpm\ console-tools-19990829-29vl3.i386.rpm\ cpio-2.5-1vl1.i386.rpm\ cracklib-2.7-27vl1.i386.rpm\ cracklib-dicts-2.7-27vl1.i386.rpm\ crontabs-1.9-2vl1.noarch.rpm\ cups-libs-1.1.22-0vl1.i386.rpm\ cyrus-sasl-2.1.18-0vl3.i386.rpm\ db4-4.2.52-6vl3.1.i386.rpm\ db40-4.0.14-15vl4.i386.rpm\ dev-3.3.13-1vl3.i386.rpm\ dhcpcd-1.3.22pl4-0vl1.i386.rpm\ diffutils-2.8.1-11vl1.i386.rpm\ dosfstools-2.8-4vl1.i386.rpm\ e2fsprogs-1.35-0vl2.i386.rpm\ ed-0.2-35vl1.i386.rpm\ eject-2.0.13-3vl1.i386.rpm\ etcskel-3.0-0vl3.noarch.rpm\ file-4.09-0vl1.i386.rpm\ filesystem-1.3.5-1vl2.noarch.rpm\ fileutils-4.1-10.1vl4.i386.rpm\ findutils-4.1.5-0vl3.i386.rpm\ gawk-3.1.3-0vl2.i386.rpm\ gcc-cpp-3.3.2-0vl8.i386.rpm\ gdbm-1.8.0-20vl1.i386.rpm\ glib-1.2.10-0vl5.i386.rpm\ glib2-2.4.7-0vl1.i386.rpm\ glibc-2.3.3-3vl1.2.i386.rpm\ glibc-common-2.3.3-3vl1.2.i386.rpm\ gmp-4.1.2-13vl1.i386.rpm\ gnupg-1.2.6-0vl2.i386.rpm\ gpm-1.20.1-35vl2.i386.rpm\ grep-2.5.1-29vl1.i386.rpm\ groff-1.17.2-0vl6.i386.rpm\ gzip-1.3.2-2vl3.i386.rpm\ hdparm-5.7-0vl1.i386.rpm\ hwdata-0.123-0vl15.noarch.rpm\ initscripts-6.51-1vl33.3.i386.rpm\ install-info-4.7-0vl1.i386.rpm\ iproute-2.2.4-14vl2.i386.rpm\ iputils-20020927-13vl2.i386.rpm\ isapnptools-1.22-2vl3.i386.rpm\ jed-0.99.14-0vl5.i386.rpm\ jed-common-0.99.14-0vl5.i386.rpm\ jman_pages-0.5-20050615vl1.noarch.rpm\ kbdconfig-1.9.8-5vl2.i386.rpm\ kernel-2.4.31-0vl1.8.i386.rpm\ kudzu-0.99.60-1vl8.i386.rpm\ less-358-0vl9.i386.rpm\ libcanna-3.6p3-0vl8.i386.rpm\ libgcc-3.3.2-0vl8.i386.rpm\ libjpeg-6b-21vl2.i386.rpm\ libpng-1.2.8-0vl1.i386.rpm\ libruby-1.8.1-0vl20.1.i386.rpm\ libstdc++3-3.3.2-0vl8.i386.rpm\ libtermcap-2.0.8-36vl1.i386.rpm\ libtiff-3.5.7-6vl7.i386.rpm\ libuser-0.51.7-7vl2.i386.rpm\ libxml-1.8.17-0vl4.i386.rpm\ libxml2-2.6.15-0vl1.i386.rpm\ lilo-22.5.8-0vl1.i386.rpm\ logrotate-3.6.8-1vl1.i386.rpm\ losetup-2.11z-0vl1.i386.rpm\ mailcap-2.1.14-1vl1.noarch.rpm\ mailx-8.1.1-32vl1.i386.rpm\ make-3.80-0vl3.i386.rpm\ man-1.5o-0vl1.i386.rpm\ man-pages-1.66-0vl1.noarch.rpm\ mingetty-1.06-2vl1.i386.rpm\ mkinitrd-3.5.23-1vl1.1.i386.rpm\ mkkickstart-2.1-1vl2.noarch.rpm\ mktemp-1.5-11vl2.i386.rpm\ modutils-2.4.27-0vl1.i386.rpm\ mount-2.11z-0vl1.i386.rpm\ mouseconfig-4.19-1vl5.i386.rpm\ murasaki-0.8.9-0vl2.i386.rpm\ murasaki-usb-mount-0.5-0vl1.noarch.rpm\ ncompress-4.2.4-31vl2.i386.rpm\ ncurses-5.4-0vl2.i386.rpm\ net-tools-1.60-12vl1.i386.rpm\ newt-0.50.35-0vl3.i386.rpm\ nkf-2.04-0vl1.i386.rpm\ ntsysv-1.2.17-1vl8.i386.rpm\ openssh-3.9p1-0vl1.i386.rpm\ openssh-clients-3.9p1-0vl1.i386.rpm\ openssh-server-3.9p1-0vl1.i386.rpm\ openssl-0.9.7d-0vl3.1.i386.rpm\ openssl096-0.9.6m-0vl1.i386.rpm\ pam-0.77-38vl2.1.i386.rpm\ passwd-0.68-8vl1.i386.rpm\ pciutils-2.1.10-4vl1.i386.rpm\ pcre-4.5-0vl2.i386.rpm\ perl-5.8.2-0vl4.1.i386.rpm\ popt-1.6.5-1vl8.i386.rpm\ portmap-4.0-56vl1.i386.rpm\ postfix-2.0.20-0vl5.1.i386.rpm\ procinfo-18-9vl1.i386.rpm\ procmail-3.22-0vl3.i386.rpm\ procps-2.0.6-5vl6.i386.rpm\ psmisc-21.2-4vl1.i386.rpm\ pump-0.8.11-1vl2.i386.rpm\ pwdb-0.62-0vl2.i386.rpm\ python-2.3.4-0vl5.i386.rpm\ raidtools-1.00.3-8vl2.i386.rpm\ readline-4.3-5vl1.i386.rpm\ reiserfsprogs-3.6.17-0vl1.i386.rpm\ rootfiles-7.6-0vl1.noarch.rpm\ rpm-4.0.5-1vl8.1.i386.rpm\ ruby-1.8.1-0vl20.1.i386.rpm\ sash-3.4-8vl3.i386.rpm\ sed-4.1.2-0vl1.i386.rpm\ setup-2.5.7-2vl3.noarch.rpm\ setuptool-1.2-5vl5.i386.rpm\ sgml-common-0.6.3-14vl2.noarch.rpm\ sh-utils-2.0.11-9vl6.i386.rpm\ shadow-utils-4.0.3-35vl1.1.i386.rpm\ slang-1.4.4-0vl4.i386.rpm\ slocate-2.7-5vl1.i386.rpm\ stat-2.2-1vl1.i386.rpm\ sudo-1.6.8p9-0vl1.i386.rpm\ sysklogd-1.4.1-13vl2.i386.rpm\ tar-1.14-0vl1.i386.rpm\ tcp_wrappers-7.6-34vl2.i386.rpm\ tcsh-6.12-0vl5.i386.rpm\ termcap-11.0.1-1vl5.noarch.rpm\ textutils-2.0.17-0vl4.i386.rpm\ time-1.7-20vl1.i386.rpm\ tmpwatch-2.9.0-2vl1.i386.rpm\ unzip-5.50-5vl2.i386.rpm\ usermode-1.70-4vl2.i386.rpm\ utempter-0.5.3-2vl1.i386.rpm\ util-linux-2.11z-0vl1.i386.rpm\ vim-6.3.82-0vl0.1.i386.rpm\ vim-common-6.3.82-0vl0.1.i386.rpm\ vine-keyring-1.0-0vl19.noarch.rpm\ vine-logos-1.2.1-0vl3.noarch.rpm\ vine-release-3.2-0vl1.noarch.rpm\ vixie-cron-3.0.1-87vl2.i386.rpm\ vutils-1.22.4-0vl1.noarch.rpm\ which-2.16-0vl4.i386.rpm\ words-2-17vl1.noarch.rpm\ xml-common-0.6.3-14vl2.noarch.rpm\ zip-2.3-14vl2.1.i386.rpm\ zlib-1.1.4-0vl3.i386.rpm\ | sort | uniq -u | xargs echo ) >> ${MNT_NEW_DIR}/tmp/rpms cat > ${MNT_NEW_DIR}/tmp/inst.sh <<x #! /${BASE_DIR}/usr/bin/bash PATH=/bin:/usr/bin:/sbin:/${BASE_DIR}/bin:/${BASE_DIR}/usr/bin:/${BASE_DIR}/usr/sbin export PATH echo "##### RPMS INSTALL on chroot env. #####" cd /${MNT_CDROM}/${DIST_DIR}/RPMS rpm --initdb rpm -ivh setup-*.rpm sh /tmp/rpms x chroot ${MNT_NEW_DIR} /${BASE_DIR}/usr/bin/bash /tmp/inst.sh umount ${MNT_NEW_DIR}/proc }