Ubuntu install of ROS Indigo

We are building Debian packages for several Ubuntu platforms, listed below. These packages are more efficient than source-based builds and are our preferred installation method for Ubuntu.

If you need to install from source (not recommended), please see source (download-and-compile) installation instructions.

If you rely on these packages, please support OSRF.

These packages are built and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downloaded package for just two months, we could cover our annual costs to manage, update, and host all of our online services. Please consider donating to OSRF today.


ROS Indigo ONLY supports Saucy (13.10) and Trusty (14.04) for debian packages.

Configure your Ubuntu repositories

Configure your Ubuntu repositories to allow "restricted," "universe," and "multiverse." You can follow the Ubuntu guide for instructions on doing this.

Setup your sources.list

Setup your computer to accept software from packages.ros.org.

  • sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'


Source Debs are also available

Set up your keys

  • sudo apt install curl # if you haven't already installed curl
    curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -


First, make sure your Debian package index is up-to-date:

  • sudo apt-get update && sudo apt-get install dpkg
    • If you are using Ubuntu Trusty 14.04.2 and experience dependency issues during the ROS installation, you may have to install some additional system dependencies.

      • /!\ Do not install these packages if you are using 14.04, it will destroy your X server:

        sudo apt-get install xserver-xorg-dev-lts-trusty mesa-common-dev-lts-trusty libxatracker-dev-lts-trusty libopenvg1-mesa-dev-lts-trusty libgles2-mesa-dev-lts-trusty libgles1-mesa-dev-lts-trusty libgl1-mesa-dev-lts-trusty libgbm-dev-lts-trusty libegl1-mesa-dev-lts-trusty

        /!\ Do not install the above packages if you are using 14.04, it will destroy your X server

      Alternatively, try installing just this to fix dependency issues:

      • sudo apt-get install libgl1-mesa-dev-lts-trusty

    For more information on this issue see this answers.ros.org thread or this launchpad issue

There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.

  • Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators and 2D/3D perception

    Indigo uses Gazebo 2 which is the default version of Gazebo on Trusty and is recommended. If you would like to instead use a newer version of Gazebo (5, 6 or 7), refer to these instructions on the Gazebo site. Note that installing a newer version of Gazebo will require you to build dependent packages (such as turtlebot_gazebo) to be built from source. See also Using a specific Gazebo version with ROS.

    • sudo apt-get install ros-indigo-desktop-full

      or click here

    Desktop Install: ROS, rqt, rviz, and robot-generic libraries

    • sudo apt-get install ros-indigo-desktop

      or click here

    ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.

    • sudo apt-get install ros-indigo-ros-base

      or click here

    Individual Package: You can also install a specific ROS package (replace underscores with dashes of the package name):

    • sudo apt-get install ros-indigo-PACKAGE
      sudo apt-get install ros-indigo-slam-gmapping

To find available packages, use:

apt-cache search ros-indigo

Initialize rosdep

Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.

sudo rosdep init
rosdep update

Environment setup

It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched:

echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
source ~/.bashrc

If you have more than one ROS distribution installed, ~/.bashrc must only source the setup.bash for the version you are currently using.

If you just want to change the environment of your current shell, you can type:

source /opt/ros/indigo/setup.bash

If you use zsh instead of bash you need to run the following commands to set up your shell:

echo "source /opt/ros/indigo/setup.zsh" >> ~/.zshrc
source ~/.zshrc

Getting rosinstall

rosinstall is a frequently used command-line tool in ROS that is distributed separately. It enables you to easily download many source trees for ROS packages with one command.

To install this tool on Ubuntu, run:

sudo apt-get install python-rosinstall

Build farm status

The packages that you installed were built by ROS build farm. You can check the status of individual packages here.


Now, to test your installation, please proceed to the ROS Tutorials.


Wiki: indigo/Installation/Ubuntu (last edited 2019-07-25 01:36:28 by TullyFoote)