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: 的相关文章

  • Python:在祖父母目录中导入文件

    等级制度 scripts web script1 py tests script2 py common utils py 我如何在 script1 和 script2 中导入 utils 并且仍然能够单独运行这些脚本 即 python sc
  • 在 NetBeans 8.0 中调试需要 sudo 运行的 C++ 程序

    我知道这个问题在不同的网站上被问过很多次 但我找不到任何如何解决我的问题的建议 我正在 NetBeans 8 0 中使用 GCC 4 8 1 需要 直观地 调试一个访问原始设备的程序 因此我需要通过 sudo 运行它 我的项目属性设置是 运
  • Pip 在全局安装,而不是在虚拟环境中 --- 即使所有路径和 pip 都指向正确的位置

    我读过了pip 安装在全局站点包中而不是 virtualenv https stackoverflow com questions 20952797 pip installing in global site packages instea
  • Docker-Compose + Postgres:/docker-entrypoint-initdb.d/init.sql:权限被拒绝

    我有以下 docker compose 文件 version 3 services postgres image postgres 11 2 alpine environment POSTGRES PASSWORD root POSTGRE
  • Liferay:从 init() 获取 PortletID 和 companyID

    也许通过 init PortletConfig 中的 PortletConfig 问题是使用 PortletConfigImpl portletConfig getPortletId 不再允许 因为在 package properties
  • 直接调用__init__的目的是什么?

    我很难弄清楚我遇到的一些代码的用途 代码有一个类Foo 其中有一个 init 带有多个参数的方法 根据我迄今为止对 Python 的了解 通过调用Foo bar 它将将此字符串作为参数传递给 init 我认为这应该相当于构造函数 但我遇到的
  • OS X Lion 中的 easy_install pip 需要 sudo 吗?

    我从工作中的 Snow Leopard 转到家里的 Lion 安装 我不记得必须 sudo easy install pip 狮子需要这个吗 在我这样做之前我遇到了错误 pip 最终出现在这里 some computer which pip
  • 云平台- sudo:无法解析主机[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在 Amazon EC2 和 openstack 上使用 Linux 作为基于云的服务器 当尝试运行时 sudo chhown ubun
  • H2“runscript”命令将所有表名变成大写

    我有一个 sql 脚本 它只是模式定义 该脚本是 mysql 哑巴的修改版本 去掉 h2 不喜欢的坏字符 脚本运行并将架构插入到 h2 数据库中 但问题是所有数据库名称均为大写 xyz 转换为 XYZ 我需要它们保持小写 因为我的应用程序正
  • Expect 脚本中 sudo 的问题

    我正在运行以下脚本 usr bin expect f set user lindex argv 0 set pass lindex argv 1 set PATH lindex argv 2 set INV PATH lindex argv
  • 当还必须切换用户时使用 JSch 到 SFTP

    我在 Java 客户端中使用 JSch 连接到远程服务器并使用 SFTP 获取一些文件 以下代码对我来说运行良好 JSch ssh new JSch JSch setConfig FileTransferConstants STRICT H
  • Python 检查 __init__ 参数

    在过去的几个小时里我一直在试图解决这个问题 但我即将放弃 如何确保在 python 中只有匹配的特定条件才会创建对象 例如 假设我想创建一个对象 Hand 并且仅当初始化程序中有足够的 Fingers 时才初始化 Hand 请以此作为类比
  • 在我的 Mac 上以 root 身份运行 pip 时出现“权限被拒绝”

    我开始使用我的 Mac 来安装 Python 包 就像我在工作中使用 Windows PC 一样 然而在我的 Mac 上我经常遇到没有权限写入日志文件或站点包时出错 于是我想到了跑步pip install
  • init 中的 Swift 通用约束

    我有通用的 我希望能够用特定的约束来初始化它 约束仅用于初始化 班里的其他人并不关心 这是一个简化的示例 struct Generic
  • 错误:执行 gem 时... (Gem::FilePermissionError)

    我检查了所有其他类似的答案 没有一个与我的完全一样 这些解决方案也不适合我 gem environment and sudo gem environment给出相同的结果 RubyGems Environment RUBYGEMS VERS
  • Fabric sudo 无密码解决方案

    这个问题是关于最佳实践的 我正在使用 Fabric 运行部署脚本 我的部署用户 deploy 需要 sudo 来重新启动服务 因此 我使用 Fabric 中的 sudo 函数在脚本中运行这些命令 这工作正常 但在脚本执行期间提示输入密码 我
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • 为什么我们应该在 def __init__(self, n) -> None: 中使用 -> ?

    我们为什么要使用 gt in def init self n gt None 我读了以下摘录来自 PEP 484 https www python org dev peps pep 0484 the meaning of annotatio
  • 从 python 中运行需要 root 访问权限的命令

    我最近一直在玩子进程 当我做的越来越多 我发现自己需要 root 访问权限 我想知道是否有一种简单的方法可以为需要子进程模块的命令输入 root 密码 因此 当系统提示我输入密码时 我的脚本会提供密码并运行命令 我知道这是一种不好的做法 因
  • AWS EMR 引导操作为 sudo

    我需要更新 etc hosts适用于我的 EMR 集群 EMR AMI 4 3 中的所有实例 整个脚本无非就是 bin bash echo e ip1 uri1 gt gt etc hosts echo e ip2 uri2 gt gt e

随机推荐

  • 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