如何安装libgeographiclib-dev?安装替代包后rosdep仍报错求助
解决rosdep安装时libgeographiclib-dev相关报错的办法
核心问题
rosdep的依赖映射仍指向已废弃的libgeographiclib-dev包,即便安装了替代包libgeographic-dev并使用--skip-keys参数,仍会因为规则冲突报错。以下是具体解决步骤:
1. 创建自定义rosdep规则覆盖包映射
rosdep允许通过自定义规则文件替换默认的包名映射,操作如下:
- 创建自定义规则目录(若不存在):
sudo mkdir -p /etc/ros/rosdep/custom_rules - 新建规则文件并编辑:
sudo nano /etc/ros/rosdep/custom_rules/geographic_dev.yaml - 在文件中添加对应Ubuntu版本的映射规则(根据你的ROS发行版对应版本填写,比如Noetic对应Focal,Humble对应Jammy):
libgeographiclib-dev: ubuntu: focal: [libgeographic-dev] jammy: [libgeographic-dev] kinetic: [libgeographic-dev] # 按需添加其他你使用的Ubuntu版本 - 保存并退出编辑器(按
Ctrl+O,回车,再按Ctrl+X)。
2. 更新rosdep缓存
让rosdep加载新的规则:
rosdep update
3. 重新执行rosdep安装命令
现在无需跳过该包,直接执行原命令即可:
rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO
如果仍有异常,先确保替代包已安装,再强制跳过:
sudo apt-get install -y libgeographic-dev rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO --skip-keys "libgeographiclib-dev"
(注意给--skip-keys的参数加引号,避免shell解析问题)
4. 重置rosdep缓存(可选)
如果上述步骤无效,删除本地缓存后重新更新:
rm -rf ~/.ros/rosdep/sources.cache/ rosdep update
内容的提问来源于stack exchange,提问作者user24884908
相关产品推荐
相关产品推荐

