rosdep update失败的解决方法

rosdep

不管是安装哪个版本的ros,最后执行的两步都是:

sudo rosdep init
rosdep update

不过,大概率会出现下面的错误:
ERROR: cannot download default sources list from:
https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
Website may be down.

上面的错误意味着rosdep配置失败。

事实上,在实际使用过程中,即使不执行上面的两步也并不会影响ros开发环境的使用,但如果执着于搭建完整的ros开发环境的话,可以使用后面的方法来解决rosdep错误。

那么这个rosdep有什么用呢?

其实,rosdep是一个用于安装系统依赖项的命令行工具。比如我们创建了一个工作空间,然后创建了ros包,该ros包需要依赖串口包、地图包等等,那么可以手动依次下载依赖包,也可以使用下面的rosdep命令自动下载相关依赖:

rosdep install --from-paths src --ignore-src -r -y

方法一

翻墙。

最简单粗暴的方式。

rosdep配置失败的原因就是境外资源被屏蔽,无法访问,如果具备翻墙条件的话,此问题应可顺利解决。

方法二

修改host文件,添加域名与ip的映射。

  1. 找一个IP地址查询工具,然后输入raw.githubusercontent.com,查询其对应的真实ip地址,这里可以查询
    在这里插入图片描述
  2. 修改host文件,添加映射

sudo gedit /etc/hosts

在这里插入图片描述

  1. 修改完host文件后,重新执行rosdep初始化和update,如果过程中还是遇到错误,多执行几次或者更换网络再执行,此问题应可解决

方法三(推荐)

手动下载、配置,100%成功。

下面步骤中的rosdistro文件是从github中下载,如果github访问也有问题的话,可以自行搜索rosdistro并下载,gitee上也有资源可以下载。

  1. 从github上下载rosdistro文件夹到本地,记好下载到的目录,下面需要用到

git clone https://github.com/ros/rosdistro

  1. 修改20-default.list文件,/home/xxx对应上面rosdistro下载到的目录,后面的步骤指的均是此目录

sudo gedit /home/xxx/rosdistro/rosdep/sources.list.d/20-default.list

将文件中的网址https://raw.githubusercontent.com/ros/rosdistro/master修改为下载目录file:///home/xxx/rosdistro

  • 修改前:
    在这里插入图片描述
  • 修改后:
    在这里插入图片描述
  1. 修改sources_list.py文件
    注意:当前配置的ubuntu系统为20.04,ros版本noetic,所以下面的目录中包含python3这个目录,如果是其他版本的ros,这个目录可能是python2.7或者其他,意思是sources_list.py文件所在的路径可能与下面的路径并不完全一致。

sudo gedit /usr/lib/python3/dist-packages/rosdep2/sources_list.py

修改第72行

#DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
  1. 修改_init_.py文件

sudo gedit /usr/lib/python3/dist-packages/rosdep2/rep3.py

修改第39行

#REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
  1. 修改__init__.py文件

sudo gedit /usr/lib/python3/dist-packages/rosdistro/__init__.py

修改第68行

#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
  1. 执行rosdep update

sudo rosdep init
rosdep update

☝ ★★★ — 返回 《ROS机器人开发笔记汇总》总目录 — ★★★ ☝

  • 39
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

画茧自缚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值