Installing on Debian from SVN
Install from SVN requires that you download and compile the source code on your own. The main supported version of Debian is "Squeeze", but it is possible that other one are working. If you plan to use a newer version like "Wheezy" or "Sid", please see the bottom paragraph.
Contents
Installation
Setup
sudo apt-get install build-essential python-yaml cmake subversion wget python-setuptools mercurial git-core python-pip sudo pip install -U pip sudo pip install -U rospkg
Depending on the configuration you choosed, it is possible that you need to add "contrib" to your /etc/apt/sources.list for some packages. Especially for nvidia-cg-toolkit. Don't forget to do an "apt-get update" after this change to search for the new packages !
Locales
Currently, there is a known issue with locales on Electric : https://code.ros.org/trac/ros/ticket/3305
A workaround is possible if you do not have US locales :
LANG=en_US.utf-8
It will provoke svn warnings during checkout that you may ignore. Here is an example :
svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct svn: warning: cannot set LC_CTYPE locale svn: warning: environment variable LANG is en_US.utf-8 svn: warning: please check that your locale name is correct
rosinstall
The following lines will download the ROS source code using the rosinstall tool, and bootstrap the installation. The installation downloads all ROS stacks in subdirectories inside the ~/ros directory, one subdirectory for each stack in the rosinstall file.
First install rosinstall using pip (advanced options for pip):
sudo pip install -U rosinstall vcstools
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop&overlay=no"
ROS-Full: ROS package, build, communication, and graphical tools.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=ros-full&overlay=no"
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=ros-base&overlay=no"
NOTE: the instructions above download all stacks inside the ~/ros folder. If you prefer a different location, simply change the ~/ros in the commands above.
Please reference REP 113 for description of other available configurations.
Environment Setup
You'll now need to update your environment. You can do this by typing:
source ~/ros/setup.bash
It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched, which you can do with the command below:
echo "source ~/ros/setup.bash" >> ~/.bashrc . ~/.bashrc
For Zsh users, change the last line of ~/ros/setup.zsh to
source $ROS_ROOT/tools/rosbash/roszsh
before running source ~/ros/setup.zsh Similarly, have the setup script called at the start of each new shell session with
echo "source ~/ros/setup.zsh" >> ~/.zshrc . ~/.zshrc
Managing failed rosdeps
Since Debian is not officially supported it often happens that rosdep packages are not up to date. In general copy/pasting the ubuntu packages is correct (please submit patches to ROS stacks owner so they can update their code).
In some rare case it is not so simple. Here is a list of some customization you have to do to make it working :
Opencv
The opencv-2.3 package is not available on squeeze. The quicker solution is to get libcv-dev. The best solution would be to add a source tarball install in the rosdep.yaml...
=== Yaml-dev ===
Justadd to simulator_gazebo/rosdep.yaml :
- debian: libyaml-dev
Installation on newer versions
If you are using a "Wheezy" or "Sid" version you may have to overwrite the rosinstall OS version detection, with luck it will work as in "Squeeze". Please add this to your environment variables before installing :
export ROS_OS_OVERRIDE=debian:squeeze
If this is not enough, you will have to customize your rosdep.yaml files. Please read http://www.ros.org/wiki/rosdep/rosdep.yaml#Overriding_Mapping_File
Compilation failure
Since "Wheezy" and "Sid" include packages for gcc-4.6 and g++-4.6, you may find that your compilation fails if you have these versions of the compilers installed. To remedy this and successfully compile, you can add these environment variables to your session (or shell defaults, such as in ~/.bashrc).
export CC=gcc-4.5 export CXX=g++-4.5