如何从 ROS 中的 catkin 工作区生成 .deb

How to generate .deb from catkin workspace in ROS

我可以在ROS的catkin工作区编译安装ROS包。如何将 catkin 工作区中的包导出为 .deb 文件,以便我可以在其他机器上安装和使用它?

我的 ROS 版本是 ROS Indigo,OS 版本是 Ubuntu 14.04

1 - 我认为 ROS build farm 是一个很好的起点和解决方案。您不能像您所说的那样创建 .deb,但是,您可以创建源代码封闭的 ROS 包

The ROS build farm is also designed to enable deploying a custom build farm. This can be useful to release closed-source packages, build for platforms and architectures not provided by the official ROS build farm, and/or customize any part of the process to specific needs.

到这里看看更好的overview

2 - 另一种方法是使用 CMake install。虽然这将需要您的两个平台之间具有相同的体系结构和 ROS Distro,并且两台机器的位置可以相同。

Define a CMAKE_INSTALL_PREFIX for some location like: /opt/your_ros_install.
Run sudo make install to allow installing there.
Copy the install directory from machine A to machine B, using scp or tar or some other technique.

至 运行 您在任一机器上安装的 ROS 包:source /opt/your_ros_install/setup.bash。

看看这个post:Generate .deb from ROS package
使用以下命令:

path-of-your-package$ bloom-generate rosdebian --os-name ubuntu --ros-distro kinetic

$fakeroot debian/rules binary

这是 step-by-step 使用 ROS bloom:

的指南
  1. 导航到您的包路径

    cd /path/to/package

  2. 使用ROS bloom创建.deb文件

    bloom-generate rosdebian --os-name ubuntu --ros-distro kinetic fakeroot debian/rules binary

* 如果您的 ROS 分布与 Kinetic 不同,请将 kinetic 替换为您的分布

  1. 将.deb文件复制到另一台机器,并在其文件夹类型

    sudo dpkg -i packagename.deb

    这将在该机器上安装包,您现在可以像使用任何其他 ROS 包一样使用它