Ask Your Question

Revision history [back]

Short answer

You don't need to use rosdep, but it simplifies and speeds things up a lot.

Long answer

First of, I'll quote the rosdep docs:

rosdep is a command-line tool for installing system dependencies. For end-users, rosdep helps you install system dependencies for software that you are building from source. For developers, rosdep simplifies the problem of installing system dependencies on different platforms. Instead of having to figure out which debian package on Ubuntu Oneiric contains Boost, you can just specify a dependency on 'boost'. rosdep is supported on a variety of platforms/package managers:

  • Ubuntu (apt)
  • Debian (apt)
  • OS X (Homebrew)
  • Red Hat Enterprise Linux (rpm/experimental)
  • Arch (pacman/experimental)
  • Gentoo (equery/experimental)
  • Slackware (sbotools/experimental)
  • Cygwin (experimental)

Basically, rosdep is a utility to easily install dependencies that are released as (Debian, for Ubuntu/Debian) packages (or sometimes as python packages via pip) when building something from source.

You don't need to use rosdep, it just makes life easier when installing something from source and it is cross-platform. So, if you are developing cross-platform, you can stick to one workflow.

On ubuntu, rosdep is in the end just calling apt (or in a few occasions pip) to install the realeased packages you need.

You could do this manually, but would have to check the docs of the packages you want to compile, or the package.xml.

So what to use when? (my personal stance, others might differ, and not in any specific order)

  • Basic Installation (i.e. new ROS): apt
  • You know exactly what you need (you develop a new package and add a dep you don't have installed yet): apt
  • The dep I need is not in apt: pip
  • I cloned some repos and want everything I need to compile (new set of packages, new computer, ...): rosdep