Installing the Ginger Virtual Machine
=====================================

Introduction
------------
This note describes how to install the Ginger Virtual Machine from source
onto a bare machine.

Installing on Ubuntu or Mac OS X
--------------------------------

*	Pre-requisites: you'll need some basic developer tools 
		git, python, g++, autoconf, uuid, readline, make
	You can ensure you have these in one step with
		% sudo apt-get install make git python g++ autoconf uuid-dev libreadline-dev wget libpcap-dev libssl-dev libgmp-dev

*	We also need the RudeCGI library
		% mkdir /tmp/rudecgi
		% cd /tmp/rudecgi
		% wget http://www.rudeserver.com/cgiparser/download/rudecgi-5.0.0.tar.gz
		% tar zxf rudecgi-5.0.0.tar.gz
		% cd rudecgi-5.0.0
		% ./configure
		% make
		% sudo make install

*	Create a Spicery folder for ginger and any sister projects. e.g.
		% SPICERY_HOME=~/Spicery
		% mkdir $SPICERY_HOME
		% cd $SPICERY_HOME

*	Clone from the GitHub repository into a folder.
		% git clone https://github.com/Spicery/ginger.git

*	Then build and install
		% autoconf
		% ./configure
		% make
		% sudo make install

Installing from Source Using Vagrant
------------------------------------
If you have Vagrant available, then you can use the source-bootstrap.sh file to 
build Ginger from source. 

*	Create a Spicery folder for ginger and any sister projects. e.g.
		% SPICERY_HOME=~/Spicery
		% mkdir $SPICERY_HOME
		% cd $SPICERY_HOME

*	Clone from the GitHub repository into a folder.
		% git clone https://github.com/Spicery/ginger.git

*	Create a Vagrant folder for running Ginger. e.g. ginger-[BASEBOX]
	you will find minimal Vagrantfile's for baseboxes precise32 and
	precise64 in $SPICERY_HOME/ginger/vagrant. Here's the script for
	building against the precise32 base box.
		% cd $SPICERY_HOME/ginger/vagrant
		% mkdir ginger-precise32
		% cp Vagrantfile.precise32 ginger-precise32/Vagrantfile
		% cp source-bootstrap.sh ginger-precise32
		% cd ginger-precise32
		% vagrant up

Installing from Tarball Using Vagrant
-------------------------------------
For a quicker startup, you can use the Ginger tarball and the 
tarball-bootstrap.sh file.

*	Create a Spicery folder for ginger and any sister projects. e.g.
		% SPICERY_HOME=~/Spicery
		% mkdir $SPICERY_HOME
		% cd $SPICERY_HOME

*	Download the latest tarball. Install into the folder you intend to
	use for the virtual machine
	e.g. $SPICERY_HOME/ginger/vagrant/ginger-[BASEBOX]
	In this case we'll build for the precise32 basebox. For other baseboxes
	just change the name accordingly.
		% cd ginger/vagrant
		% mkdir ginger-precise32
		% cd ginger-precise32
		% wget <url of latest ginger tarball>

* 	Copy in the tarball-bootstrap.sh file and rename to bootstrap.sh. 
	Set up the Vagrantfile appropriate for the base box.
		% cp ../tarball-bootstrap.sh bootstrap.sh
		% cp ../Vagrantfile.precise32 Vagrantfile

* 	And vagrant up
		% vagrant up