~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to buildjail.sh

  • Committer: dcoles
  • Date: 2008-07-02 03:10:36 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:797
Setup: Addition of an automatic jail builder. This means we no longer are 
required to maintain an explicit list of files and libraries that can be easily 
broken by a single update to the system. It also goes a huge way to making IVLE 
not only more 'update maintainable' but portable to other Unix systems.  
(Should be fairly trivial if the system supports APT, should be able to be 
modified to support other package manager systems with a bit of work).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
# IVLE - Informatics Virtual Learning Environment
 
3
# Copyright (C) 2007-2008 The University of Melbourne
 
4
#
 
5
# This program is free software; you can redistribute it and/or modify
 
6
# it under the terms of the GNU General Public License as published by
 
7
# the Free Software Foundation; either version 2 of the License, or
 
8
# (at your option) any later version.
 
9
#
 
10
# This program is distributed in the hope that it will be useful,
 
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
13
# GNU General Public License for more details.
 
14
#
 
15
# You should have received a copy of the GNU General Public License
 
16
# along with this program; if not, write to the Free Software
 
17
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
18
 
 
19
# Module: buildjail.sh
 
20
# Author: David Coles
 
21
# Date:   02/02/2008
 
22
 
 
23
# This is a script to build a minimal Ubuntu chroot jail in JAIL with a set of 
 
24
# SYSTEMPACKAGES and STUDENTPACKAGES added. It downloads these packages from an 
 
25
# APT mirror located at MIRROR and will use the latest packages from the 
 
26
# release version RELEASE and sections SECTION. After installing it will clean 
 
27
# the package cache to save space.
 
28
 
 
29
# NOTE: This script will remove the JAIL diretcory and anything contained 
 
30
# within. Check the path carefully! 
 
31
 
 
32
RELEASE=hardy
 
33
SECTIONS="main universe"
 
34
JAIL=jail
 
35
SYSTEMPACKAGES="python-cjson python-svn"
 
36
STUDENTPACKAGES="python-numpy python-matplotlib python-scipy \
 
37
    python-beautifulsoup python-lxml python-imaging \
 
38
    python-simpletal" #nltk, elementtree-1.3beta (needs tidy)
 
39
 
 
40
if [ "x$MIRROR" = "x" ]; then
 
41
    MIRROR=http://archive.ubuntu.com/ubuntu/
 
42
fi
 
43
echo "Using Mirror: $MIRROR"
 
44
 
 
45
echo "Building minimal Jail..."
 
46
sudo rm -rf $JAIL
 
47
sudo debootstrap --components=`echo $SECTIONS | tr ' ' ','` \
 
48
    --include=ubuntu-keyring \
 
49
    --variant=minbase $RELEASE $JAIL $MIRROR
 
50
 
 
51
echo "Updating package sources..."
 
52
sudo tee $JAIL/etc/apt/sources.list > /dev/null <<SOURCES
 
53
# APT Mirrors
 
54
deb $MIRROR $RELEASE main $SECTIONS
 
55
deb $MIRROR $RELEASE-security $SECTIONS
 
56
deb $MIRROR $RELEASE-updates $SECTIONS"
 
57
SOURCES
 
58
 
 
59
echo "Adding packages..."
 
60
sudo chroot $JAIL /bin/sh -c "apt-get -y update"
 
61
sudo chroot $JAIL /bin/sh -c "apt-get -y install $SYSTEMPACKAGES \
 
62
    $STUDENTPACKAGES"
 
63
sudo chroot $JAIL /bin/sh -c "apt-get -y upgrade"
 
64
sudo chroot $JAIL /bin/sh -c "apt-get -y clean"
 
65
 
 
66
echo "Pruning unwanted files from Jail..."
 
67
sudo rm -rf $JAIL/dev/ $JAIL/sys/ $JAIL/proc/ $JAIL/boot/