ros1 构建 Debian 包
ros1 构建 Debian 包
打包 ros 功能包有两种方式, 一种是采用 python3-bloom, 一种是自己实现打包脚本, 各有优劣,一般来说采用 python3-bloom 实现起来比较简单, 但是自己实现打包脚本比较灵活,下面主要以 python3-bloom 的方式来讲解整个打包流程, 后续有时间再补充自己实现自己打包脚本的方式。
准备工作
1、安装必要工具
1
sudo apt-get install python3-bloom fakeroot debhelper dh-python
2、确保 ROS 包已正确配置
- 确保
ROS
包包含完整的CMakeLists.txt
和package.xml
。 package.xml
中需填写正确的依赖项、版本、作者等信息。
使用 Bloom 生成 Debian 规则
Bloom 是 ROS 的官方打包工具,能自动生成 Debian 打包所需的配置。 在 ROS 包的根目录下运行:
1
2
cd catkin_ws/src/my_packge
bloom-generate rosdebian --os-name ubuntu --os-version focal --ros-distro noetic
自定义 Debian 配置(可选)
根据需要修改 debian
目录下的文件:
debian/control
: 调整依赖项、软件包描述等。debian/changelog
: 更新版本号和变更日志。debian/rules
: 自定义编译和安装步骤(通常无需修改)。
构建 Debian 包
使用 dpkg-buildpackage 构建
1
fakeroot dpkg-buildpackage -b -uc -us
生成的 .deb 文件位置
- 构建完成后,上级目录会生成 .deb 文件(如 ros-noetic-my-packge_1.0.0-0focal_amd64.deb)。
安装和测试
安装 Debian 包
1
sudo dpkg -i ros-noetic-my-packge_1.0.0-0focal_amd64.deb
解决依赖问题(如有)
1
sudo apt-get install -f
高级选项
使用私有 PPA 分发
常见问题
依赖项缺失
- 确保 package.xml 和 debian/control 中列出的依赖项与目标系统一致。
安装路径错误
- 检查 CMakeLists.txt 中的 install() 指令,确保文件被安装到 /opt/ros/noetic。
版本冲突
- 更新 package.xml 中的
字段,并在 debian/changelog 中同步版本号。
本文由作者按照 CC BY 4.0 进行授权