带自执行安装脚本的ROS包的生成
在打包和安装ROS包时, 会有一些固定的配置需要去人为实现, 比如网络配置, 设备树的管理等, 比较麻烦, 不如一次性解决掉, 所以查了相关文档
过程:
# 使用`bloom-generate rosdebian`生成debian文件夹
bloom-generate rosdebian
# 进入debian文件夹配置要执行的脚本
cd debian
# 编写安装脚本, 注postinst这个名字不可修改
vim postinst # 将下面的脚本写进来
fakeroot debian/rules binary # 打包
测试脚本
#!/bin/bash
echo "开始执行安装脚本..."
# 将udev文件夹下的myrobot.rules文件移动到/etc/udev/rules.d
echo "正在将udev规则文件移动到/etc/udev/rules.d目录下..."
RULES_FILE="/opt/ros/noetic/share/bring_up/udev/myrobot.rules"
TARGET_DIR="/etc/udev/rules.d"
# 检查文件是否存在
if [ -f "$RULES_FILE" ]; then
mv "$RULES_FILE" "$TARGET_DIR"
echo "已完成移动myrobot.rules文件。"
else
echo "未找到myrobot.rules文件,跳过该步骤。"
fi
# 重新加载rules
echo "正在重新加载udev规则..."
udevadm control --reload-rules && udevadm trigger
echo "udev规则已重新加载。"
echo "完成配置。"
exit 0
执行结果
sudo dpkg -i ros-noetic-bring-up_0.0.0-0focal_amd64.deb
结果如下: