rosdep init 和 rosdep update 解决方案(非科学上网)
由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,笔者自己测试发现基本不好用,在安装这么多次ros中只有一次是通过这种方法解决的。通过修改rosdep源码中下载资源的函数来解决这一问题。当然可以科学上网的朋友是不会有这一问题的。但是一般情况下我们需要经常在不同的设备上部署ros,这时一个更加简便的解决方案是必须的。
这里也给出一些网上的解决方案:
-
修改 hosts 文件
-
修改下载的Python脚本里的超时时间
-
科学上网
-
最新解决
网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。
-
1、修改/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py。找到
download_rosdep_data()
这一函数,在311行添加:url="https://ghproxy.com/"+url
应用ghproxy的代理服务。
-
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、接着,以下4个文件中也使用了“raw.githubusercontent.com”网址,同样的方法把“https://ghproxy.com/”添加到网址前:
/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行
-
4、最后,在 /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 的第 204 行添加如下代码:
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
大功告成,现在你可以愉快地执行 rosdep update 啦!预祝一把过。
参考: