ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
![]() | 1 | initial version |
It seems to imply I'd document using the
<build_depend>
tags in mypackage.xml
, but it's unclear what name I'm supposed to use in these tags. The example names shown don't correspond to any explicit package on Ubuntu.
(I can't find it right now, but I'm actually pretty sure there is a document/tutorial explaining this. I'll add a link if I come across it.)
Basically, to be able to encode system dependencies in your package.xml
, the (debian) packages you want to depend on must be known to a tool called rosdep
via its rule database. For packages that aren't yet part of it, you'd need to contribute some rules. That would come down to picking a name for the key, and providing the mappings to the actualy packages on a nr of Linux distributions.
For why we use rosdep
in ROS, and not plain Ubuntu/Fedora/X package names, see Why rosdep instead of others?.
One potential problem here is that (as far as I know), rosdep
cannot install pip
dependencies for you. Your libzbar-dev
is fine, but libzbar-cffi
is problematic. Searching a bit shows that Ubuntu has packaged python-zbar
as a debian (here). If that is recent enough, you could add rules for that and list it in your manifest.
Note that the rosdep
database already contains a mapping for libzbar-dev
: here.
How do I structure my package so installing it via catkin_make does this automatically?
Note that installing system dependencies is not catkin
's job, that would be rosdep
.
![]() | 2 | No.2 Revision |
It seems to imply I'd document using the
<build_depend>
tags in mypackage.xml
, but it's unclear what name I'm supposed to use in these tags. The example names shown don't correspond to any explicit package on Ubuntu.
(I can't find it right now, but I'm actually pretty sure there is a document/tutorial explaining this. I'll add a link if I come across it.)
Basically, to be able to encode system dependencies in your package.xml
, the (debian) packages you want to depend on must be known to a tool called rosdep
via its rule database. For packages that aren't yet part of it, you'd need to contribute some rules. That would come down to picking a name for the key, and providing the mappings to the actualy packages on a nr of Linux distributions.
One potential problem here is that (as far as I know), rosdep
cannot install pip
dependencies for you. Your libzbar-dev
is fine, but libzbar-cffi
is problematic. Searching a bit shows that Ubuntu has packaged python-zbar
as a debian (here). If that is recent enough, you could add rules for that and list it in your manifest.
Note that the rosdep
database already contains a mapping for libzbar-dev
: here.
How do I structure my package so installing it via catkin_make does this automatically?
Note that installing system dependencies is not catkin
's job, that would be rosdep
.
For why we use rosdep
in ROS, and not plain Ubuntu/Fedora/X package names, see Why rosdep instead of others?.
One potential problem here is that (as far as I know), rosdep
cannot install pip
dependencies for you. Your libzbar-dev
is fine, but libzbar-cffi
is problematic. Searching a bit shows that Ubuntu has packaged python-zbar
as a debian (here). If that is recent enough, you could add rules for that and list it in your manifest.
Note that the rosdep
database already contains a mapping for libzbar-dev
: here.
How do I structure my package so installing it via catkin_make does this automatically?
Note that installing system dependencies is not catkin
's job, that would be rosdep
.