解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法
Posted 非晚非晚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法相关的知识,希望对你有一定的参考价值。
安装ros的最后一步rosdep init和rosdep update经常会遇到超时问题,原因是这两步需要访问境外服务器。细心的网友会发现,之前奏效的方法现在成功的概率很小甚至失败。最近有一平台也需要部署ROS环境,也是搜索了很久才发现最新的方法,现在记下来供后来人参考。
1. 老方法
先来总结一下以前的方法,如果你也试过这些方法,可以忽视,直接跳到新方法。
- 老方法一:修改/etc/hosts
可以通过网站https://www.ipaddress.com 搜索“raw.githubusercontent.com”服务器的ip地址,然后在/etc/houts文件中添加相应的ip,如下在文件末尾增加一行。
151.101.84.133 raw.githubusercontent.com
以前这个方法百试百灵,现在不行了。
- 老方法二:使用手机热点
有时候将电脑连自己手机的热点,也可以成功,只不过需要多试几次。
- 更换地址
把“20-default.list”文件中所有yaml链接里的“raw.githubusercontent.com”替换为“raw.github.com”
- 修改“/etc/resolv.conf”文件
添加谷歌的域名服务器
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
2. 新方法
网站https://ghproxy.com/支持github的资源代理,亲测有效,我们将用此代理加速rosdep对Github的访问,进而解决rosdep update失败问题。只需要添加代理网址即可。
- 修改位置1:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
把以下行添加到脚本中的download_rosdep_data()函数中。
url="https://ghproxy.com/"+url
效果如下:
- 修改位置2:/usr/lib/python2.7/dist-packages/rosdistro/init.py
将DEFAULT_INDEX_URL 的内容进行替换,即注释原来的内容,替换为下列内容:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
效果如下:
- 修改位置3:
这一次修改有四个文本,5处位置,把含有github的地方前面都加上https://ghproxy.com/,即都修改为:https://ghproxy.com/https://github…
/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
拿第一个举例,效果如下:
好了,烦恼终于解决了,可以愉快的使用了!
以上是关于解决ROS中“sudo rosdep init“和“rosdep update“超时问题的最新方法--2021年最新方法的主要内容,如果未能解决你的问题,请参考以下文章
ROS的 sudo rosdep init 的报错终极解决方案
[ros环境]sudo rosdep init报错raw.githubusercontent.com被down的终极解决办法
sudo rosdep init 报错 ERROR:cannot download default sources list from:raw.githubusercontent.com