ROS-Kinect安装时出现的rosdep init后不能rosdep update的问题。

ROS-Kinect安装时出现的rosdep init后不能rosdep update的问题。

这段时间在搭建一台新电脑的ros环境时出现rosdep init 和rosdep update的问题,在这里把解决方法记录下来,一边参考。

1、rosdep init的问题

(1)Website may be dowm 错误
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.

使用下方这条命令,下载安装python-rosinstall。

sudo apt-get install python-rosinstall

安装完成后可以继续尝试

sudo rosdep init

如果还有这个错误,就还需要到hosts文件添加网址IP地址来解决。
我们先使用命令ping出网址IP

ping raw.githubusercontent.com

获得以下显示
在这里插入图片描述
可以看到ping出的IP为151.101.84.133(文章中的这个IP有可能不能用,所以最好还是自己ping出来再换),打开hosts文件。

sudo gedit /etc/hosts

将IP和网址添加进去,保存。
在这里插入图片描述
保存好后就可以运行rosdep init这个命令了。

sudo rosdep init

得到终端中的显示
在这里插入图片描述
运行到这里就算是成功运行了init这条命令了。

(2)Please delete if you wish to re-initialize错误

为什么会出现这条错误,我的理解时rosdep init就是建立了一个下载链接文件,而之前这个文件已有的话就会出现这个错误。所以代表着可以不使用init命令进行创建,你也可以自己进入这个文件类进行修改。但是要是不知道文件里面的内容,还是建议使用命令操作。
解决办法,就按照字面意思进行操作就行。

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

然后在使用命令

sudo rosdep init

会得到上面这个成功的结果。

2、rosdep update的问题

上面rosdep init 就是为update更新一个下载源链接,在网络没有问题的情况下这条命令是必会出错的。主要是最近github进不去以后,这条命令就会下面这个问题,刚才更换IP后是有机会成功的,但是概率低。

txz@txz-laptop:~$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml]:
	<urlopen error ('_ssl.c:574: The handshake operation timed out',)> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]:
	<urlopen error timed out> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml]:
	<urlopen error timed out> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]:
	Failed to download target platform data for gbpdistro:
	<urlopen error timed out>
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
ERROR: error loading sources list:
	<urlopen error <urlopen error timed out> (https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)>

解决办法:从hub上面下载下来,将update更新从网上改到本地。

a、首先进入镜像网址下载

在这儿提供一个hub的镜像网址,供给大家参考,也可用自己的。(hub.fastgit.org)这个镜像网址可以直接进,也可以在使用git下载的时候使用前面那个网址代替github.com。
这里只介绍使用git命令下载。

git clone https://hub.fastgit.org/ros/rosdistro.git

下载结束后找到刚刚下载好的文件,记住他的路径。

b、修改20-default.list文件

这个文件不是刚才使用rosdep init生成的那个文件,我们修改的这个文件是我们从hub上下载下来的文件,以此作为更新的源链接。使用命令。(注意文件路径,是自己的下载的文件,同时再修改别的文件时,尽量还是将原来的注释,而不是删除)

sudo gedit /home/xxx/rosdistro/rosdep/sources.list.d/20-default.list

将文件内的内容替换为

# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

上面文件的内容所对应的文件,全部换成本地的文件。

c、修改sources_list.py文件

使用命令,打开文件。

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

修改其中内容。

DEFAULT_SOURCES_LIST_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list'

替换成

DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'

修改这个文件后,使用刚才rosdep init命令更新的源,会变成本地的内容,即刚才修改的那个文件。也可以全部修改后再输入。

sudo rosdep init

也就是说rosdep init这个命令是可以使用上面的操作进行替换的。

d、修改__init__.py文件

使用命令打开

sudo gedit /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

DEFAULT_INDEX_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml'

替换成

DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'
e、修改rep3.py 文件

使用命令打开

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

REP3_TARGETS_URL = 'https://raw.githubusercontent.com/ros/rosdistro/master/releases/targets.yaml'

替换成

REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'

将以上的所有文件都提换成功后,先使用rosdep init初始化或者直接进入/etc/ros/rosdep/sources.list.d/20-default.list进行修改,修改内容同下载下来的文件内的20-default.list一样,最后运行rosdep update得到以下输出,则表示成功。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值