gazebo / doc / install.html

@page install Installation (Linux)

Gazebo relies on a number of third-party libraries that make
installation a little bit tricky.  If things go wrong, please check
the archives of the Gazebo <a
list</a>.  Please read the instructions below @b carefully before
reporting posting to the mailing list.

<b> These are the Linux installation instructions, OS X users should
go install_osx "here". </b>

\section install_required Required 3rd Party Libraries

See \ref prerequisites

\section install_prepare Preparing your system

The default install path for many source packages (Gazebo included) is:

In some Linux distributions, however, these paths are not searched by
default, leading to problems when compiling and linking some packages.
We therefore recommend that you configure your system with some
additional paths (added to your .bashrc script, for example):

export PATH=/usr/local/bin:$PATH
export CPATH=/usr/local/include:$CPATH
export LIBRARY_PATH=/usr/local/lib:$LIBRARY_PATH

The first line sets the executable path; the second sets the path for
C and C++ header files; the third line sets the library search path.
You will also need to set two more paths:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH

This line sets the pkg-config path (a neat utility for mananging
source dependencies).

@section install_ Global Installation (requires root access)

$ tar xvzf gazebo-<version>.tar.gz
$ cd gazebo-<version>
$ scons
Note that scons will fail if any of the required packages are missing.
Once Gazebo has been built, it can be installed: 
$ su
$ scons install
$ exit

Gazebo is now ready to run; try:
$ gazebo /usr/local/share/gazebo/worlds/

@section install_local Local installation (does not require root access)

Some developers prefer to install Gazebo in our home directory (e.g.,
/home/[username]/local) rather than in a system directory.  This is
useful if you are working on shared machines and/or lack root access.
Naturally, local installs can make it a bit tricky for Gazebo (and
other packages) to find the right headers, libs and so on.  Here,
then, is the recommended way to do it:
- Pick a spot for "local" installs; for me it is
 "/home/[username]/local".  The install scripts will create relevant
 subdirs under this, such as:
- Set up the necessary compiler paths in your .bashrc (or whatever)
  script; e.g.:
export PATH=~/local/bin:$PATH
export CPATH=~/local/include:$CPATH
export LIBRARY_PATH=~/local/lib:$LIBRARY_PATH
The first line sets the executable path; the second sets the path for C
and C++ header files; the third line sets the library search path.
- Set up some additional paths in your .bashrc (or whatever):
export PKG_CONFIG_PATH=~/local/lib/pkgconfig:$PKG_CONFIG_PATH
This line sets the pkg-config path (for applications using
pkg-config, which will be everything in the Player/Stage/Gazebo
project pretty soon)

- Build and install Gazebo using the "prefix" argument:
$ scons prefix=/home/[username]/local install

Everything should now work seamlessly, and your locally installed
packages will be used in preference to any system-wide defaults.

\section config_file Configuration File

Gazebo needs some system information in order to load plugins, texture files, models, etc. This information is place in gazeborc file in the user's home directory. This file also will have other properties of this machine, work around for incomplete graphics drivers, etc. The file is called <tt>.gazeborc</tt> and typical contains:

<?xml version="1.0"?>

If this file does not exist, then the builder will automatically create the file with appropriate values. If the file does exist, the builder will not overwrite it.
RTTMode can have three values: "Copy", "PBuffer" and "FBO". "Copy" is the oldest and most basic method, "PBuffer" is newer and "FBO" is the lastest shiny new RTT method. The availability of those methods depends on the graphic card drivers. If the driver are old chances are that only "Copy" work with decent performance and without artifacts. If the driver support them, using the newest method will give better framerates. Gazebo uses PBuffer by default. 
With the current version of fglrx driver there is no performance difference between FBO and Copy modes and Copy has more functionalities.

\section uninstall Uninstall 

To uninstall Gazebo, all we have to do is clean the installation of our SVN copy. This is done with the -c switch.

$ su
$ scons -c install
$ exit

If you installed a local copy, simply: 

$ scons -c install