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. <urlopen error <urlopen error [Errno 111] Connection refused> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list)>
时间: 2025-03-28 08:07:28 浏览: 117
### ROS `rosdep` 下载默认源列表失败解决方案
当尝试初始化或更新 `rosdep` 的时候,如果遇到错误提示 `ERROR: cannot download default sources list from...` 或者 `[Errno 111] Connection refused`,这通常是因为网络连接问题或者 SSL 验证失败引起的。
以下是几种可能的解决方法:
#### 方法一:使用第三方工具修复证书验证问题
可以借助社区开发的 Python 工具来处理此问题。通过安装并运行特定的脚本解决问题:
```bash
sudo apt-get install python3-pip
sudo pip3 install 6-rosdep
sudo 6-rosdep
```
完成上述操作后,重新执行以下命令以初始化和更新 `rosdep` 数据库[^1]:
```bash
sudo rosdep init
rosdep update
```
---
#### 方法二:删除已存在的默认源文件并重置
有时,默认的 `sources.list.d/20-default.list` 文件已经存在,可能会导致冲突。可以通过手动移除该文件再重新初始化来解决:
```bash
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
sudo rosdep init
```
随后再次尝试更新数据源:
```bash
rosdep update
```
这种方法适用于那些因重复初始化而引发的问题[^2]。
---
#### 方法三:创建缺失的目标目录结构
某些情况下,目标路径 `/etc/ros/rosdep/sources.list.d/` 并未被正确创建,从而阻止了后续的操作。此时可手工建立必要的目录层次结构:
```bash
sudo mkdir -p /etc/ros/rosdep/sources.list.d/
```
之后继续按照标准流程进行初始化与更新工作流[^3]:
```bash
sudo rosdep init
rosdep update
```
---
#### 方法四:调整主机解析配置规避连接拒绝错误
对于 `[Errno 111] Connection refused` 类型的错误,可能是由于 DNS 解析不正常造成的。编辑系统的 hosts 文件加入正确的域名映射可以帮助绕过此类障碍:
```bash
sudo gedit /etc/hosts
```
在打开后的文件中添加如下条目(假设 GitHub 地址可用):
```
192.30.253.118 raw.githubusercontent.com
```
保存更改退出后测试新的设置效果[^4]。
---
### 总结
以上四种方式分别针对不同原因引起的相关错误提供了应对策略。实际应用过程中可以根据具体情况选用合适的方法逐一排查直至成功为止。
阅读全文
相关推荐















