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.
- Author: Tully Footeemail@example.com
- License: BSD
- Repository: ros
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
- rosdep uses rosmake to find all system dependencies recursively
rosdep looks up how to resolve the system dependencies for the OS running using the rosdep.yaml files.
- rosdep tries to detect what is installed on your system already
- rosdep generates a bash script to install all missing system dependencies
- 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
Ubuntu (all Canonical supported versions)
- OS X
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.
- How to add a system dependency to a package.
This shows how to add a system dependency to a package.
- 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
- 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.
- Add support for a new system dependency
This will show you how to add support for a new system dependency.