source: projects/vbootstrap/tags/0.0.33/vbootstrap.sh.in @ 738

Revision 738, 1.7 KB checked in by daisuke, 14 years ago (diff)

vbootstrap 時に host の /var/lib/apt/lists, /var/cache/apt/archives
ではなく、bootstrap 内にキャッシュするように変更した

  • APT_OPTS に Dir::State および Dir::Cache を設定
Line 
1#!/bin/bash
2
3VERSION=@@VBOOTSTRAP_VERSION@@
4
5##
6
7VBOOTSTRAPDIR="/usr/share/vbootstrap"
8SUPPORTED_VERSION="$(ls $VBOOTSTRAPDIR/scripts/)"
9
10##
11
12usage()
13{
14  echo "Usage: vbootstrap <version> <targetdir>"
15  echo "  supported version:"
16  for ver in $SUPPORTED_VERSION
17  do
18    echo "    $ver"
19  done
20}
21
22##
23
24if [ "$(id -u)" != "0" ]
25then
26  usage
27  echo "E: You should run vbooststrap as super user."
28  exit 0
29fi
30
31if ! [ $# -eq 2 ]
32then
33  usage
34  echo "E: You must specify a vine version and target."
35  exit 0
36fi
37
38INSTVER=$1
39shift
40
41if [ -f "$VBOOTSTRAPDIR/scripts/$INSTVER" ]
42then
43  source $VBOOTSTRAPDIR/scripts/$INSTVER
44else
45  usage
46  echo "E: $INSTVER is not supported."
47  exit 0
48fi
49
50INSTDIR=$1
51shift
52
53if [ -d "$INSTDIR" ]
54then
55  echo "E: Specified directory \"$INSTDIR\" is already exists."
56  usage
57  exit 0
58fi
59
60##
61
62APT_OPTS="$APT_LINE -o RPM::RootDir=$INSTDIR
63          -o Dir::Etc::sourceparts=$INSTDIR/etc/apt/sources.list.d
64          -o Dir::State=$INSTDIR/var/lib/apt
65          -o Dir::Cache=$INSTDIR/var/cache/apt "
66
67##
68
69# initialize rpm database
70echo "Initializing RPM database in $INSTDIR."
71mkdir -p $INSTDIR/var/lib/rpm
72rpm --initdb --root $INSTDIR
73
74# update apt database
75echo "update apt database."
76mkdir -p $INSTDIR/var/lib/apt/lists/partial
77mkdir -p $INSTDIR/var/cache/apt/archives/partial
78apt-get -qq $APT_OPTS update
79
80# misc setup files
81mkdir -p $INSTDIR/etc
82touch $INSTDIR/etc/mtab
83
84# create some device files
85mkdir $INSTDIR/dev
86mknod $INSTDIR/dev/null c 1 3
87mknod $INSTDIR/dev/console c 5 1
88
89# install base vine linux system.
90echo "Installing basesystem."
91for i in $BASE_PKGS
92do
93  apt-get -y -qq $APT_OPTS install $i
94done
95
96# run post install script
97vbootstrap_post
98
99echo "vboostrap done."
100
Note: See TracBrowser for help on using the repository browser.