[Documentation] [TitleIndex] [WordIndex

ros: mk | rosbash | rosboost_cfg | rosbuild | rosclean | roscreate | rosdep | rosemacs | roslang | roslib | rosmake | rospack | rosunit

Package Summary

rosdep attempts to help you manage the external dependencies of ROS. Because the ROS codebase is so wide-ranging, these dependencies can be hard to map onto your system. For example, what packages do you need in order to get the OpenGL headers on Ubuntu? (answer: libgl1-mesa-dev and libglu1-mesa-dev). These package names can sometimes be unfriendly, and, much more seriously, they usually vary slightly from one operating system or Linux distribution to another (e.g., Debian/Ubuntu versus Fedora), and can even vary between different versions of the same distribution. Enter rosdep. The commandline API has been reviewed and will remain stable. The internal code API is subject to change in future releases. The yaml format is stable. There may be a few extensions to the syntax, but all changes will keep backwards compatability.

Using rosdep

Installing system dependencies

You can use rosdep and rosmake to build any package in the ROS repository. Say that you want to build a package called AMAZING_PACKAGE, that you hadn't built on your machine before.

rosdep install AMAZING_PACKAGE

What's happening under the hood

  1. rosdep uses rosmake to find all system dependencies recursively
  2. rosdep looks up how to resolve the system dependencies for the OS running using the rosdep.yaml files.

  3. rosdep tries to detect what is installed on your system already
  4. rosdep generates a bash script to install all missing system dependencies
  5. rosdep executes the bash script

To view the bash script instead of executing it run

rosdep satisfy AMAZING_PACKAGE

Operating System Support

Currently Supported OSs

rosdep currently supports the following OSs, however even if the distro is listed here the individual records may not be complete. If you need a record filled out please use the link above:

Primary development environment

Partially tested

Adding support for another Operating System to rosdep

If your OS is listed above, then you may need to just add in support for a different version (e.g. if Ubuntu has released a newer distribution). Please see this tutorial for instructions on how to update the dependencies in the rosdep.yaml Files.

If your OS is not listed above, you will probably need to add support to rosdep for your OS. For information on how to do this, see this tutorial.


  1. How to add a system dependency to a package.

    This shows how to add a system dependency to a package.

  2. How to add an OS tag for a rosdep.yaml entry

    This will walk you through adding an entry for rosdep.yaml for a new OS

  3. How to add support for an OS into rosdep

    This will walk you through what is needed to do to add detection support for a new OS to rosdep.

  4. Add support for a new system dependency

    This will show you how to add support for a new system dependency.


The data that rosdep uses is captured in the rosdep.yaml files located within each ROS stack. Please see the rosdep.yaml documentation for details on this format.

Bugs/Feature Requests

Use trac to report bugs or request features. [View active tickets]

2011-11-19 12:33