Ask Your Question

Create a Deb file from two Ros Packages

asked 2018-05-02 09:59:47 -0500

billyDong gravatar image

Hello, I would like to create a DEB file for the packages A and B. Let's consider that everything it's perfect and I dont have any dependencies troubles. I can create a deb for A and a deb for B.

It's possible to create a deb file from a ros package using bloom-generate, but this tool only works with one package at a time.

Is it possible to create a deb file for package A and B? Do I need to create a MetaPackage with these two packages?

edit retag flag offensive close merge delete


Is your goal to build one deb containing two ROS packages or build both packages with one command?

nuclearsandwich gravatar image nuclearsandwich  ( 2018-05-02 17:10:43 -0500 )edit

@nuclearsandwich My goal is to have an installation file that install two packages. Can I do that? Do I have to create a metapackage with these two packages? The simpler the best, if I could build two (or more) packages with one command that would be perfect..

billyDong gravatar image billyDong  ( 2018-05-03 04:25:20 -0500 )edit

3 Answers

Sort by ยป oldest newest most voted

answered 2018-05-25 14:18:45 -0500

nuclearsandwich gravatar image

updated 2018-05-25 14:28:16 -0500

gvdhoorn gravatar image

Metapackages don't contain any significant contents on their own, they pull in a set of desired packages as dependencies. So in order to easily use metapackages your package A and B debs need to be available in a repository somewhere.

A non-ROS specific way to construct metapackages is described in It assumes that your package A and B are installable from a repository.

To my knowledge there are not tools in the ROS ecosystem for constructing a single debian binary package from multiple existing binaries.

edit flag offensive delete link more


To my knowledge there are not tools in the ROS ecosystem for constructing a single debian binary package from multiple existing binaries.

Running catkin_make install (or equivalent catkin_tools) using checkinstall?

gvdhoorn gravatar image gvdhoorn  ( 2018-05-25 14:29:17 -0500 )edit

@gvdhoorn how would that work? I've tried before and it creates an install folder, but what can I do with it?

billyDong gravatar image billyDong  ( 2018-06-04 05:08:13 -0500 )edit

answered 2019-05-20 00:53:05 -0500

tfoote gravatar image

You can package up multiple packages using ROS bundling

edit flag offensive delete link more

answered 2019-05-17 08:07:38 -0500

tahsinkose gravatar image

updated 2019-05-17 08:26:18 -0500

You can use checkinstall. But it comes with a price. You can combine any number of packages in one Debian archive file. But install macro calls in CMakeLists.txt files must point to an absolute path. If you use catkin variables such as CATKIN_PACKAGE_INCLUDE_DESTINATION or CATKIN_PACKAGE_LIB_DESTINATION, it won't work. Instead, for instance, you should do:

 install(DIRECTORY include/${PROJECT_NAME}/
       DESTINATION /opt/ros/kinetic/include/

After that, executing catkin config --install && checkinstall catkin buildsuffices. When the command finishes, you will see an output of Debian package. When you extract its content with dpkg -x <package_name>, you can actually inspect which folders are archived.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools



Asked: 2018-05-02 09:59:47 -0500

Seen: 643 times

Last updated: May 20 '19