问题描述
如标题所示,当我们安装好ROS后,想要用rosdep初始化时,会遇到ERROR: cannot download default sources list from https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
导致rosdep
后续的功能都不能用,原因是墙导致https://raw.githubusercontent.com
不能访问。
解决方法1-rosdepc
rosdepc
是替换rosdep
的一款软件,其功能是一模一样的,只不过是为了解决墙的问题,把软件里的地址换成了gitee
的国内地址,用法和安装方法和rosdep
都是一样的,可以参考古月居的这篇博客。
解决方式2 -修改rosdep软件
通过问题描述我们发现是因为墙的问题导致不能使用rosdep init
,所以最简单的方法就是使用scientific internet,这里我尝试了修改系统的http
,https
代理,发现还是不能使用rosdep
,其根本原因是即使我们设置了代理,但rosdep
这款软件也不会走我们设置的代理,因为rosdep
本质上是一个python脚本,在运行的时候是执行python程序,并不会走命令行的代理,要想令rosdep
走我们的代理,需要我们手动更改rosdep
的源代码,然后把我们的代理地址设置一下。但这个稍微有些复杂,改起来还是很困难的。
推荐gitee里这篇博客的方法,这篇博客写了一个脚本rosdep_update.sh
可以自动把我们系统里装好的rosdep
地址加上代理,这个教程使用的是https://ghproxy.com
这个公共的代理,但有可能后面就失效了,我们自己有代理的话可以修改rosdep_update.sh
里面的ghproxy_url=https://ghproxy.com
这行配置修改成我们自己的代理地址,例如:ghproxy_url=http://127.0.0.1:8081
,执行这个脚本后,rosdep
软件中的地址就会从我们自己的代理走,经过这样的设计,我们就可以使用rosdep
这款软件了。
如果自己没有科学上网的方式,如果https://ghproxy.com
这个也不能用的话,我们可以再把rosdep
原来的代码恢复,还是刚才这篇博客里提供了一个rosdep_recover.sh
工具,是上一个工具的反向操作,恢复rosdep
的原状态。
解决方式3-资源下载到本地
这种方式非常不建议,其本质就是在一台可以科学上网的机器上下载好资源,然后放到本地,再修改rosdep
代码让rosdep
不再从网站上下载资源,这种方法要比前两种方法都复杂,并且需要我们了解哪些文件是干什么的,门槛比较高,相当于需要的对rosdep
的源代码有一些基础的认知。所以这种方法非常不推荐。文章来源:https://www.toymoban.com/news/detail-405578.html
总结
自己可以科学上网,用方法2,自己不能科学上网,先尝试方法2,不行的话就用方法1,用了方法1,以后记住rosdep
统一改名为rosdepc
。喜欢折腾的,自己再搜搜方法3,我之前弄过,没啥意义,不建议。文章来源地址https://www.toymoban.com/news/detail-405578.html
到了这里,关于rosdep init ERROR: cannot download default sources list... 解决方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!