2026.3.4
事情是这样的,我在安装ros准备学习一个课程的过程中呢,遇到了rosdep无法使用的问题。
问题描述
按说这个问题很好解决,按照教程里的方法,安装6-rosdep,或者安装鱼香ros的rosdepc就能轻松解决。
但是我安装了6-rosdep并运行时,提示:

由于我之前在虚拟机安装ros的时候使用的是鱼香ros家的rosdepc,于是我又装了个rosdepc,然后运行,但是依然报错Website may be down。
问题分析
看来不是软件的问题,而是清华源的问题。
- 1
首先我第一反应就是6-rosdep或者rosdepc能不能够切换别的源,查了半天感觉不行,这些工具调用清华源貌似是写死的,然后大概清华源是最近才不好用的,我也看到最近有人在提问这个问题,别人给出的回答要么是等等再试,要么是手动切换别的源。
- 2
于是我打算手动切换成中科大的源(这里是一个坑,后面再说)。
关于切换的方法还是挺多的,比如中的大源自己的说明:
当然也有很多其他的教程,过程都差不多。
我按照这个教程操作了一番,问题并没有解决。
我猜测可能是我安装了上面两个软件,修改了什么文件,以至于系统还是在尝试访问清华源。(这个猜测并没有得到证明)
- 3
于是我的尝试方向变为修改6-rosdep或rosdepc的程序代码,使其运行时自动将源修改为中科大源。
我在尝试将这两个软件卸载时,发现使用卸载指令可以知道软件代码文件的目录,如下:

经过逐个文件的排查,我定位到了程序的源码:
6-rosdep:

rosdepc:

我把中科大的源的地址替换清华源的地址,运行,还是不行。。。
但是这次提示的不是清华源的website may be down,而是ros原始地址。
难道说。。。。
- 4
了解了一下这个rosdep指令的工作过程,首先是sudo rosdep init指令,是下在一个叫“20-default.list“的文件到”etc/ros/rosdep/sources.list.d/“的目录,然后”rosdep update"指令则是从这个文件中读取网络地址下载一些文件,然后再根据文件的内容更新配置。
于是我打算查看以下当前的“20-default.list“文件,我打开文件夹,发现并没有这么一个文件。。。
运行“sudo rosdepc init”指令后,文件夹中生成了这个文件,但是内容却是ros的原始地址。。。(此时我已经将rosdepc的清华源更换为了中科大源)
运行“sudo 6-rosdep”后,这个文件居然又没了。。。
- 5
根据我查到的资料,这个文件是可以手动下载的.
参考:
于是我下载了中科大的20-default.list文件(https://mirrors.ustc.edu.cn/rosdistro/rosdep/sources.list.d/20-default.list),打开一看。。。

这个地址不是ros的原始地址么。。。。怪不得我修改之后一直显示这个地址打不开,他要是能打开我不就不折腾了么。。。。
然后我又试了试清华源的地址(https://mirrors.tuna.tsinghua.edu.cn/github-raw/ros/rosdistro/master/rosdep/sources.list.d/20-default.list
),结果居然也能下载!
打开一看

至少内容是对的。
我把这个文件复制到“etc/ros/rosdep/sources.list.d/”目录中,直接运行“rosdep update”
成功了!

也是挺无语的。。。
解决方法
总结一下,就是手动下载20-default.list文件,下载完之后记得打开看看地址对不对,可以多从几个源下载试试。然后复制到“etc/ros/rosdep/sources.list.d/”目录中,运行rosdep update。
不过不停清楚这个方法是不是一劳永逸,如果后面再遇到问题我再更新。

133

被折叠的 条评论
为什么被折叠?



