ROS Melodic安装时执行“sudo rosdep init”报错

原文链接:https://blog.csdn.net/qq_41931091/article/details/107965229

一、问题分析

1、在执行sudo rosdep init前,需要已经安装了rosdep,否则会提示安装rosdep

2、安装好rosdep后,执行sudo rosdep init,提示

原因:默认的源不可用,需要添加新的地址。

方法

打开以下文件,并在最后添加新的地址。

$ sudo gedit /etc/hosts

添加:

151.101.84.133 raw.githubusercontent.com

3、执行sudo rosdep init不再报错,执行rosdep update再次报错

原因

看ERROR是urlopen和ssl验证的问题。报错原因是python 升级到 2.7.9 之后引入了一个新特性,当使用urllib.urlopen打开一个 https 链接时,会验证一次 SSL 证书,而当目标网站使用的是自签名的证书时就会抛出一个 urllib2.URLError的错误消息。

既然前面尝试了很多办法都没法解决SSL验证问题,那只能想办法在执行rosdep update时尝试定位urllib.urlopen()函数并规避掉SSL验证。

找到urlopen()之后,如果参考链接里的解决方案,需要修改所有调用的14个地方,太复杂。如果我们可以在rosdep浅入口处设置urlopen()全局属性,取消SSL验证,那是不是可以一下解决问题?

因此,在/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py中顶部直接插入两行代码取消SSL验证:

$ sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

插入:

# Change
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

再次执行rosdep update,无报错。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值