ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How do I build .deb for a ROS package?

asked 2014-05-09 09:15:40 -0500

SR gravatar image

updated 2014-05-09 09:39:59 -0500

As ROS calls its software modules "packages" this might be a bit confusing: This question is not about compiling a ROS package but rather building the .deb archive (also called "package" in ubuntu/debian terminology).

We have found a bug in a ROS package and found a solution. Thus, we built the ROS package/stack via catkin and now need to deploy it. As the CMakeLists.txt of this particular ROS package (i.e., rqt) and even the entire stack does not contain CPack instructions there seems no simple way to get a ".deb" out of it.

What is the simplest way to get a ".deb" file for a ROS package that should utlimately replace the original ROS package? Or is there an alternative yet easy way to deploy our fix? (Note that our fix is not an official fix, thus official build farms are not an option.)

I should add that preferably I do not want to change the CMakeLists.txt of this ROS package.

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2014-05-09 09:27:44 -0500

ahendrix gravatar image

You should really try to get your fix accepted into the upstream repository, and released through the official build farm.

It's possible to build debs by setting up a release repository using bloom and then manually invoking the deb build process, but if you install those debs, there's no guarantee that they'll persist across upgrades. For example, if the upstream rqt releases a new version with a higher version number than the deb you build, it will automatically replace your custom deb when someone runs 'apt-get upgrade'

The other alternative is not to try to build debs at all; just add your custom rqt package to your catkin workspace, and it will always override the system version.

edit flag offensive delete link more


Thanks for your answer. I already added an issue to their bug tracker. And we would very much like to use the official releases. Meanwhile we need a fix that can be easily deployed. Deploying a catkin workspace seems not that straightforward.

SR gravatar image SR  ( 2014-05-09 09:41:27 -0500 )edit

Second, the package I need to fix is rqt. If you overlay the catkin workspace for this particular package it will still fail as the "rqt" python script calls more or less (freely translated) "rospack find rqt_gui_core", which is a different package. Afterwards the non-overlayed path is used.

SR gravatar image SR  ( 2014-05-09 09:43:36 -0500 )edit

Finally, we cannot simply use older versions as these are not in the ROS repository anymore.

SR gravatar image SR  ( 2014-05-09 09:44:02 -0500 )edit

answered 2014-05-11 19:49:02 -0500

tfoote gravatar image

To bulid your own debian packages is possible, but will take some learning.

There are some simple tutorials but they won't catch all the corner cases.

The debian guide is here

A quicker solution is probably to use a tool like checkinstall

edit flag offensive delete link more


checkinstall is indeed a good "solution" for such cases.

SR gravatar image SR  ( 2014-12-02 17:06:47 -0500 )edit

Question Tools

1 follower


Asked: 2014-05-09 09:15:40 -0500

Seen: 1,424 times

Last updated: May 11 '14