rosdep init 及update报错的解决办法汇总(亲测)

ROS安装过程的临门一脚就是执行sudo rosdep init和rosdep update,可实际这一过程却问题频出,以下总结常见的问题及解决方法

一、sudo rosdep init  找不到命令提示

这个错误算是比较好解决的,相当于少包,本着缺啥补啥的原则,进行apt安装即可,但注意安装的rosdep版本

对于ROS Melodic(Ubuntu18.04)及以前版本,如ROS Kinetic(Ubuntu16.04),选择安装

sudo apt-get install python-rosdep

对于ROS Noetic(Ubuntu20.04),选择安装

sudo apt-get install python3-rosdep

以上相当于一个是python2一个是python3的区别

网络上还能搜索到sudo apt-get install python-rosdep2,这里不推荐尝试rosdep2,本人尝试了以后直接把安装好的ROS给卸载了,破坏了ROS环境

二、执行sudo rosdep init:ERROR: cannot download default sources list from......
执行rosdep update:ERROR: unable to process source......

我相信能搜到这篇文章的,多数是这个错误,总结一下,产生这个错误的原因就是:

网络被墙


2021.8月更新~现在国内对github的访问更加困难了,不建议采用除VPN以外的方法进行rosdep update

目前亲测可行的办法:

1.找一个VPN工具,如clash(自行搜索使用方法,github上有很多免费订阅可用https://github.com/ermaozi/get_subscribe

2.开启允许局域网连接(参考:clash win10开局域网代理_五味鱼头的草稿纸-CSDN博客_clash局域网代理

3.在Ubuntu上使用代理(参考:ubuntu 代理配置_初学者乐园的博客-CSDN博客_ubuntu 代理

export http_proxy=http://192.168.*.*:端口号

export https_proxy=http://192.168.*.*:端
### 解决 Ubuntu 上安装 ROS 时 `rosdep init` 和 `rosdep update` 报错的方法 当遇到 `rosdep init` 或者 `rosdep update` 命令报错的情况,通常是因为网络连接问题或者是默认的软件源不可达。为了有效解决问题,推荐采用清华大学开源镜像站作为替代方案。 #### 使用清华源配置 ROS 资源列表 对于中国用户来说,由于国际网络访问速度较慢或不稳定,可以考虑更换国内镜像站点来加速资源获取过程并减少错误发生的可能性。具体操作如下: 1. **备份原有 rosdep 配置** 在更改任何设置之前先做好数据保护措施是非常重要的。运行下面这条命令将会把当前所有的 rosdep 数据库保存下来: ```bash sudo mv /etc/ros/rosdep/sources.list.d/50-default.list /etc/ros/rosdep/sources.list.d/50-default.list.bak ``` 2. **创建新的 rosdep 源文件** 接着新建一个名为 `50-shadow-fixed.list` 的文件用于指定清华源地址: ```bash echo "yaml https://mirrors.tuna.tsinghua.edu.cn/ros/yaml/rosdep/base.yaml" | sudo tee /etc/ros/rosdep/sources.list.d/50-shadow-fixed.list ``` 3. **初始化 rosdep 并更新索引** 完成上述步骤之后再次尝试初始化以及刷新依赖关系数据库: ```bash sudo rosdep init rosdep update ``` 如果仍然存在无法解析域名或者其他类型的网络异常,则可能需要进一步排查本地网络环境或者防火墙策略等问题[^1]。 另外一种常见的处理方式是直接编辑 Python 文件中的 URL 地址以绕过某些特定网站被屏蔽所带来的影响。例如,在 `/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py` 中第 310 行附近加入代理前缀 `https://ghproxy.com/` 来替换原始链接的一部分内容[^4]。 需要注意的是,不同版本的操作系统和 ROS 发行版可能会有不同的路径名,请根据实际情况调整命令参数。
评论 36
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值