关于rosdep init 失败问题的研究

关于这个问题知乎上有一篇非常深入的帖子。

 

解决方法1:

0. 研究背景

之前博主是在Debian 10.3系统上安装,我是在ubuntu18.4 的版本上安装:

http://wiki.ros.org/cn/melodic/Installation/Ubuntu

进行到1.5步,初始化 rosdep时出现以下问题。

 

根据官方指引,在进行到“1.2 初始化rosdep“时,执行rosdep init时会提示Website may be down的错误。

报错部分代码在/usr/lib/python2.7/dist-packages/rosdep2/main.py中,原因是download_default_sources_list()无法访问http://raw.githubusercontent.com网站。

rosedep update时也要联网,默认的网站还是raw.githubusercontent.com,所以也会报错。

1. 国内研究现状

国内某知名搜索引擎排行前列的几种解决方案(已排除广告):

解决思路是从网络层面入手,用科学(科学上网)或玄学(手机热点)的方式,如 果出现认证错误的问题,再通过安装依赖包修改rosdep源码的方式解决。

2. 研究思路

raw.githubusercontent.com实际上就是github的用户数据服务器,rosdep程序下载的就是github.com/ros/rosdistro这个repo里的yaml文件

虽然raw.githubusercontent.com服务器无法访问,但是yaml文件可以直接从git clone的repo中获得。

所以,只要将ros/rosdistro整个git下来,然后再将

  • 20-default.list
  • /usr/lib/python2.7/dist-packages/rosdep2/main.py
  • /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
  • /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

中的默认url全部指向本地的git,即可解决这个问题。

3. 解决步骤

  1. git clone https://github.com/ros/rosdistro.git
  2. 在本地rosdistro中搜索20-default.list,将其url指向本地repo;
  3. 搜索rosdep2rosdistro中出现http://raw.githubusercontent.com的位置,将其指向本地repo。

效果如图所示:

 

解决方法2,该方法可以绕过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.

报错原因是GitHub的raw.githubusercontent.com无法连接

需要解决GitHub的raw.githubusercontent.com无法连接问题

通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址

修改hosts Ubuntu,

sudo vi /etc/hosts

添加以下内容保存即可

199.232.28.133 raw.githubusercontent.com

转(http://qjzd.net:3000/topic/5e48cc33dcf06d6a181ffb81)

然后输入sudo rosdep init就可以了

 

其次:

问题

在安装ROS过程中初始化rosdep:

 

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.

意思是初始化时不能访问这个网址,我在浏览器中访问了这个网址,时而能时而不能,但最终只要将20-default.list中的内容获取到并放到相应 的位置,经能够绕开rosdep init这个步骤。

 

解决步骤

首先创建路径,并定位到该目录:

sudo mkdir -p /etc/ros/rosdep/sources.list.d

cd /etc/ros/rosdep/sources.list.d

 

创建文件——20-default.list:

sudo gedit 20-default.list

 

将https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list中的内容复制粘贴到20-default.list中:

# os-specific listings first

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

 

# generic

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml

yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml

gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte

 

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

 

保存,关闭文件。

 

直接更新:

rosdep update

1

若不成功,一定要连手机热点,还不成功多试几次。

————————————————

版权声明:本文为CSDN博主「羽逸非凡」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_40780035/article/details/102993364

 

推荐方法:解决方法1.

 

执行ros update 结果如下,好像成功了:

 

解决问题的博客:

https://zhuanlan.zhihu.com/p/107218921

https://blog.csdn.net/nanianwochengshui/article/details/105702188

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值