source: projects/vbootstrap/trunk/vbootstrap.sh.in @ 11232

Revision 11232, 2.3 KB checked in by iwamoto, 6 years ago (diff)

vbootstrap.sh: add mknod /dev/urandom (Thanks to tomop-san)

RevLine 
[118]1#!/bin/bash
2
[2522]3TEXTDOMAIN=vbootstrap
4TEXTDOMAINDIR=/usr/share/locale
5
[118]6VERSION=@@VBOOTSTRAP_VERSION@@
7
[10958]8LANG=C
9
[118]10##
11
12VBOOTSTRAPDIR="/usr/share/vbootstrap"
13SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
14
15##
16
17usage()
18{
[5364]19  echo "Usage: vbootstrap <version>_<arch> <url> <targetdir>"
[3676]20  echo "  supported <version>_<arch>:"
[118]21  for ver in $SUPPORTED_VERSION
22  do
23    echo "    $ver"
24  done
25}
26
27##
28
29if [ "$(id -u)" != "0" ]
30then
31  usage
32  echo "E: You should run vbooststrap as super user."
33  exit 0
34fi
35
[5364]36if ! [ $# -eq 3 ]
[118]37then
38  usage
[5364]39  echo "E: You must specify a vine version, location and target."
[118]40  exit 0
41fi
42
43INSTVER=$1
44shift
45
46if [ -f "$VBOOTSTRAPDIR/scripts/$INSTVER" ]
47then
48  source $VBOOTSTRAPDIR/scripts/$INSTVER
49else
50  usage
51  echo "E: $INSTVER is not supported."
52  exit 0
53fi
54
[5364]55FETCHURL=$1
56shift
57
[118]58INSTDIR=$1
59shift
60
61if [ -d "$INSTDIR" ]
62then
63  echo "E: Specified directory \"$INSTDIR\" is already exists."
64  usage
65  exit 0
66fi
67
68##
69
[5364]70APT_OPTS="
71    -o Dir::Etc::sourcelist=$INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER
72    -o RPM::RootDir=$INSTDIR
73    -o Dir::Etc::sourceparts=$INSTDIR/etc/apt/sources.list.d
74    -o Dir::State=$INSTDIR/var/lib/apt
[6874]75    -o Dir::Cache=$INSTDIR/var/cache/apt
76    -o RPM::PM=\"external\"
[6962]77    -o RPM::Install-Options::=--force
78    -o RPM::Install-Options::=--nosignature "
[118]79
80##
81
[5364]82# generate source.list of $INSTVER
83mkdir -p $INSTDIR/etc/vbootstrap/sources.list.d
84sed -e "s,@@FETCHURL@@,${FETCHURL}," $VBOOTSTRAPDIR/sources.list.d/$INSTVER > $INSTDIR/etc/vbootstrap/sources.list.d/$INSTVER || exit 1
85
[118]86# initialize rpm database
[2522]87echo $"Initializing RPM database in $INSTDIR."
[118]88mkdir -p $INSTDIR/var/lib/rpm
89rpm --initdb --root $INSTDIR
90
91# update apt database
[2522]92echo $"update apt database."
[738]93mkdir -p $INSTDIR/var/lib/apt/lists/partial
94mkdir -p $INSTDIR/var/cache/apt/archives/partial
[118]95apt-get -qq $APT_OPTS update
96
97# misc setup files
98mkdir -p $INSTDIR/etc
99touch $INSTDIR/etc/mtab
100
101# create some device files
102mkdir $INSTDIR/dev
103mknod $INSTDIR/dev/null c 1 3
104mknod $INSTDIR/dev/console c 5 1
[11232]105mknod $INSTDIR/dev/urandom c 1 9
[118]106
107# install base vine linux system.
[2522]108echo $"Installing basesystem."
[118]109for i in $BASE_PKGS
110do
111  apt-get -y -qq $APT_OPTS install $i
112done
113
[10958]114# remove process limits
115rm -f $INSTDIR/etc/security/limits.d/90-nproc.conf
116
[118]117# run post install script
118vbootstrap_post
119
[3850]120echo $"vbootstrap done."
[118]121
Note: See TracBrowser for help on using the repository browser.