-
2021-11-10 09:54:00
rosdep update命令使用
该方法是可以跳过sudo rosdep init初始化命令设置的,前提是安装完ros,rosdep update是安装一些依赖库,比如在Cartographer、ORB-SLAM等算法需要使用到一些依赖库,是必须安装的,如果不是有需要的,只是使用ros一般依赖,是不需要rosdep update的
重点重复说明:(因为大家错的较多)
1、记录rosdistro存放地址,例如
/home/LiFeiHong/rosdistro
,自己的改成/home/你用户名/rosdistro
,下面都是按照这样改,你最后报错如果出现LiFeiHong,说明你路径错了;2、另外本方案在18.04和16.04测试都没问题,20.04Ubuntu版本可能需要对路径的
python2.7改成python3.0
。
1.首先将下面仓库的内容clone到本地
方法一:
csdn资源直接下载rosdistro
方法二:git clone https://github.com/ros/rosdistro.git
方法三:
如果git clone 速度较慢,可以直接拷贝https://github.com/ros/rosdistro.git到网页下载,速度提高,
不过需要记得将下载包名字rosdistro-master改称rosdistro记录rosdistro存放地址,例如
/home/LiFeiHong/rosdistro
如果是自己的改成/home/user/rosdistro
,其中user
表示用户名,下面都是按照这样改2.修改
/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
文件cd /usr/lib/python2.7/dist-packages/rosdep2 sudo gedit rep3.py
注意:如果进去不到rosdep2文件夹,直接在usr文件夹下搜索rep3.py。就能查找到对应的路径,以下方法同样。
将REP3_TARGETS_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml’ 替换成REP3_TARGETS_URL = 'file:///home/LiFeiHong/rosdistro/releases/targets.yaml'
注意LiFeiHong
改成你的用户名3.修改
/usr/lib/python2.7/dist-packages/rosdistro/__init__.py
文件cd /usr/lib/python2.7/dist-packages/rosdistro sudo gedit __init__.py
将原来文件中的 DEFAULT_INDEX_URL = ‘https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml’ 替换成
DEFAULT_INDEX_URL = 'file:///home/LiFeiHong/rosdistro/index-v4.yaml'
注意LiFeiHong
改成你的用户名4.配置
20-default.list
文件如果者查看/etc/ros/rosdep/sources.list.d路径已经有20-default.list文件(之前已经运行过sudo rosdep init的原因),就直接跳过
4.1
步奏,运行4.2步奏,---------------------======4.1
、创建文件夹sources.list.d,并生成20-default.list 文件sudo mkdir -p /etc/ros/rosdep/sources.list.d
生成20-default.list
cd /etc/ros/rosdep/sources.list.d sudo touch 20-default.list
到这里已经生成/etc/ros/rosdep/sources.list.d/20-default.list文件-------------------======
4.2、打开20-default.list文件,将里面内容修改为下面的代码,注意内容/home/LiFeiHong修改为自己的记录路径
sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list
内容改成:
# os-specific listings first yaml file:///home/LiFeiHong/rosdistro/rosdep/osx-homebrew.yaml osx # generic yaml file:///home/LiFeiHong/rosdistro/rosdep/base.yaml yaml file:///home/LiFeiHong/rosdistro/rosdep/python.yaml yaml file:///home/LiFeiHong/rosdistro/rosdep/ruby.yaml gbpdistro file:///home/LiFeiHong/rosdistro/releases/fuerte.yaml fuerte # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
注意的是
yaml file://
表示固定格式/home...
表示文件目录,所以是yaml file:///
注意LiFeiHong
改成你的用户名5.最后直接
rosdep update
出错注意:
一:
网络不需要代理,用代理而没有代理专属的ip(翻墙),反而不能下载(比如结果出现(https://ghproxy.com/file);
方法:在网络设置,关闭代理,或搜索linux关闭代理方法二:
修改的路径所有路径不能有中文,空格或者特殊符号(@!*&…)。
三:
文件路径错误,代码出现
No such file or directory
等文字
解决方法:把下载的文件copy一下,然后粘贴到终端就可以看到你文件存放的路径。更多相关内容 -
解决ROS系统 rosdep update超时问题的新方法
2021-03-23 14:02:17由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,本文通过修改rosdep源码中下载资源的函数来解决这一问题。 网站https://ghproxy.com/支持github的资源...由于近期国内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。我们修改这一函数,添加:url="https://ghproxy.com/"+url
应用ghproxy的代理服务。
用同样的方法修改/usr/lib/python2.7/dist-packages/rosdistro/__init__.py里面的DEFAULT_INDEX_URL(感谢评论区@p4227117的补充)。
即将DEFAULT_INDEX_URL 进行如下替换:DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
除此处外,下述文件中也含有github地址,分别是:
/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行
均可通过在地址前添加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行添加如下代码
gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url
再次尝试执行rosdep update,问题解决。
-
ROS学习——rosdep update 超时解决方法
2022-04-15 21:03:32本篇文章记录在安装ROS时碰到的rosdep update超时问题,并记录了为解决这个问题我所尝试的解决方法。相关环境为Ubuntu20.04,ROS Noetic。前言
本篇文章记录在安装ROS时碰到的rosdep update超时问题,并记录了为解决这个问题我所尝试的解决方法。相关环境为Ubuntu20.04,ROS Noetic。
关于 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 update需要访问github,国内对于github的访问是经常出问题的,在这一步经常会因为网络问题而失败。失败图片如下:
所以,无论是哪种解决方案,其核心都是使得rosdep update命令能够访问到相应的文件。在解决过程中,一共尝试了三种解决方案,成功了两种。
解决方案一:修改DNS(失败)
由于是因为访问github失败,所以首先想到的方法是修改DNS,因为通过修改DNS可以流畅的访问github。
- 常规的方法是修改“/etc/hosts”文件,把“raw.githubusercontent.com”服务器的ip地址注册到里边。“raw.githubusercontent.com”的服务器ip可能会变化,可以通过 https://www.ipaddress.com 这个网站来查询当前的ip。
- 不过我一般用的是GitHub520和SwitchHosts来修改github的dns,非常好用。GitHub520提供了一个自动更新github相关服务器ip地址的链接,而SwitchHosts可以将该链接内的信息自动更新入host。用这个方法平常我上github基本是没问题了。
修改dns后,效果:
可以看到,这个方法让我多前进了几步,但是仍旧无法完成rosdep update
。
解决方案二:资源代理(成功)
网站
https://ghproxy.com/
支持github的资源代理,可以用此代理加速rosdep对Github的访问,进而解决rosdep update失败问题。我们要在rosdep的若干个脚本文件中,把 https://ghproxy.com/ 添加到相应URL前。该方法参考rosdep update 超时失败2021最新解决方法。
下述要修改的文件中,由于我是Ubuntu20.04,ROS Noetic,相关文件在python3路径下,其他版本安装路径可能不一样,可以用find
命令在系统中查找。如对文件1,可用命令:sudo find / -name rep3.py
进行查找,查找结果如下:
关于find
命令的更多用法,可以参考linux下快速查找文件修改文件1:
/usr/lib/python3/dist-packages/rosdep2/rep3.py
# REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml' REP3_TARGETS_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'
修改文件2:
/usr/lib/python3/dist-packages/rosdistro/__init__.py
# DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml' DEFAULT_INDEX_URL = 'https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'
修改文件3:
/etc/ros/rosdep/sources.list.d/20-default.list
# os-specific listings first yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx # generic yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml yaml https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml gbpdistro https://ghproxy.com/https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
再执行
rosdep update
,成功:
解决方案三:将文件下载到本地(成功)
该方法核心思想就是将难以访问的文件通过一定办法保存到本地,然后直接访问本地文件。该方法参考一定能解决ROS系统 rosdep update超时问题de简单方法。
一共有七个yaml
文件需要获取,获取方法多样。- 直接用
git
命令下载
git clone https://github.com/ros/rosdistro.git
- 如果git clone 速度较慢,可以直接进入https://github.com/ros/rosdistro.git,到网页下载,速度有时候会提高。
- 我下载了相关文件,百度网盘,可自取。
- 可直接将下列网页内容保存到相应名字的文件。虽然下列网页也是github服务器上的,但是打开非常流畅。但操作略繁琐。
https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
现在我们已经获取了需要的文件,只需要将对应的路径设置为刚下载来的文件就好。记录rosdistro存放地址,我存放在
/home/ubuntu2004/rosdistro
。根据自己存放文件路径的不同,下面修改后的值也不同。修改文件1:
/usr/lib/python3/dist-packages/rosdep2/rep3.py
# REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml' REP3_TARGETS_URL = REP3_TARGETS_URL = 'file:///home/ubuntu2004/rosdistro/releases/targets.yaml'
修改文件2:
/usr/lib/python3/dist-packages/rosdistro/__init__.py
# DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml' DEFAULT_INDEX_URL = DEFAULT_INDEX_URL = 'file:///home/ubuntu2004/rosdistro/index-v4.yaml'
修改文件3:
/etc/ros/rosdep/sources.list.d/20-default.list
# os-specific listings first yaml file:///home/ubuntu2004/rosdistro/rosdep/osx-homebrew.yaml osx # generic yaml file:///home/ubuntu2004/rosdistro/rosdep/base.yaml yaml file:///home/ubuntu2004/rosdistro/rosdep/python.yaml yaml file:///home/ubuntu2004/rosdistro/rosdep/ruby.yaml gbpdistro file:///home/ubuntu2004/rosdistro/releases/fuerte.yaml fuerte # newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
再执行
rosdep update
,成功:
完成 😃,希望对卡在rosdep update的大家有帮助。
-
rosdep update 超时失败2021最新解决方法
2021-08-04 12:01:36rosdep update 超时失败2021最新解决方法 [EB/OL]. https://blog.csdn.net/Kenny_GuanHua/article/details/116845781, 2021-05-15/2021-08-04. 一、关于 rosdep 安装ros的最后一步是rosdep init和rosdep update,...写在前面
本文转载自
[1] 马赫_WGH. rosdep update 超时失败2021最新解决方法 [EB/OL]. https://blog.csdn.net/Kenny_GuanHua/article/details/116845781, 2021-05-15/2021-08-04.一、关于 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。
其它常见的解决方法还有:
-
使用手机热点联网,多试几次;
-
把“20-default.list”文件中所有yaml链接里的“raw.githubusercontent.com”替换为“raw.github.com”;
-
修改“/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 啦!预祝一把过。
参考链接:
[1] 马赫_WGH. rosdep update 超时失败2021最新解决方法 [EB/OL]. https://blog.csdn.net/Kenny_GuanHua/article/details/116845781, 2021-05-15/2021-08-04. -
-
Ubuntu18.04解决rosdep update 超时问题
2021-11-28 13:48:02运行rosdep update时报错:ERROR : error loading sources list :(‘The read operation timed out’,) 1.打开如下文件 sudo vim /etc/ros/rosdep/sources.list.d/20-default.list 修改list文件内容如下: # ... -
解决ROS安装时rosdep update超时或出错问题
2021-11-08 16:16:53方法一:使用代理加速对 GitHub...1.定位rosdep资源下载函数(download_rosdep_data),位置:/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py,在指定位置添加如下程序行: url="https://ghproxy.com/"+... -
解决ROS系统 rosdep update超时问题的方法,亲测有效
2022-05-14 16:19:20cd /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py 我们修改这一函数,添加: url="https://ghproxy.com/"+url 继续: cd /usr/lib/python2.7/dist-packages/rosdistro/__init__.py 将文件中的... -
Ubuntu20.04ROS rosdep update超时失败解决方法
2021-10-14 23:53:28Ubuntu20.04ROS rosdep update超时失败解决方法 文章目录Ubuntu20.04ROS rosdep update超时失败解决方法一、rosdep介绍二、之前尝试的方法三、方法介绍1、修改sources_list.py2、__init__.py3、gbpdistro_support.py... -
ubuntu18.04安装ROS Melodic初始化失败及rosdep update超时问题解决
2022-04-09 19:19:38sudo rosdep init会出现 ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down 报错原因是... -
【ROS】针对ROS安装过程中出现rosdep update超时问题的解决方法
2021-08-06 14:46:39由于近期国内Github Raw的可用IP越来越少,通过修改hosts文件解决rosdep update超时问题的方法已经不太好用,本文通过修改rosdep源码中下载资源的函数来解决这一问题。 网站https://ghproxy.com/支持github的资源... -
最全最简单方法解决安装ROS的rosdep update超时错误
2022-06-25 08:38:48摘要:Ubuntu安装ROS,在rosdep update命令出现超时错误的解决方案 -
ROS安装时遇到 rosdep update 超时解决方法
2022-06-17 10:16:47rosdep update超时的解决办法 -
rosdep update超时
2021-04-03 23:22:401.把超时延长(我是这么理解的,反正起作用了) 参照这篇博客 2.按照下面这个博客添加内容,如果一次没成功多试几次 这个方法真的很给力 3.基于上面的方法,如果是采用科学上网,好像会跟快,成功几率会高一点。 ... -
rosdep update 超时问题解决
2021-04-05 09:06:11rosdep update 超时问题解决 -
rosdep update 超时
2019-01-12 23:08:00https://blog.csdn.net/azhuty/article/details/41209957 http://www.cnblogs.com/wangyarui/p/6059688.html http://www.cnblogs.com/qiangzi0221/p/7707128.html 转载于:... -
关于rosdep update超时失败问题的解决方法
2021-11-17 18:10:23"sudo rosdep init" 成功后,修改 "/etc/ros/rosdep/sources.list.d/20-default.list" 文件,在所有 "https://raw.githubusercontent.com " 前加上 "https://ghproxy.com": # os-specific listings first yaml h... -
解决ROS系统 rosdep update超时问题
2021-06-21 10:55:20查找的很多资料,都不得要领。 解决ROS系统 rosdep update超时问题的新方法这篇文章帮忙解决了问题。 -
添加一行内容解决rosdep update超时问题
2021-06-15 21:16:161.在进行sudo rosdep init 前 手动创建/etc/ros/rosdep/sources.list.d文件夹 2.打开桌面终端,输入: sudo gedit /etc/hosts 3.在打开的文件中添加一行:... 4.最后在终端运行 sudo rosdep init rosdep update ... -
rosdep_init/rosdep_update 超时报错,网络原因报错解决方案
2021-05-19 13:40:23本质上这两句命令时从网络下载对应的文件到本地,由于服务器在境外等原因经常网络原因无法下载。下载此压缩包并 按照readme当中修改配置文件即可。 -
ros安装时执行sudo rosdep init报错及rosdep update超时的解决方法(2021-04-22更新)
2020-11-12 15:19:02sudo rosdep init ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down. 解决步骤: cd ... -
解决 rosdep update 超时问题 - The read operation timed out
2021-08-23 19:17:221, 复制如下,命令回车。 直行脚本文件,修改rosdep下的源代码文件,是通过替换,加速地址 https://ghproxy.com/,达到提速目的。 wget -qO - ...rosdep update 3. 感兴趣的 -
【2021年8月】解决 rosdep update超时问题
2021-08-12 09:59:30修改两个文件即可快速解决超时问题 ####1、 修改/etc/ros/rosdep/sources.list.d/20-default.list 执行sudo gedit /etc/ros/rosdep/sources.list.d/20-default.list 在每个链接前加上https://ghproxy.com/ # os-... -
解决ROS系统 rosdep update超时问题的新方法(两种)
2022-02-18 16:25:48从报错信息中得知,该函数名为download_rosdep_data,位于/usr/lib/python3/dist-packages/rosdep2/sources_list.py。我们修改这一函数,在try后面添加: url="https://ghproxy.com/"+url 用同样的方法修改/usr/... -
ROS安装,解决sudo rosdep init和rosdep update超时错误
2021-07-12 16:23:25而rosdep update命令是通过上述的20-default.list文件中的地址下载配置文件,但因为网站原因,总是会报超时错误,于是我开始慢慢的寻找解决方法(你能翻墙就当我没说),网上有人使用添加最新的ip地址在hosts文件中...