First of all, what is a system dependency?
Anything (ie: library or other installable artefact) not a ROS package.
What isn't a system dependency?
Anything that is a ROS package (ie: has a package manifest and a build script that uses Catkin).
Can rosdep
both be used to install system dependencies and package dependencies?
Yes. It does this by default.
With a workspace containing ROS packages and the following invocation:
rosdep install --ignore-packages-from-source --from-paths $CATKIN_WS/src
rosdep
will check for all package manifests what the build and run depends are, whether those are ROS packages or not, if they are, whether they are present in the workspace, and all dependencies that are left (both ROS pkgs and system dependencies) are then installed using the platform's package manager (see #q215059).
Edit:
I can install a ROS package only using rosdep
, right? Or can I also use another tool (e.g. apt
)?
I would say that the typical way to install ROS packages (on Ubuntu and Debian at least) would/should be using apt
(it is also used in the official installation tutorials). That is, if you know that the package is released for a specific ROS version and OS. Personally I only use rosdep
to install dependencies (whether system or regular ROS pkg) for packages in my catkin workspace. For packages that you install using apt
, using rosdep
makes no sense as apt
will already install all dependencies.
Originally posted by gvdhoorn with karma: 86574 on 2018-04-04
This answer was ACCEPTED on the original site
Post score: 1
Original comments
Comment by nbro on 2018-04-04:
I can install a ROS package only using rosdep
, right? Or can I also use another tool (e.g. apt
)?
Comment by nbro on 2018-04-04:
What do you mean by "regular ROS"?
Comment by gvdhoorn on 2018-04-05:
I left off a word: it should have read "regular ROS package".
Fixed.