Compiling Marionnet: HOWTO for the Fedora 11 distribution

Fedora 11 is a GNU/Linux distribution of the RedHat family, based on RPM packages, using the Gnome desktop by default.

Install some dependencies from Fedora packages using the graphic tool

From the System menu, run Administration|Software Update; you will be prompted for the root password. Install the proposed updates, if any. If the system asks you to logout or reboot the system after the update (for example when you update the kernel), do so.

Exit the Software Update tool, if needed.

Enter the graphic package tool in System|Administration|Add/Remove software. Then install the most recent version of the following packages (use the Find box, then mark the checkbox for each package you need; at the end push Apply and then confirm by pushing Install and entering the root password). The system will also automatically install the package dependencies.

  gcc gcc-c++ bzr xorg-x11-server-Xephyr libglade2-devel ncurses-devel
  uml_utilities bridge-utils graphviz make gettext-devel gnome-terminal xterm 
  autoconf automake libtool libtool-ltdl-devel subversion subversion-devel
  wget

It is possible that you already have some of them.

You can exit the package tool after the installation completes.

Manually install some other dependencies

Run the rest of the installation as the root user. Open a terminal and enter:

su

Enter the root password.

Now make a temporary directory:

mkdir ~/tmp || true

Install VDE from sources:

cd ~/tmp
svn co https://vde.svn.sourceforge.net/svnroot/vde/trunk/vde-2 vde_svn
cd vde_svn
mkdir m4 || true # This was needed the last time I tried
autoreconf -fi
./configure && make && make install

Fedora distributes some OCaml packages, but not everything we need. Rather than filling the holes, let's just ignore packages and compile everything OCaml-related from sources.

Download, compile and install OCaml:

cd ~/tmp
wget http://caml.inria.fr/pub/distrib/ocaml-3.11/ocaml-3.11.0.tar.bz2
tar xfvj ocaml-3.11.0.tar.bz2
cd ocaml-3.11.0
./configure && make world.opt && make install && make installopt
cd /usr/local/include
ln -s ~/tmp/ocaml-3.11.0/byterun caml

Download, compile and install lablgtk2:

cd ~/tmp
wget http://wwwfun.kurims.kyoto-u.ac.jp/soft/olabl/dist/lablgtk-2.12.0.tar.gz
tar xfvz lablgtk-2.12.0.tar.gz
cd lablgtk-2.12.0
./configure --with-threads=yes --with-glade && make && make opt && make install

Download, compile and install Marionnet

Download, compile and install the bleeding-edge version of ocamlbricks:

cd ~/tmp
bzr get --verbose lp:ocamlbricks/0.90.x ocamlbricks
cd ocamlbricks
make && make install

Download, compile and install the bleeding-edge version of marionnet:

cd ~/tmp
bzr get --verbose lp:marionnet/0.90.x marionnet
cd marionnet
make && make install

Download and install virtual machine (and router) filesystems; you will need some free disk space for this step:

cd /usr/local/share/marionnet/
wget http://www.marionnet.org/download/snapshots/stuff/filesystems-most-recent.tar.bz2
tar xfv filesystems-most-recent.tar.bz2
rm -f filesystems-most-recent.tar.bz2

Download and install UML kernels:

cd /usr/local/share/marionnet/
wget http://www.marionnet.org/download/snapshots/stuff/uml-kernel-binaries-most-recent.tar.bz2
tar xfv uml-kernel-binaries-most-recent.tar.bz2
rm -f uml-kernel-binaries-most-recent.tar.bz2

Post-installation setup

Marionnet will work after the steps above, but there are a couple of optional features which need some system configuration. We have a whole page about Marionnet post-installation setup.