从根源解决sudo rosdep init问题,一定行的方法
本文是个人经验总结,是自己遇到问题找到的解决方案,方便自己后续查看,相关链接会给出原创作者。我仅做可能出现问题的总结。
原文链接:https://blog.csdn.net/nanianwochengshui/article/details/105702188
感谢大佬!希望可以好好理解一下原作者的解决思路。
简单来讲就是,本来需要在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.
个人尝试过网上的换热点,改ip等方法,均无效。这个方法是最直接有效的,多次配置双系统,虚拟机均采用此方法,万无一失。
第一步:
去下载这个包到根目录下,不要改别的目录,也不要改文件名,否则后续都需要改
github.com/ros/rosdistrohttps://github.com/ros/rosdistro
跟我一样的新手可能不会用git,这里演示一下:
在根目录粘贴:
git clone https://gitcode.net/mirrors/ros/rosdistro.git
第一步的期望结果:
第二步:修改这个文件夹里面的路径
打开刚下载的rosdistro,找到rosdistro/rosdep/sources.list.d里面的list文件。
cd /home/xxx/rosdistro/rosdep/sources.list.d
gedit 20-default.list
# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx
# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
file: 中xxx是你的用户名,也就是终端里@之前的名字,也可以通过查看文件属性看到自己的用户名
第三步:修改本地的相关路径
修改这三个文件里面的相关路径
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
使用ctrl+f 查找 很快能全部替换,三个分别为:
#sources_list.py
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'
#rep3.py
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'
#__init__.py
DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
权限不够建议使用 sudo su 进入root模式,然后gedit +上边说的地址。
然后运行
sudo rosdep init
万岁!
仅做记录,希望大家看原作者操作,文中说的问题只是我的问题。
---------------------------------------------------
有什么问题欢迎留言交流
如果没有成功仔细检查一下步骤和命名、路径之类的细节