说明
本文是《 ROS知识 【6】Ubuntu20.04下ROS安装》一文中的附加内容。是在安装ros依赖管理工具rosdep出现的超时问题的解决方案。
rosdep是非常重要的ros部件,如果缺乏,将无法自动获取依赖,常表现为catkin_make编译不过。然而国内用户通常在 sudo rosdep init和rosdep update出现time out而无法安装。通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,
1 关于github代理
本文通过修改rosdep源码中下载资源的函数来解决这一问题。【 法 GitHub Proxy 代理加速 】
说明:https://ghproxy.com是个代理网站,凡是对github等访问障碍的语句,都可以外挂代理解决速度问题。支持终端命令行 git clone , wget , curl 等工具下载
网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github Raw的访问,可以解决rosdep update超时问题。
2 首先定位rosdep资源下载函数。
从报错信息中查找线索,错误为download_rosdep_data处,位于/usr/lib/python3/dist-packages/rosdep2/sources_list.py脚本。我们修改这一函数,添加:
url="https://ghproxy.com/"+url
应用ghproxy的代理服务。
3 修改__init__.py
用同样的方法修改/usr/lib/python3/dist-packages/rosdistro/__init__.py里面的DEFAULT_INDEX_URL。
即将DEFAULT_INDEX_URL 进行如下替换:
DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
4 修改下面5个脚本文件
通过在地址前添加https://ghproxy.com/前缀来应用代理服务,下述文件中凡含有github地址,都做相应修改,分别是:
/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py 36行
/usr/lib/python3/dist-packages/rosdep2/sources_list.py 72行
/usr/lib/python3/dist-packages/rosdep2/rep3.py 39行
/usr/lib/python3/dist-packages/rosdistro/manifest_provider/github.py 68行 119行
对文件/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py修改:
/usr/lib/python3/dist-packages/rosdep2/gbpdistro_support.py 第204行添加:
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
再次尝试执行rosdep update,问题解决。
参考文章:
解决ROS系统 rosdep update超时问题的新方法_leida_wt的博客-CSDN博客_rosdep update 超时