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

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 错误:无法从https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list下载默认源列表,网站可能已关闭。 ### 回答2: sudo rosdep init命令是ROS(机器人操作系统)的一个重要功能之一,它用于初始化rosdep,以便后续的软件安装可以正常进行。 然而,如果在执行sudo rosdep init时出现错误,如“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无法从https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list下载默认源列表,可能是因为该网站无法访问。 因此,解决方法很简单,我们只需要排除网络连接不良的问题即可。 我们可以在终端中使用ping命令测试与该网站的连接,例如:ping raw.githubusercontent.com。 如果返回的结果表明连接正常,则可以尝试使用以下命令手动下载20-default.list文件: ``` sudo wget https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list -O /etc/ros/rosdep/sources.list.d/20-default.list ``` 这个命令会将20-default.list文件下载到/etc/ros/rosdep/sources.list.d/目录下,然后您可以再次尝试执行sudo rosdep init命令。 如果网络连接正常但是手动下载20-default.list文件仍然失败,则可能是源代码已经被移除或更改了,您可以访问ROS官方网站上的文档,查看是否有任何新的更新或变更。 总之,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虽然看起来令人担忧,但通常情况下只要排除网络连接问题就可以解决。 ### 回答3: sudo rosdep init 错误:无法从https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list下载默认源列表。可能无法访问该网站。 这个错误的意思是,在运行sudo rosdep init命令时,系统无法从URL https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list中下载默认源列表。这可能是因为该网站没有上线或被封锁了。这个错误发生的原因有多种可能性,例如网络问题或GitHub服务器故障等。 要解决这个问题,可以尝试以下几种方法: 1. 检查网络连接:首先,确保您的网络连接是正常的,尝试访问其他网站以确认您的网络连接是否正常。 2. 尝试手动下载源列表:使用web浏览器手动下载源列表 https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list。您可以将其下载到本地计算机并将其放置在正确的位置。 3. 更改软件源:您可以更改软件源并使用其他软件源,如阿里云软件源或清华大学TUNA镜像站。这有助于解决与下载软件包相关的问题。 4. 等待一段时间:有时,由于GitHub服务器中断或大量请求,会导致下载源列表时出现问题。在这种情况下,您需要等待一段时间才能再次尝试。 总之,解决sudo rosdep init错误可能需要您尝试多种方法。通过检查网络连接、手动下载源列表或更改软件源等方式,您可以找到适合您的解决方案。同时也需要注意,由于网络问题或服务器故障等原因,您可能会在不同的时间段遇到这个错误

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值