mocksetup: Add /hdd bind.
[nethome.git] / src / centos-bootstrap
1 #! /bin/bash
2 # Bootstrap for: CentOS-4.3
3 # $Id$
4 # Latest:
5 #       http://cvs.jankratochvil.net/viewcvs/nethome/src/centos-bootstrap?rev=HEAD
6
7
8 RPMS_URL_BASE=http://rsync.atworks.co.jp/centos/4.3/os/i386/CentOS/RPMS
9
10
11 if test $# != 1;then echo >&2 "Syntax: $0 <target-root-directory(DELETED!)>";exit 1;fi
12 ROOT="$1"
13 if test "${ROOT#/}" = "$ROOT";then echo >&2 "Absolute pathname required: $ROOT";exit 1;fi
14
15 cd /
16 umount $ROOT/proc
17 set -ex
18
19 KEY=/tmp/centos-bootstrap-$$-key
20 rm -rf $KEY
21 trap 'rm -f $KEY' EXIT
22 mkdir $KEY
23 cd $KEY
24 # wget(1) due to: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=167483
25 wget -q -O - $RPMS_URL_BASE/centos-release-4-3.2.i386.rpm | rpm2cpio | cpio -id
26
27 rm -rf $ROOT
28 mkdir -p $ROOT/{etc,dev}
29 awk '/^[ \t]*[^#]/ { if ($2 == "/") { print; }}' </etc/fstab >$ROOT/etc/fstab
30 cp -a /dev/{null,urandom,random} `awk '/^[ \t]*[^#]/ { if ($2 == "/") { print $1; }}' </etc/fstab` $ROOT/dev/
31 rpm --root=$ROOT --initdb
32 rpm --root=$ROOT --import $KEY/usr/share/doc/centos-release-4/RPM-GPG-KEY
33 rm -rf $KEY
34 cd $RPMS
35 # For rpm(1) http:// downloads:
36 mkdir -p $ROOT/var/tmp
37 RPM=rpm
38 while read -r key val;do
39         if test -n "$val";then RPM="$RPM $key $val";fi
40         done <<EOH
41 --httpproxy `echo $http_proxy|sed -n 's#^[^/]*//\([^:/]*\).*$#\1#p'`
42 --httpport  `echo $http_proxy|sed -n 's#^[^/]*//[^:/]*:\([^/]*\).*$#\1#p'`
43  --ftpproxy `echo  $ftp_proxy|sed -n 's#^[^/]*//\([^:/]*\).*$#\1#p'`
44  --ftpport  `echo  $ftp_proxy|sed -n 's#^[^/]*//[^:/]*:\([^/]*\).*$#\1#p'`
45 EOH
46
47 # update package: V:!grep ^`sed 's/-[^-]*-[^-]*$//'`'-[^-]*-[^-]*$' /tmp/43<cr>j
48
49 # rpm(8)
50 DOWNLOAD=/tmp/centos-bootstrap-$$-download
51 rm -rf $DOWNLOAD
52 trap 'rm -rf $DOWNLOAD $KEY' EXIT
53 mkdir $DOWNLOAD
54 cd $DOWNLOAD
55 wget `set +x;while read -r line;do echo $RPMS_URL_BASE/$line;done <<EOH
56 rpm-4.3.3-13_nonptl.i386.rpm
57 bash-3.0-19.2.i386.rpm
58 glibc-2.3.4-2.19.i686.rpm
59 beecrypt-3.1.0-6.i386.rpm
60 mktemp-1.5-20.i386.rpm
61 libgcc-3.4.5-2.i386.rpm
62 basesystem-8.0-4.noarch.rpm
63 filesystem-2.3.0-1.i386.rpm
64 setup-2.5.37-1.3.noarch.rpm
65 glibc-common-2.3.4-2.19.i386.rpm
66 popt-1.9.1-13_nonptl.i386.rpm
67 shadow-utils-4.0.3-60.RHEL4.i386.rpm
68 coreutils-5.2.1-31.2.i386.rpm
69 pam-0.77-66.14.i386.rpm
70 libselinux-1.19.1-7.i386.rpm
71 sed-4.1.2-4.i386.rpm
72 cracklib-2.7-29.i386.rpm
73 db4-4.2.52-7.1.i386.rpm
74 initscripts-7.93.24.EL-1.1.centos4.i386.rpm
75 kernel-2.6.9-34.EL.i686.rpm
76 sysklogd-1.4.1-26_EL.i386.rpm
77 util-linux-2.12a-16.EL4.16.i386.rpm
78 grep-2.5.1-31.i386.rpm
79 gawk-3.1.3-10.1.i386.rpm
80 libstdc++-3.4.5-2.i386.rpm
81 glib2-2.4.7-1.i386.rpm
82 module-init-tools-3.1-0.pre5.3.2.i386.rpm
83 mkinitrd-4.2.1.6-1.i386.rpm
84 net-tools-1.60-37.EL4.6.i386.rpm
85 e2fsprogs-1.35-12.3.EL4.i386.rpm
86 findutils-4.1.20-7.i386.rpm
87 ncurses-5.4-13.i386.rpm
88 ethtool-1.8-4.i386.rpm
89 tzdata-2006a-1.EL4.noarch.rpm
90 pcre-4.5-3.2.RHEL4.i386.rpm
91 gzip-1.3.3-15.rhel4.i386.rpm
92 lvm2-2.02.01-1.3.RHEL4.i386.rpm
93 less-382-4.i386.rpm
94 chkconfig-1.3.13.3-2.i386.rpm
95 cpio-2.5-8.RHEL4.i386.rpm
96 device-mapper-1.02.02-3.0.RHEL4.i386.rpm
97 tar-1.14-9.RHEL4.i386.rpm
98 readline-4.3-13.i386.rpm
99 info-4.7-5.i386.rpm
100 zlib-1.2.1.2-1.2.i386.rpm
101 centos-release-4-3.2.i386.rpm
102 cracklib-dicts-2.7-29.i386.rpm
103 mingetty-1.07-3.i386.rpm
104 iputils-20020927-18.EL4.2.i386.rpm
105 rpm-libs-4.3.3-13_nonptl.i386.rpm
106 bzip2-libs-1.0.2-13.EL4.3.i386.rpm
107 libacl-2.2.23-5.i386.rpm
108 libtermcap-2.0.8-39.i386.rpm
109 libattr-2.4.16-3.i386.rpm
110 termcap-5.4-3.noarch.rpm
111 elfutils-libelf-0.97-5.i386.rpm
112 psmisc-21.4-4.i386.rpm
113 iproute-2.6.9-3.i386.rpm
114 procps-3.2.3-8.3.i386.rpm
115 SysVinit-2.85-34.3.i386.rpm
116 libsepol-1.1.1-2.i386.rpm
117 udev-039-10.12.EL4.i386.rpm
118 MAKEDEV-3.15.2-3.i386.rpm
119 hotplug-2004_04_01-7.6.i386.rpm
120 usbutils-0.11-6.1.i386.rpm
121 hwdata-0.146.18.EL-1.noarch.rpm
122 wget-1.10.2-0.40E.i386.rpm
123 openssl-0.9.7a-43.8.i686.rpm
124 krb5-libs-1.3.4-27.i386.rpm
125 audit-libs-1.0.12-1.EL4.i386.rpm
126 audit-1.0.12-1.EL4.i386.rpm
127 EOH
128 `
129 $RPM --root=$ROOT -i * 
130 rm -f *
131 cd
132 rm -rf $DOWNLOAD
133
134 chroot $ROOT /bin/rpm --rebuilddb
135
136 # Do not install yum(8) just by 'rpm --root', later --rebuilddb would:
137 #       rpmdb: Program version 4.2 doesn't match environment version
138 # FIXME: Analyse and bugreport:
139 # On "http" installation AND using --httpproxy: CentOS-4.1 rpm-4.3.3-9_nonptl would crash:
140 #       warning: package yum = 2.2.1-1.centos4 was already added, replacing with yum <= 2.2.1-1.centos4
141 #       ...
142 #       error: Failed dependencies:
143 #               /usr/bin/python is needed by yum-2.2.1-1.centos4.noarch
144 #               ...
145 # while with FC4 rpm-4.4.1-22 it would work fine (it would just corrupt 'rpmdb' here).
146 # yum(8)
147 lines="`cat <<EOH
148 yum-2.4.2-2.centos4.noarch.rpm
149 python-2.3.4-14.1.i386.rpm
150 rpm-python-4.3.3-13_nonptl.i386.rpm
151 libxml2-python-2.6.16-6.i386.rpm
152 gmp-4.1.4-3.i386.rpm
153 libxml2-2.6.16-6.i386.rpm
154 elfutils-0.97-5.i386.rpm
155 binutils-2.15.92.0.2-18.i386.rpm
156 gdbm-1.8.0-24.i386.rpm
157 centos-yumconf-4-4.5.noarch.rpm
158 python-elementtree-1.2.6-4.i386.rpm
159 python-sqlite-1.1.6-1.i386.rpm
160 python-urlgrabber-2.9.6-2.noarch.rpm
161 sqlite-3.2.2-1.i386.rpm
162 expat-1.95.7-4.i386.rpm
163 EOH
164 `"
165 chroot $ROOT /usr/bin/wget `set +x;for line in $lines;do echo $RPMS_URL_BASE/$line;done`
166 chroot $ROOT /bin/rpm -i $lines
167 chroot $ROOT /bin/rm -f $lines
168
169 repo=$ROOT/etc/yum.repos.d/CentOS-Base.repo
170 mv -f $repo $repo-orig
171 sed -e 's/^mirrorlist=/#&/' -e 's/^#\(baseurl=\)/\1/' <$repo-orig >$repo
172
173 chroot $ROOT /usr/bin/yum -y update
174
175 # For: kernel-2.6.9-11.EL.src.rpm
176 chroot $ROOT /usr/bin/yum -y install `cat <<EOH
177 rpm-build
178 bzip2
179 m4
180 make
181 gnupg
182 kernel-utils
183 gcc
184 redhat-rpm-config
185 diffutils
186 EOH
187 `
188
189 echo OK