rosdep update 超时失败2021最新解决方法

2023-05-16

【好记性不如烂笔头,记录方法,方便大家】

一、关于 rosdep

安装ros的最后一步是rosdep init和rosdep update,rosdep是解决ros包依赖问题的一个工具。

rosdep init会从ros官方服务器上下载一个“20-default.list”文件,放在“/etc/ros/rosdep/sources.list.d/”路径下;打开“20-default.list”发现里边是一些yaml文件的网址,这些yaml文件里保存着一些ros工具或者常见ros包的依赖关系,也即:这些ros工具或者ros包依赖于哪些其它ros包。当你执行rosdep update,rosdep会尝试访问yaml文件网址,把yaml里的信息转存到本地,这样当你配置上述ros工具或者ros包时,ros会按照依赖关系自动把所需的依赖一并下载。这也是为什么一些人会认为rosdep失败也不影响ros使用,因为只有当你下载相关包时才会用到rosdep。

不难发现,rosdep init和rosdep update都需要访问境外服务器,这就导致国内用户rosdep相关操作经常失败。

二、常规解决方法

常规的方法是修改“/etc/hosts”文件,把“raw.githubusercontent.com”服务器的ip地址注册到里边,之前的话,通过此方法基本能解决rosdep问题,基本百试百灵。“raw.githubusercontent.com”的服务器ip可能会变化,大家可以通过 https://www.ipaddress.com 这个网站来查询当前的ip。

其它常见的解决方法还有:

1. 使用手机热点联网,多试几次;

2. 把“20-default.list”文件中所有yaml链接里的“raw.githubusercontent.com”替换为“raw.github.com”;

3. 修改“/etc/resolv.conf”文件,添加谷歌的域名服务器;

nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器

根本上来讲,所有的方法都是为了能够让本机顺利访问yaml文件网址。

三、2021最新解决方法

但近期,通过修改hosts文件解决rosdep update失败的方法也不太好用了,成功几率很低。

参考 leida_wt 的方法,网站https://ghproxy.com/支持github的资源代理,非常好用,我们将用此代理加速rosdep对Github的访问,进而解决rosdep update失败问题。

我们要做的,是在rosdep的若干个脚本文件中,把 https://ghproxy.com/ 添加到相应URL前面即可。

1.首先修改rosdep下载资源的脚本文件:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py,把以下行添加到脚本中的download_rosdep_data()函数中,以应用代理服务:

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

 

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 啦!预祝一把过。

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

rosdep update 超时失败2021最新解决方法 的相关文章

随机推荐

  • Qt 出现“程序异常结束”问题可能的解决思路

    第三方库的编译有问题 请注意 xff0c 出现此种问题绝不止这一个原因 xff0c 还包括其它很多原因 xff0c 这些原因可能千奇百怪 xff0c 需要你的开发经验去积累去发掘 在这里 xff0c 根据我自己的经验 xff0c 总结几种可
  • Qt 中如何在主窗口中添加子窗口

    方法 原理其实简单 和在窗口上动态 代码的形式 添加控件的方法一样 但需要设置一下子窗口的属性 在子窗口构造函数中添加代码 setWindowFlags Qt FramelessWindowHint 作用 隐藏子窗口的标题栏和边框 如果不隐
  • Qt5 自定义字体修改: 字体、大小以及颜色(部分要点已实测)

    Qt设置字体类型及添加字体文件 Qt 添加字体文件 1 设置支持的字体 QFont font font setFamily 34 填写字体名称 34 2 通过字体文件来设置字体 字体的名称可以是自带的 xff0c 也可以是外部的 xff0c
  • Qt QTableWidget 表格自适应 高度和宽度

    1 在MainWindow中设置 对被嵌入的子窗口进行设置 xff0c 去除子窗口的一些影响到嵌入的部件 pTable gt setWindowFlags Qt CustomizeWindowHint Qt FramelessWindowH
  • 互斥信号量和二值信号量的区别

    详解互斥信号量的概念和运行 https blog csdn net weichushun article details 122744773 互斥信号量的主要作用是对资源实现互斥访问 xff0c 使用二值信号量也可以实现互斥访问的功能 xf
  • Qt QTableWidget设置表头、菜单 背景色,以及不成功的原因

    Qt QTableWidget设置表头背景色不成功的原因 QTableWidget没有设置背景色的函数 xff0c 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet 34
  • Qt记住上次窗口的位置和状态

    include lt QCloseEvent gt include lt QShowEvent gt void MainWindow showEvent QShowEvent event restoreGeometry config gt
  • git-cola 使用方法

    目录 git cola 的用法实践记录 git cola 是 git的图形界面管理工具 因此 xff0c 在安装 git cola之前 xff0c 一般首先需要安装 git 官网地址 xff1a http git cola github i
  • Qt中的 DEPENDPATH 和 INCLUDEPATH 的区别

    在Qt中添加库文件的时候 xff0c Qt会自动在pro文件里生成三行配置 INCLUDEPATH 43 61 dir DEPENDPATH 43 61 dir LIBS 43 61 Ldir llibxxx includepath 和 l
  • STM32--MPU内存保护单元(一)

    先说明一下MPU xff0c MPU有很多含义 xff0c 我们常见的有 xff1a MPU xff1a Memory Protection Unit xff0c 内存保护单元 xff08 本文描述的内容 xff09 xff1b MPU x
  • Qt .pro 官方手册 Creating Project Files (*)

    Creating Project Files Qt 6 5 Creating Project Files qmake Manual Creating Project Files Qt 5 14 Qt 5 14 qmake Manual Cr
  • 感悟 编程思想:Rust,不同于面向过程思想与面向对象思想 (**)

    编程思想的演变 面向过程思想 xff1f 面向对象思想 xff1f Rust语言 xff0c 据说既有面向过程的特征 xff0c 又有面向对象的特点 xff1f 不要过分地拘泥于在一个项目中采用面向过程思想与面向对象思想 实际上 xff0c
  • 基础数据结构:单链表

    定义 单链表是一种线性数据结构 xff0c 用一组地址任意存储单元来存储数据 xff0c 存储单元分散在内存任意地址上 xff0c 存储单元之间用指针连接 单链表一般有两种 xff1a 带头结点的 xff0c 头结点不存放数据 xff0c
  • 开源飞控种类分享

    开源飞控发展 一 开源飞控发展 第一代开源飞控系统使用Arduino或其他类似开源电子平台为基础 xff0c 扩展连接各种MEMS传感器 xff0c 能够让无人机能平稳地飞起来 第二代开源飞控系统大多拥有自己的开源硬件 开发环境和社区 xf
  • 2020电赛绕障飞行无人机无遥控自动飞行解决方案(Ti)

    一 方案目标 针对部分大赛要求无人机在无遥控的情况下实现自主飞行 xff0c 本方案实现无遥控和接收机 情况下 xff0c 通过杜邦线或者按钮触发无人机进入相应模式 xff0c 执行模式对应的指令 由于 Ti 飞控有 8 个 PWM 接口
  • 数组名a+1和&a+1的区别

    C C 43 43 里面的数组名字会退化为指针 xff0c 所以数组名a实际指的是数组的第一个元素的地址 而数组名作为指针来讲有特殊性 xff0c 它正在它所指向的内存区域中 xff0c amp a的值和a的数值是相同的 xff08 可以输
  • float精度分析

    二进制浮点数是以 符号 43 数值表示法 储存 xff1a 将最高位指定为符号位 xff08 sign bit xff09 xff1b 指数部份 xff1a 即次高的e位 决定数值的数量级 小数部份 xff1a 即余下的f位 决定数值的浮动
  • Eigen库四元数表示顺序

    Eigen Quaterniond Q 1 2 3 4 表示顺序为 xff1a w 61 1 x 61 2 y 61 3 z 61 4 同理其余常用四元数数组顺序为q w x y z euler 61 R eulerAngles xff08
  • mavros中的一些坑

    固件 xff1a px4 控制 xff1a 通过对mavros发布mavros setpoint raw local话题控制无人机飞行 获取飞机的ENU坐标系坐标有两个话题 xff1a mavros global position loca
  • rosdep update 超时失败2021最新解决方法

    好记性不如烂笔头 xff0c 记录方法 xff0c 方便大家 一 关于 rosdep 安装ros的最后一步是rosdep init和rosdep update xff0c rosdep是解决ros包依赖问题的一个工具 rosdep init