首页  > 教育解读  > 如何ros程序打包成二进制deb

如何ros程序打包成二进制deb

2025-05-03 14:54:06
张老师
张老师已认证

张老师为您分享以下优质知识

将ROS程序打包成二进制deb安装包可以通过以下步骤实现,综合多个权威方法整理如下:

一、准备工作

安装必要工具

- 安装`bloom`生成deb包:`sudo apt-get install python-bloom`

- 安装`fakeroot`权限管理工具:`sudo apt-get install fakeroot`

- 安装`rosdep`管理依赖(可选):`sudo apt-get install rosdep`

构建ROS工作区

- 确保功能包已编译:`catkin_make`或`catkin build`

- 编译完成后进入`devel`目录:`cd ~/catkin_workspace/devel`

二、打包步骤

配置CMakeLists.txt

- 在`CMakeLists.txt`中添加安装规则:

```cmake

install(TARGETS your_package_name

RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}

LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}

INCLUDE_DIRS ${CATKIN_PACKAGE_INCLUDE_DESTINATION}

)

```

- 包含脚本和头文件:

```cmake

install(DIRECTORY include/${PROJECT_NAME} DESTINATION ${CATKIN_GLOBAL_INCLUDE_DESTINATION})

install(DIRECTORY script DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})

```

生成debian包配置

- 运行`bloom-generate`生成debian目录:

```bash

bloom-generate rosdebian --os-name ubuntu --ros-distro kinetic

```

- 编辑生成的`debian/rules`文件,确保动态库依赖正确。若存在未通过包管理安装的库(如`libprotobuf.so.15`),需在`debian/control`中添加`Build-Depends`或使用`dh_shlibdeps`修复依赖:

```bash

dh_shlibdeps -- dpkg - shlibdeps - params="--"

```

打包生成deb文件

- 执行打包命令:

```bash

fakeroot debian/rules binary

```

- 生成的deb文件位于源包目录的`debian`上层。

三、注意事项

依赖管理:

确保所有依赖库通过包管理安装,或手动添加到`debian/control`中

动态库路径:若使用源码安装的库,需在`debian/rules`中添加`dh_shlibdeps`参数解决依赖问题

多版本兼容性:打包时指定与目标系统一致的ROS发行版(如`kinetic`、`noetic`等)

通过以上步骤,可将ROS功能包打包为独立的二进制deb安装包,便于分发和部署。