ROS 打包失败, 报错: dpkg-shlibdeps: error: no dependency information found for 依赖名

参考资料

@Philtell ROS功能包打包生成deb安装包 遇到 dpkg-shlibdeps: error: no dependency information found for 问题

问题描述

在这个ros包中有一个依赖是Paho-mqtt-cpp, 这个包在github上是以源码形式存在的, 因此需要在客户端上进行手动编译与下载, 这就导致在进行打包时dh_shlibdeps无法自动找到他相关的依赖, 因此无法完成deb包的生成, 即使是按照 Paho-mqtt-cpp官方的指南, 将paho-mqtt-cpp打包成paho-mqtt-cpp.deb再进行安装也是无法完成依赖的自动添加, 因此无法完成deb包的生成

解决

按照@Philtell的指南ROS功能包打包生成deb安装包 遇到 dpkg-shlibdeps: error: no dependency information found for 问题, 在打包时, 手动添加参数, 跳过该包的依赖就可以解决问题, 成功打包

注:

​ 打包成功后, paho-mqtt-cpp是无法被正确安装的, 因此在需要安装ROS包的机器上需要首先下载与安装paho-mqtt-cpp, 否则即使安装了这个包, 在执行时也会出现问题

过程

cd 包名 #这里要与package.xml同级
bloom-generate rosdebian
sudo vim debian/rules

这是生成的 debian/rules 绝对路径为 包名/debian/rules

# 自动生成的override_dh_shlibdeps, 这个会自动处理相关包的依赖, 就会导致无法找到paho-mqtt-cpp
override_dh_shlibdeps:
	# In case we're installing to a non-standard location, look for a setup.sh
	# in the install tree that was dropped by catkin, and source it.  It will
	# set things like CMAKE_PREFIX_PATH, PKG_CONFIG_PATH, and PYTHONPATH.
	if [ -f "/opt/ros/noetic/setup.sh" ]; then . "/opt/ros/noetic/setup.sh"; fi && \
	dh_shlibdeps -l$(CURDIR)/debian/ros-noetic-mqtt-driver//opt/ros/noetic/lib/

这个是修改后的

# 修改后的override_dh_shlibdeps, 这个会自动忽略缺少的包
override_dh_shlibdeps:
	# 使用自定义参数运行 dh_shlibdeps
	dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l$(CURDIR)/debian/ros-noetic-mqtt-driver//opt/ros/noetic/lib/

参数分析

-l$(CURDIR)/debian/包名(可以在debian/找到一个ros-版本开头的包名)//opt/ros/(ros版本号)/lib/

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Smile Hun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值