source: projects/vbootstrap/tags/0.3_REL/vbootstrap.sh.in @ 10958

Revision 10958, 2.2 KB checked in by daisuke, 7 years ago (diff)

vbootstrap-0.2

  • Vine Linux 6.5対応
  • vbootstrap に LANG=C を追加
Line 
1#!/bin/bash
2
3TEXTDOMAIN=vbootstrap
4TEXTDOMAINDIR=/usr/share/locale
5
6VERSION=@@VBOOTSTRAP_VERSION@@
7
8LANG=C
9
10##
11
12VBOOTSTRAPDIR="/usr/share/vbootstrap"
13SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
14
15##
16
17usage()
18{
19  echo "Usage: vbootstrap <version>_<arch> <url> <targetdir>"
20  echo "  supported <version>_<arch>:"
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
36if ! [ $# -eq 3 ]
37then
38  usage
39  echo "E: You must specify a vine version, location and target."
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
55FETCHURL=$1
56shift
57
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
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
75    -o Dir::Cache=$INSTDIR/var/cache/apt
76    -o RPM::PM=\"external\"
77    -o RPM::Install-Options::=--force
78    -o RPM::Install-Options::=--nosignature "
79
80##
81
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
86# initialize rpm database
87echo $"Initializing RPM database in $INSTDIR."
88mkdir -p $INSTDIR/var/lib/rpm
89rpm --initdb --root $INSTDIR
90
91# update apt database
92echo $"update apt database."
93mkdir -p $INSTDIR/var/lib/apt/lists/partial
94mkdir -p $INSTDIR/var/cache/apt/archives/partial
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
105
106# install base vine linux system.
107echo $"Installing basesystem."
108for i in $BASE_PKGS
109do
110  apt-get -y -qq $APT_OPTS install $i
111done
112
113# remove process limits
114rm -f $INSTDIR/etc/security/limits.d/90-nproc.conf
115
116# run post install script
117vbootstrap_post
118
119echo $"vbootstrap done."
120
Note: See TracBrowser for help on using the repository browser.