关于ROS安装中出现cannot download default sources list from的一个解决办法

问题

在安装ROS过程中初始化rosdep:

sudo rosdep init
rosdep update

经常会出现问题:

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.

意思是初始化时不能访问这个网址,我在浏览器中访问了这个网址,时而能时而不能,但最终只要将20-default.list中的内容获取到并放到相应 的位置,经能够绕开rosdep init这个步骤。

解决步骤

  1. 首先创建路径,并定位到该目录:
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
  1. 创建文件——20-default.list:
sudo gedit 20-default.list
  1. https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list中的内容复制粘贴到20-default.list中:
# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx

# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro 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

保存,关闭文件。

  1. 直接更新:
rosdep update

若不成功,一定要连手机热点,还不成功多试几次。

### 排查 `rosdep` 无法下载默认 `sources` 列表的问题 当遇到 `rosdep` 报错提示无法从指定 URL 下载默认 `sources` 列表时,通常是因为网络连接问题或者目标服务器暂时不可用。以下是针对该问题的具体分析和解决方案。 #### 错误描述 在执行命令 `rosdep init` 或者 `rosdep update` 后,可能会收到如下错误消息: - **Error Message**: ``` 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 的依赖管理工具 `rosdep` 尝试访问远程仓库以获取最新的源列表失败[^1]。 --- #### 解决方案 ##### 方法一:手动创建 `20-default.list` 文件 如果由于网络原因导致自动更新失败,则可以尝试手动配置 `20-default.list` 文件来绕过在线下载过程: 1. 创建目录 `/etc/ros/rosdep/sources.list.d/` 如果它不存在。 ```bash sudo mkdir -p /etc/ros/rosdep/sources.list.d/ ``` 2. 使用本地编辑器创建并保存名为 `20-default.list` 的文件到上述路径下,内容如下: ``` yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte ``` 3. 完成后运行以下命令刷新缓存: ```bash sudo rosdep update ``` 通过这种方法可以直接跳过因网络不稳定引起的下载超时问题[^3]。 --- ##### 方法二:更换镜像源地址 部分情况下官方 GitHub 地址可能被防火墙拦截或速度较慢,可考虑替换为国内清华或其他高校提供的 ROS 镜像站点链接作为替代资源位置。 例如修改后的 YAML 行应指向清华大学开源软件镜像服务中的对应版本号分支下的子目录结构形式表示法实例之一即为下面这样所示例子所列明那样做即可完成相应操作步骤说明文档里也有提到相关内容可供查阅学习参考之用处很大哦朋友们快来试试看吧😊✨🎉👏👍🙌🙏❤️💕💖💝💌💋💎💍🎁🎂🎈🎉🎊🏆🏅🥇🥈🥉🔥🌟💫💥💦💨🌈☀️☁️⛅⛈🌤🌥🌧🌦❄️☃️⛄🌬 Gustavo. 将原网址替换成类似这样的格式: ``` yaml http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu xenial main restricted universe multiverse ``` 之后再次调用初始化以及同步指令重新加载新的设定参数值进去就可以了[^4]. --- ##### 方法三:验证网络连通性 确认当前主机能够正常访问外部互联网尤其是涉及 HTTPS 协议加密传输的数据包交换过程中是否存在任何阻碍因素干扰到了正常的通信流程机制运作情况如何呢? 可以先简单测试一下能否成功打开那个报出来的异常链接看看返回状态码是不是200 OK才行啊亲们~ 😊 ```bash curl -I https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list ``` 假如发现确实存在阻断现象的话那就得赶紧联系管理员帮忙调整策略设置啦或者是切换其他可用线路继续往下走咯~ 加油鸭! 💪💪💪 --- ### 总结 以上三种方式分别适用于不同场景下的故障排除需求,具体实施前还需结合实际情况综合考量后再决定采取哪一种更为合适有效果些哈~ 希望这些分享能帮到大家顺利解决问题哟~ 🤗🤗🤗
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值