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

« back to all changes in this revision

Viewing changes to doc/man/install.rst

  • Committer: Matt Giuca
  • Date: 2009-12-08 05:34:01 UTC
  • Revision ID: matt.giuca@gmail.com-20091208053401-t62dw8a16xu39qeu
ivle-loadsampledata: Runs ivle-refreshfilesystem both before and after loading sample data into the database, so that existing sample users are moved out of the way. This is explained in the docs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.. IVLE - Informatics Virtual Learning Environment
 
2
   Copyright (C) 2007-2009 The University of Melbourne
 
3
 
 
4
.. This program is free software; you can redistribute it and/or modify
 
5
   it under the terms of the GNU General Public License as published by
 
6
   the Free Software Foundation; either version 2 of the License, or
 
7
   (at your option) any later version.
 
8
 
 
9
.. This program is distributed in the hope that it will be useful,
 
10
   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
   GNU General Public License for more details.
 
13
 
 
14
.. You should have received a copy of the GNU General Public License
 
15
   along with this program; if not, write to the Free Software
 
16
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
17
 
 
18
.. _ref-install:
 
19
 
 
20
************
 
21
Installation
 
22
************
 
23
 
 
24
System requirements
 
25
===================
 
26
 
 
27
Given versions are those on which IVLE is known to work; earlier versions
 
28
might work too. Debian/Ubuntu package names are given after the name of the
 
29
software.
 
30
 
 
31
.. If this list changes, you also need to change the list below.
 
32
 
 
33
* Ubuntu 8.04 or later (other distros should work with some tweaking, but are untested)
 
34
* Apache 2.x (``apache2``) with modules:
 
35
   + mod_python (``libapache2-mod-python``)
 
36
   + mod_dav_svn and mod_authz_svn (``libapache2-svn``)
 
37
* Python 2.5 (``python2.5``) or 2.6 (``python2.6``) with modules:
 
38
   + cjson (``python-cjson``)
 
39
   + ConfigObj (``python-configobj``)
 
40
   + docutils (``python-docutils``)
 
41
   + epydoc (``python-epydoc``)
 
42
   + FormEncode (``python-formencode``)
 
43
   + Genshi (``python-genshi``)
 
44
   + psycopg2 (``python-psycopg2``)
 
45
   + pysvn (``python-svn``)
 
46
   + Storm (``python-storm``)
 
47
* jQuery (``libjs-jquery``)
 
48
* PostgreSQL 8.3 or later (``postgresql``)
 
49
* Subversion (``subversion``)
 
50
* debootstrap (``debootstrap``)
 
51
* rsync (``rsync``)
 
52
* GCC and related build machinery (``build-essential``)
 
53
 
 
54
Master versus slave servers
 
55
===========================
 
56
 
 
57
Installing from a Debian package
 
58
================================
 
59
 
 
60
.. _database-setup:
 
61
 
 
62
Installing from source
 
63
======================
 
64
 
 
65
.. If this list changes, you also need to change the list above.
 
66
 
 
67
If you want to grab all of the required packages in one command, use::
 
68
 
 
69
    sudo apt-get install apache2 libapache2-mod-python libapache2-svn \
 
70
    python2.6 python-cjson python-configobj python-docutils python-epydoc \
 
71
    python-formencode python-genshi python-psycopg2 python-svn python-storm \
 
72
    libjs-jquery postgresql subversion debootstrap rsync build-essential
 
73
 
 
74
While installing from a distribution package is often a better idea for
 
75
users, developers will need to install from a plain source tree.
 
76
 
 
77
To get the tree, either grab and extract a release tarball, or get the
 
78
very latest code using bzr: ::
 
79
 
 
80
   bzr get lp:ivle
 
81
 
 
82
You should then change into the new source directory.
 
83
 
 
84
As IVLE needs to compile some binaries, you must first build, then
 
85
install it: ::
 
86
 
 
87
   ./setup.py build
 
88
   sudo ./setup.py install
 
89
 
 
90
Unlike the package, you will have to manually set up the database and
 
91
configuration.
 
92
 
 
93
First, it is recommended that you create a separate database user for IVLE.
 
94
You may use any name for the user. ::
 
95
 
 
96
   sudo -u postgres createuser ivleuser     # Answer 'n' to all questions
 
97
   sudo -u postgres psql -c "ALTER USER ivleuser WITH ENCRYPTED PASSWORD 'ivle-password';"
 
98
 
 
99
Now, you must create a PostgreSQL database, and populate it with the
 
100
IVLE schema. You may use any name for the database (here we use ``ivle``). ::
 
101
 
 
102
   sudo -u postgres createdb -O ivleuser ivle
 
103
   sudo -u postgres createlang plpgsql ivle
 
104
   psql -h localhost -W ivle ivleuser < userdb/users.sql
 
105
 
 
106
The configuration wizard - ``ivle-config`` - will ask you a series of
 
107
questions. You should give the database username and password as configured
 
108
above. Apart from database settings, the defaults should be correct
 
109
for a development system. If deploying IVLE properly - particularly on
 
110
multiple nodes - several options will need to be changed. Watching
 
111
carefully, run: ::
 
112
 
 
113
   sudo ivle-config
 
114
 
 
115
 
 
116
Basic configuration
 
117
===================
 
118
 
 
119
.. Note: Place here only the configuration required to get the system
 
120
   installed and running. Any further configuration should go in config.rst.
 
121
 
 
122
IVLE needs a directory hierarchy in which to store filesystem data, which
 
123
by default lives in ``/var/lib/ivle``. Create it now. ::
 
124
 
 
125
   sudo ivle-createdatadirs
 
126
 
 
127
 
 
128
Configuring the jail environment
 
129
--------------------------------
 
130
 
 
131
You will require a self-contained jail environment in which to safely
 
132
execute student code. 
 
133
Before you can actually build the jail, a few configuration options are
 
134
needed. Open up ``/etc/ivle/ivle.conf``, and find the ``[jail]`` section
 
135
(**not** the ``[[jails]]`` section).
 
136
Add to it: ::
 
137
 
 
138
   devmode = True
 
139
   suite = jaunty # Replace this with the codename of your Ubuntu release.
 
140
   mirror = http://url.to.archive/mirror # Replace with a fast Ubuntu mirror.
 
141
   extra_packages = python-configobj, python-svn, python-cjson
 
142
 
 
143
.. TODO: Move this around a bit, as the config options required differ for
 
144
   the packaged version.
 
145
 
 
146
Now we can actually build the jail. The creation process basically downloads
 
147
a minimal Ubuntu system and installs it in ``/var/lib/ivle/jails/__base__``.
 
148
Note that this could download a couple of hundred megabytes. ::
 
149
 
 
150
   sudo ivle-buildjail -r
 
151
 
 
152
Configuring Apache
 
153
------------------
 
154
 
 
155
IVLE makes use of two Apache virtual hosts: one for the application itself,
 
156
and one for the Subversion services. There are example configuration files
 
157
in ``examples/config/apache.conf`` and ``examples/config/apache-svn.conf``,
 
158
which will run IVLE at ``http://ivle.localhost/``.
 
159
 
 
160
On a Debian or Ubuntu system, just copy those two files into
 
161
``/etc/apache2/sites-available`` under appropriate names (eg. ``ivle`` and
 
162
``ivle-svn``). Then you need to activate them: ::
 
163
 
 
164
   sudo a2ensite ivle
 
165
   sudo a2ensite ivle-svn
 
166
   sudo /etc/init.d/apache2 reload
 
167
 
 
168
 
 
169
Configuring hostname resolution
 
170
--------------------------------
 
171
 
 
172
All of IVLE's hostnames need to be resolvable from the local system. For a
 
173
production environment, this would be done in DNS. For a development system,
 
174
this is usually done in ``/etc/hosts``. Add this line to that file: ::
 
175
 
 
176
   127.0.1.1 ivle.localhost public.ivle.localhost svn.ivle.localhost
 
177
 
 
178
Code running inside the jail environment also needs to be able to resolve
 
179
those names. Add, to ``/var/lib/ivle/jails/__base_build__/etc/hosts``: ::
 
180
 
 
181
   127.0.1.1 svn.ivle.localhost
 
182
 
 
183
Then refresh the active copy of the jail: ::
 
184
 
 
185
   sudo ivle-buildjail
 
186
 
 
187
 
 
188
Configuring the user management server
 
189
--------------------------------------
 
190
 
 
191
You need to have the IVLE user management server (``usrmgt-server``) running
 
192
for many parts of IVLE to operate properly, so it should be configured to
 
193
start on boot. There is an example init script in
 
194
``examples/config/usrmgt-server.init``. For Debian or Ubuntu, copy it to
 
195
``/etc/init.d/ivle-usrmgt-server``. Start it now, and set it to start
 
196
automatically: ::
 
197
 
 
198
   sudo /etc/init.d/ivle-usrmgt-server start
 
199
   sudo update-rc.d ivle-usrmgt-server defaults 99
 
200
 
 
201
 
 
202
Creating the initial user
 
203
-------------------------
 
204
 
 
205
The final step in getting a usable IVLE set up is creating a user. You'll
 
206
probably want admin privileges - if not, drop the ``--admin``. ::
 
207
 
 
208
   sudo ivle-adduser --admin -p password username 'Full Name'
 
209
 
 
210
You should then be able to browse to ``http://ivle.localhost/``, and
 
211
log in with that username and password.
 
212
 
 
213
*Alternatively*, you may wish to import the IVLE sample data, for a complete
 
214
working IVLE environment (not for production use). See :ref:`sample-data`.
 
215
 
 
216
.. note::
 
217
   For more advanced configuration, see :ref:`Configuring IVLE
 
218
   <ref-configuring-ivle>`.