An Overlay-based
Virtual Network Substrate
SpoVNet

Changeset 9636


Ignore:
Timestamp:
Mar 9, 2011, 11:42:39 AM (8 years ago)
Author:
bless
Message:
  • filled the INSTALL file with meat
File:
1 edited

Legend:

Unmodified
Added
Removed
  • INSTALL

    r7758 r9636  
    1 see www.ariba-underlay.org
    2 see www.spovnet.de
     1Please see the latest Installation instructions on http://ariba-underlay.org/
     2here: http://ariba-underlay.org/trac/spovnet-base/wiki/BaseInstall
     3
     4Please see also http://spovnet.de/ for further information
     5about Ariba and its application.
     6
     7Prerequisites
     8=============
     9ariba depends on libraries that may not be installed on your system:
     10
     11    * Boost (version >=1.39)
     12    * Log4cxx (version >= 0.10.0)
     13    * GMP (no specific version)
     14
     15Furthermore, you need default development tools - that are most likely already installed on your system - such as
     16gcc/g++, autoconf, automake, aclocal, libtool, liblt-dev ...
     17
     18Quick Install (If all dependencies are satisfied)
     19=============
     20
     21ariba currently build on Linux systems. Our reference platform is
     22Ubuntu 8.04 with the g++ compiler version 4.1. Download the latest
     23ariba package from the the download site
     24http://ariba-underlay.org/downloads
     25
     26Extract the archive and change into the project directory:
     27
     28> tar xfz ./ariba-x.x.x.tar.gz
     29> cd ariba-x.x.x
     30
     31Now, configure, compile, and install ariba (if not all libraries
     32needed by Ariba are available on your system, read the section
     33'Prequisites').
     34
     35If no configure script is available (e.g. when you checked out an svn
     36version), run the ./bootstrap script first.:
     37
     38> ./configure
     39> make
     40> make install
     41
     42In case you don't want to install Ariba into your system but to a
     43local place, do:
     44
     45> mkdir build
     46> ./configure --prefix=$PWD/build
     47> make
     48> make install
     49
     50
     51Local install (Download library dependencies and install ariba in a
     52=============  local subdirectory)
     53
     54
     55If the required libraries are not available on your system or don't
     56want to install them to the system you can use the bootstrap_libs
     57script that comes with the ariba package. It will download all
     58dependencies, compile and install them locally, and compile and
     59install ariba:
     60
     61> tar xfz ./ariba-x.x.x.tar.gz
     62> cd ariba-x.x.x
     63> ./bootstrap_libs
     64
     65This script will automatically download all necessary libraries and
     66compile them inside a new ./libs subdirectory and install them into
     67./build. In the end the ariba library itself is compiled to
     68./build. You can safely delete the ./libs subdirectory after the
     69process.
     70
     71Here is the manual way to go: If you install Ariba locally and have
     72the required libraries also installed locally, you can use a
     73config.site script to make it easier. The config.site file must reside
     74in a folder called share. If your install path is /home/foo/local and
     75you do a ./configure --prefix=/home/foo/local, ariba headers will be
     76installed in /home/foo/local/include, and the ariba library in
     77/home/foo/local/lib. To use a config.site script, create a folder
     78/home/foo/local/share and create a file config.site. Such a file has
     79paths towards required header files and libraries.
     80
     81with_boost=/home/foo/Libraries/include
     82test -z "$CPPFLAGS" && CPPFLAGS='-I/home/foo/Libraries/include'
     83test -z "$LDFLAGS" && LDFLAGS='-L/home/foo/Libraries/lib'
     84
     85If you now do a ./configure --prefix=/home/foo/local, the config.site
     86will be found and the paths therein used for finding libraries. If you
     87e.g. have multiple libraries distributed in their own include folders,
     88you can also have multiple includes:
     89
     90test -z "$CPPFLAGS" && CPPFLAGS='-I/home/foo/Libraries/include -I/home/foo/otherlibrary/include'
     91
     92Running the PingPong Sample
     93===========================
     94The PingPong binary pingpong is installed in build/bin. It has one
     95parameter, a configuration file. You can find sample configuration
     96files in the etc/pingpongconfig folder. If no configuration file is
     97given, the node will randomly select its NodeID but will not find
     98other nodes. This is because bootstrap modules are selected in the
     99configuration file.
     100
     101> ./pingpong ../../etc/pingpong/settings_node1.cnf
     102
     103If this will fail to find the libariba you may have to set the LD_LIBRARY_PATH correctly in your current terminal, or better add it to your .bashrc
     104
     105> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/user/ariba/build/lib
     106
     107When running the pingpong application it will output a large number of
     108log messages and the initiator will wait for other nodes to join. You
     109can start them using the configuration files settings_node1.cnf and
     110settings_node2.cnf. You may need to adjust the configurations files:
     111currently both node1 and node2 try to join the initiator on the local
     112machine. This will only work if you start all instances on a local
     113machine.
     114
     115Once the PingPong sample is running and the nodes have connected, each
     116node will send out ping messages to every node he knows in the overlay
     117structure every 5 seconds. You can now e.g. test mobility of Ariba and
     118change the IP address of a node, or swith from LAN connection to
     119WLAN. The links established by the PingPong sample through Ariba are
     120mobility invariant and automatically repaired.  Selecting a compiler
     121
     122As the g++-4.3 compiler is very restrictive when compiling C++ and you
     123will have some trouble with Boost and Log4cxx, we suggest to use
     124e.g. g++-4.1. You then have to compile the libraries and Ariba with
     125this compiler. You can tell Log4cxx and Ariba to use a different
     126compiler using:
     127
     128./configure --prefix=... CXX=g++-4.1
     129
     130This will not work in Boost as the configure script is just a wrapper around the Boost Build.System bjam. You can edit the jamfile in the Boost root directory:
     131
     132using gcc : 4.1 ;
     133
     134and then build using bjam as described in http://www.boost.org/doc/libs/1_38_0/more/getting_started/unix-variants.html.
     135
     136Cross-Comiling for Maemo
     137========================
     138Ariba runs on Nokia Maemo 4 (tested) and probably Maemo 5. We have
     139tested Ariba on an N810 device. Cross-Compiling is done using
     140Scratchbox. Use the preassembled Scratchbox version provided by Nokia
     141which will install and configure the complete Scratchbox system
     142automatically.
     143
     144The Ariba configure will test for Maemo systems. Internally there are
     145a number of special cases where handling on Maemo is different from
     146normal Linux. If you require special handling, do the following in
     147your code:
     148
     149#include "ariba/config.h"
     150...
     151#ifdef HAVE_MAEMO
     152 // special Maemo handling
     153#endif
     154
     155Overview of special configure options
     156=====================================
     157There are several options to configure that are specific to Ariba:
     158
     159    * --enable-debug=yes - for building a debug build
     160    * --enable-profiling=yes - for profiling with gprof
     161    * --enable-logcolors=yes - for colorful logging output
     162    * --enable-doxygen=yes - for generating doxygen documentation (do a make html-local in ariba/docu/doxygen)
Note: See TracChangeset for help on using the changeset viewer.