ROS rosdep init和rosdep update解决办法 亲测有效

本文介绍了如何处理rosdepinit和rosdepupdate过程中常见的DNS问题,通过修改resolv.conf文件和设置https://ghproxy.com/代理,确保ros包更新顺利进行。详细步骤包括修改多个Python文件的URL源。

PS:我只是网络搬运工,rosdep init 和rosdep update出错的方法转载于Docotr Sun的主页:

https://gitlab.com/work_programme/learning_autoware/-/wikis/Install-Guide

前面的安装步骤大家都一样,所以只从rosdep init 和rosdep rosdep两个容易出错的步骤开始

1.rosdep init这一步容易显示如下错误,网上也有五花八门的解决办法:

 需要在/etc/resolv.conf文件中添加谷歌的DNS服务器地址,在nameserver 那一行下面如下地址:

 

2.rosdep update这一步经常出错,我之前也试了很多网上的教程,但是几乎都不成功,这是转的另一个解决方案,次次成功。总体是添加https://ghproxy.com/这个proxy server.

 在/usr/lib/python2.7/dist-packages/rosdep2/sources_list.py文件的311行try后面加上一句url="https://ghproxy.com/"+url 

在/usr/lib/python2.7/dist-packages/rosdistro/_ _init_ _.py文件的DEFAULT_INDEX_URL变为

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

在/usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py文件的第204行后面添加一句

gbpdistro_url = "https://ghproxy.com/" + gbpdistro_url

其余的是在网址https://raw.githubusercontent.com/添加"https://ghproxy.com/

  1.  /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py: line 36;
  2. /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py: line 72;
  3. /usr/lib/python2.7/dist-packages/rosdep2/rep3.py: line 39;
  4. /usr/lib/python2.7/dist-packages/rosdistro/manifest_provider/github.py: line 68, line 119(这个文件内是有68行和119行要添加)

添加完以后再rosddep uodate就可以继续下载更新了。这个方法亲测有效。

### 解决 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 发行版可能会有不同的路径名,请根据实际情况调整命令参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值