sudo rosdep init 出现 ERROR: cannot download default sources list from:

2023-05-16

sudo rosdep init 出现 ERROR: cannot download default sources list from:

针对目前安装ROS出现一下指令的错误

sudo rosdep init
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.

出现原因

通过点击该链接,发现无法进入该链接
在这里插入图片描述在进行rodep init 的时候需要联网访问这个网址,而这个网址无法进入,所以会报错。目前网上很多方法,但是我尝试了,在不进行XXX的情况下都没能实现,可以参考
https://zhuanlan.zhihu.com/p/43345574
https://link.zhihu.com/?target=https%3A//www.cnblogs.com/liwe1004/p/11795932.html
https://link.zhihu.com/?target=https%3A//blog.csdn.net/maolong2725/article/details/82530722

解决思路

在进行rosdep init 的时候访问raw.githubusercontent.com,这个其实就是github的用户数据服务器。rosdep 程序下载的就是github.com/ros/rosdistro这个包里的yaml文件。
因此得到一个思路就是:首先下载github.com/ros/rosdistro包,将下列文件里面的默认的进入raw.githubusercontent.com去下载文件的url地址全部改为本地的下载的包的地址。

解决过程

第一步

首先进入github.com/ros/rosdistro去把这个包下载下来。

第二步

修改这个包中rosdep/source.list.d/下的文件20-default.list,将这个文件中指向raw.githubusercontent.com的url地址全部修改为指向本地文件的地址,也就是该下载好的包的地址:以下是我修改好的样例:

# os-specific listings first
yaml file:///home/xxx/rosdistro/rosdep/osx-homebrew.yaml osx

# generic
yaml file:///home/xxx/rosdistro/rosdep/base.yaml
yaml file:///home/xxx/rosdistro/rosdep/python.yaml
yaml file:///home/xxx/rosdistro/rosdep/ruby.yaml
gbpdistro file:///home/xxx/rosdistro/releases/fuerte.yaml fuerte

# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead

***注意:***在py语言中:url本地文件地址格式是:file://+文件地址,后面更改其他文件中地址的时候也一样。

第三步

修改/usr/lib/python2.7/dist-packages/rosdep2/main.py中的默认的url的地址,但是经过代码阅读,该文件中并不存在指向raw.githubusercontent.com的代码。而且经过对代码的分析,提示报错的代码就在该文件中

def command_init(options):
    try:
        data = download_default_sources_list()
    except URLError as e:
        print('ERROR: cannot download default sources list from:\n%s\nWebsite may be down.' % (DEFAULT_SOURCES_LIST_URL))
        return 4
    except DownloadFailure as e:
        print('ERROR: cannot download default sources list from:\n%s\nWebsite may be down.' % (DEFAULT_SOURCES_LIST_URL))

由于其调用了download_default_sources_list()这个函数
而该函数就在/usr/lib/python2.7/dist-packages/rosdep2该文件夹下面的sources_list.py文件里面。而这个文件里面的代码则进行了访问raw.githubusercontent.com的操作,因此修改该默认url即可。

# default file to download with 'init' command in order to bootstrap
# rosdep
DEFAULT_SOURCES_LIST_URL = 'file:///home/xxx/rosdistro/rosdep/sources.list.d/20-default.list'

# seconds to wait before aborting download of rosdep data

总结:该步实际并不是修改 main.py 文件里面默认url的指向地址,而是修改同文件夹下的sources_list.py文件里面的代码

第四步

修改以下两个文件里面的代码:

/usr/lib/python2.7/dist-packages/rosdep2/rep3.py
/usr/lib/python2.7/dist-packages/rosdistro/__init__.py

下面是我分别修改后的样例:

/usr/lib/python2.7/dist-packages/rosdep2/rep3.py文件:
# location of targets file for processing gbpdistro files
REP3_TARGETS_URL = 'file:///home/xxx/rosdistro/releases/targets.yaml'

# seconds to wait before aborting download of gbpdistro data
/usr/lib/python2.7/dist-packages/rosdistro/__init__.py的文件:

# index information

DEFAULT_INDEX_URL = 'file:///home/xxx/rosdistro/index-v4.yaml'

def get_index_url():

然后进行sudo rosdep init :
在这里插入图片描述

总结

首先下载github.com/ros/rosdistro这个包
然后修改以下四个文件的默认的url使他指向本地的这个包

(这个包的地址)/rosdep/source.list.d/20-default.list
 /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py
 /usr/lib/python2.7/dist-packages/rosdep2/rep3.py
 /usr/lib/python2.7/dist-packages/rosdistro/__init__.py

本文主要参考链接:https://zhuanlan.zhihu.com/p/107218921。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sudo rosdep init 出现 ERROR: cannot download default sources list from: 的相关文章

  • 我可以使用 __init__.py 定义全局变量吗?

    我想定义一个在包的所有子模块中都可用的常量 我以为最好的地方是在 init py根包的文件 但我不知道该怎么做 假设我有几个子包 每个子包都有几个模块 如何从这些模块访问该变量 当然 如果这是完全错误的 并且有更好的选择 我想知道 你应该能
  • ssh 和 sudo: pam_unix(sudo:auth): 对话失败,auth 无法识别 [用户名] 的密码

    我遇到了一个奇怪的行为 试图通过 ssh 使用无密码登录来运行 rsync 作为 sudo 这是我对数十台服务器所做的事情 我在连接到几个 Ubuntu 18 04 4 服务器时遇到了这个令人沮丧的问题 PREMISE 使用帐户 USER
  • 在shell脚本中传递su密码

    如何使用 su 在 shell 脚本中传递密码 不带 sudo 和 except 我试过 echo password su root c 但它不起作用 最好的方法是sudo 但是由于您不需要最佳解决方案 因此您可以使用script反而 sl
  • __init__ 的目的

    我读了一些书 但无法像我想的那样完全理解这一点 我正在从 LPTHW 教程中制作一个 选择你自己的冒险 小游戏 这是完整的脚本 http codepad org YWVUlHnU http codepad org YWVUlHnU 我不明白
  • `alias sudo="sudo "` 是如何工作的?

    研究将当前用户的别名传递给sudo命令 我发现以下内容在 ArchWiki 上 https wiki archlinux org index php Sudo Passing aliases 传递别名 如果您使用很多别名 您可能会注意到它们
  • ObjC-为什么分别实现[alloc]和[init]方法时不正确? [复制]

    这个问题在这里已经有答案了 切勿在未重新分配指向该对象的任何指针的情况下初始化该对象 举个例子 不要这样做 NSObject someObject NSObject alloc someObject init 如果对 init 的调用返回某
  • 在 NetBeans 8.0 中调试需要 sudo 运行的 C++ 程序

    我知道这个问题在不同的网站上被问过很多次 但我找不到任何如何解决我的问题的建议 我正在 NetBeans 8 0 中使用 GCC 4 8 1 需要 直观地 调试一个访问原始设备的程序 因此我需要通过 sudo 运行它 我的项目属性设置是 运
  • swift - 通过重写 init 从故事板初始化视图控制器

    我在故事板中定义了一个 ViewController 实例 我可以通过以下方式初始化它 var myViewController UIStoryboard name Main bundle nil instantiateViewContro
  • Android系统服务是从哪里启动的?

    在 嵌入式Android 一书中 它说 在 init rc 中 只有一个操作才会导致命令的执行 服务声明仅用于描述服务 它们实际上并不启动任何东西 第246页 那么 Android系统服务 例如servicemanager vold 是从哪
  • 无法通过 sudo 使用 RVM 安装的 Ruby

    我已成功配置 RVM 以使用 Ruby 1 9 2 一切都很好 但是当我尝试使用以下命令运行 Ruby 时sudo它说找不到 RVM 或 Ruby ruby v ruby 1 9 2p0 2010 08 18 revision 29036
  • 如何将 .sks 文件添加到现有 Swift/Sprite-Kit 项目?

    我开始遵循 Ray Wenderlich 的 太空入侵者 教程 但分歧很大 我现在有 3 个 SKScene 我的标题屏幕 我的主游戏屏幕和我的最终关卡 游戏结束屏幕 我添加了标题屏幕和游戏结束场景 它们都有 sks 文件 主游戏屏幕没有
  • 如何设置 SUDO_ASKPASS 环境变量?

    设置 SUDO ASKPASS 环境变量意味着什么 你怎么做呢 我在哪里声明 我正在尝试使用 shell 脚本在几分钟后关闭我的计算机并使用 java 启动此脚本 所以我不确定我会使用 SUDO ASKPASS为了这 基本上的价值 SUDO
  • 将符号链接添加到脚本到 rc.d 文件夹中以在系统启动期间启动进程[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我使用的是 Fedora 15 我正在尝试添加 MYSql 守护进程以在系统启动期间启动 我明白我必须将其添加到rc5 d因为它是默认目标并且是gra
  • 如何使用 sudo 执行 bash 函数?

    我尝试导出该函数 然后使用 bash 执行它 但这不起作用 export f my func sudo bash c my func bash my func command not found 如果我尝试在不使用 sudo 的情况下使用
  • 我们可以确保 `+ (nonnull instancetype)sharedInstance;` 的可空性吗?

    这是一个关于如何优雅地规避可空性的问题init in NSObject class 这是一个经典的 Objective C 实现 instancetype sharedInstance static dispatch once t once
  • 如果我多次调用 nsobject init 会发生什么?它会增加保留计数吗?

    我对 Objective C 还很陌生 在内存管理方面遇到了很多麻烦 但我仍然了解一点 如果我有一个对象 例如 NSArray myArray 我会这样做 myArray NSArray alloc initWithObjects obj1
  • sudo 使用什么 shell

    我很抱歉 因为这一定是其他人问过的问题 但这似乎是谷歌证明 我试图弄清楚正在调用什么 shell 因为我遇到了不一致的情况 如果我这样做 我的脚本将无法工作sudo 但是如果我的话确实有效sudo bash 然而当我sudo echo 0
  • Zend 框架引导问题

    我已经在新安装 Zend Framework 应用程序一段时间了 但我不知道发生了什么 我有两个想要使用的自定义操作助手 并且我想在引导程序中初始化它们 但似乎我的 init 函数根本没有被调用 在启动应用程序的 index php 中 我
  • Debian 的简单初始化脚本中出现“;;意外”语法错误

    我有这个初始化脚本来运行 uwsgi 它有效 但仅限于启动命令 所有其他命令都会给我这个错误 etc init d uwsgi 27 etc init d uwsgi Syntax error unexpected 我正在阅读的教程中似乎应
  • Coverage.py 无法发现子目录中没有 init.py 文件的测试

    当我运行 python 覆盖范围时 我总是需要一个空的 init py测试子目录中的文件以获得运行测试的覆盖范围 这是 python2 软件包的要求 但不是 python3 的要求 为了重现 我执行了以下操作 先决条件是 python3 p

随机推荐

  • Ubuntu配置apt软件源

    清华大学开源镜像网站 xff08 帮助页面 xff09 https mirrors tuna tsinghua edu cn help AOSP 阿里云开源镜像网站 https opsx alibaba com mirror 网易开源镜像网
  • python3 fnmatch和fnmatchcase

    你想使用 Unix Shell 中常用的通配符 比如 py Dat 0 9 csv 等 去匹配文本字符串 xff0c fnmatch 模块提供了两个函数 fnmatch 和 fnmatchcase xff0c 可以用来实现这样的匹配 用法如
  • python unicodedata 处理Unicode 字符串

    你正在处理 Unicode 字符串 xff0c 需要确保所有字符串在底层有相同的表示 span class token comment coding utf 8 span span class token comment 你正在处理 Uni
  • python 插入排序

    问题 xff1a 数组排序 插入排序 xff0c 向已经有序一组序列中 xff0c 插入一个新的元素 默认第一个列表元素为已经排序好的元素 xff0c 从第二个元素进行比较 xff0c 已经排序好的元素 xff0c 重大到小 xff0c 依
  • 分治策略-归并排序

    问题 xff1a 数组排序 分治策略 归并排序 xff1a 1 是合并这些子问题的解 2 分解原问题 xff0c 递归求解 span class token comment coding utf 8 span span class toke
  • 求股票最大收益问题

    问题 xff1a 求股票最大收益 xff0c 股票每天的价格 xff1a 100 113 110 85 105 102 86 63 81 101 94 106 101 79 94 90 97 买进和卖出都在当天结束后进行 xff0c 在某一
  • Python pip 包的安装和卸载 使用。

    Python pip 包的安装和卸载 使用 xff08 一 xff09 pip 安装 一般 来说 Python 需要什么包 直接 pip install 包 即可 但是 这种方法太慢 因为他通过美国的服务器下载 提高 pip 速度 这里提供
  • jdk1.8安装和环境变量配置

    一 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 第一次是安装 jdk xff0c 第二次是安装 jre 建议两个都安装在同一个java文件夹中的不同文件夹中 xff08 不能都安装在java文件夹的根目录下 xff0c jdk
  • python 读取PDF(tabula和pdfminer和pdfplumber的简单操作)

    一 pdfminer 读取PDF 官方文档 xff1a http www unixuser org euske python pdfminer 这里针对python3 1 模块安装 xff1a pip install i https pyp
  • 一区即将要洗的DVD片子

    101 Dalmatians Animated 2009 SE 101斑点狗 预计2009年发行特别版 12 Monkeys 05 10 2005 COM DOC 12只猴子 预计2005年5月10日发行扩展版 加评论和记录片等 2001
  • UML — 五大关系

    在UML教学视频中 xff0c 关系有四种 xff0c 而课本中有五种 xff0c 其实就是多加了一种 xff0c 那么下面我一并总结出来 1 关联关系 通俗点说就是关联关系就是两个对象他们之间的联系和关系 关联分两种 xff1a xff0
  • rhel6.5救援模式修复系统

    如果系统中很多重要的部分被删除了例如 boot下的所有东西 xff0c 则可以通过救援模式 root 64 dazzle1 桌面 mkdir backup root 64 dazzle1 桌面 cp etc fstab backup fst
  • 利用nvm安装npm失败的解决办法

    最近发现在安装nodejs后 xff0c 想使用npm发现自己的电脑上没有安装npm xff0c 可是网上都说安装了nodejs后会自动安装npm xff0c 找了很久解决办法发现没有合适的解决办法 xff0c 于是自己尝试了很久发现了问题
  • chrome 浏览器的缩略图怎么没有了?就是浏览过网页的缩略图,一点击就能打开网站。

    这个问题 xff0c 突然今天解决了 哈哈 分享 首先新标签页 点击左下角 最常访问的网站 点击 最常访问的网站 紧接着再点击被置顶端的 最常访问的网站 Ok xff0c 大功告成了 烦恼了几天的这个小功能 xff0c 有缩略图还是看着舒服
  • 史上最详细的PID教程——理解PID原理及优化算法

    Matlab动态PID仿真及PID知识梳理 云社区 华为云 huaweicloud com 位置式PID与增量式PID区别浅析 Z小旋 CSDN博客 增量式pid https zhuanlan zhihu com p 38337248 期望
  • ubuntu 20.04搭建samba文件共享服务器,实现基于Linux和Windows的共享文件服务

    ubuntu 20 04搭建samba文件共享服务器 xff0c 实现基于Linux和Windows的共享文件服务 超详细 一 xff0c samba的基本概念二 xff0c samba的安装三 xff0c samba的基本配置创建文件夹更
  • ERROR: Could not find a version that satisfies the requirement torchvision

    打docker时出错 xff0c ERROR Could not find a version that satisfies the requirement torchvision from versions 0 1 6 0 1 7 0 1
  • openstack 常用命令回顾及总结

    1 概述 命令实际执行基于OpenStack Queens版本 xff0c 更高版本亦可 xff0c 长时间未使用openstack有些遗忘 xff0c 整理后方便自己回顾学习 xff0c 仅供各位参考 xff0c 详细命令及参数可以参考o
  • TPMS方案 传感器 infineon篇 (SP35 SP37)

    TPMS方案 xff08 SP35 SP37 xff09 传感器 infineon篇 关于sp37无压力芯片目前已有方案 关于sp35传感器已经稳定出货 xff0c 欢迎咨询 硬件原理图 软件说明 xff1a 协议 调制方式 FSK 频率
  • sudo rosdep init 出现 ERROR: cannot download default sources list from:

    sudo rosdep init 出现 ERROR cannot download default sources list from 针对目前安装ROS出现一下指令的错误 span class token function sudo sp