解决方法1:
之前博主是在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
,所以也会报错。
国内某知名搜索引擎排行前列的几种解决方案(已排除广告):
解决思路是从网络层面入手,用科学(科学上网)或玄学(手机热点)的方式,如 果出现认证错误的问题,再通过安装依赖包或修改rosdep源码的方式解决。
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,即可解决这个问题。
git clone https://github.com/ros/rosdistro.git
;rosdistro
中搜索20-default.list
,将其url指向本地repo;rosdep2
和rosdistro
中出现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