解决ROS系统rosdep update问题

由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,本文通过修改rosdep源码中下载资源的函数来解决这一问题。

网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,进而解决rosdep update超时问题。

首先定位rosdep资源下载函数。从报错信息中得知,该函数名为download_rosdep_data,位于/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py。我们修改这一函数,添加:

1
url="https://ghproxy.com/"+url

应用ghproxy的代理服务。

image

用同样的方法修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py里面的DEFAULT_INDEX_URL(感谢评论区@p4227117的补充)。

即将DEFAULT_INDEX_URL 进行如下替换:

1
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

除此处外,下述文件中也含有github地址,分别是:

1
2
3
4
/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 68119

均可通过在地址前添加https://ghproxy.com/前缀来应用代理服务。

2021.7.1补充:

对于第五个地址 [https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml] 报错的问题,请参考评论区@zgkjddk的方法:

在/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py 第204行前面添加如下代码

1
gbpdistro_url='https://ghproxy.com/'+gbpdistro_url

效果如下:

image

再次尝试执行rosdep update,问题解决。

————————————————

版权声明:本文为CSDN博主「leida_wt」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/leida_wt/article/details/115120940