sudo rosdep init ERROR错误处理

ROS安装过程中很重要的一步是执行sudo rosdep init && rosdep update。

在国内网络环境下,执行时经常会出错,如下:

$ sudo rosdep init
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.

本文介绍一个简单有效的解决方法。网上有很多人提供的其他方法,这里试了都不管用。

本文提供的方法是从网络上规避境外网站,可靠实用。

1 原因分析

错误原因是下载20-default.list文件时无法访问http://raw.githubusercontent.com网站。
rosedep update时也要联网,默认的网站还是raw.githubusercontent.com,所以也会报错。
raw.githubusercontent.com实际上就是github的用户数据服务器,rosdep程序下载的就是github.com/ros/rosdistro这个repo里的yaml文件。

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

所以,只要将ros/rosdistro整个git下来,然后再将相应文件中的默认url http://raw.githubusercontent.com全部指向本地的git,即可解决这个问题

本文使用的时ubuntu16.04 ros kinetic 其他版本的ROS步骤是一样的。

2 解决步骤

2.1 从github下载rosdistro

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

假设存放的目录为/home/robin/rosdistro

2.2 修改系列文件中默认的URL

/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

/usr/lib/python2.7/dist-packages/rosdistro/__init__.py

/home/robin/rosdistro/rosdep/sources.list.d/20-default.list

1$ sudo vi /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

做下面的需改:

#DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'

DEFAULT_SOURCES_LIST_URL = 'file:///home/robin/rosdistro/rosdep/sources.list.d/20-default.list'

2sudo vi /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

做下面的需改:

#FUERTE_GBPDISTRO_URL = 'https://raw.githubusercontent.com/ros/rosdistro/' \

    'master/releases/fuerte.yaml'

FUERTE_GBPDISTRO_URL = 'file:///home/robin/rosdistro/releases/fuerte.yaml'

3sudo vi /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

做下面的需改:

#DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

DEFAULT_INDEX_URL = 'file:///home/robin/rosdistro/index-v4.yaml'

4)将/home/robin/rosdistro/rosdep/sources.list.d/20-default.list的内容替换如下:

# os-specific listings first
yaml file:///home/robin/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/robin/rosdistro/rosdep/base.yaml
yaml file:///home/robin/rosdistro/rosdep/python.yaml
yaml file:///home/robin/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/robin/rosdistro/releases/fuerte.yaml fuerte

2.3 重新执行

sudo rosdep init && rosdep update

即可成功。

Reference

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

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值