【ros/ros2】ros2 humble镜像制作过程中碰到的问题记录

news2024/11/29 12:42:43

文章目录

      • 序言
      • 1. 避免手动设置时区
      • 2. docker build中间某一步失败了
      • 3. sudo apt install ros-humble-desktop安装报错 E: Unable to locate package ros-humble-desktop
      • 4. 编译ros2 humnble时报错
      • 5. sudo rosdep init失败
      • 6. 下载依赖时失败:rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"执行失败
      • 7. 安装软件过程中报错:E: ubable to fetch some archives, maybe run apt-get update or try with --fix-missing?
      • 8. 按照nvidia官网安装cuda后报错:errors were encountered while processing
      • 9. cudnn安装过程中没有/usr/local/cuda/include目录
      • 10. 生成镜像推送过程中报错
      • 11. 使用docker commit容器镜像过大问题

序言

  • ubuntu20.04 ros2 humble镜像构建碰到的一些问题记录

1. 避免手动设置时区

  • 在Dockerfile开头添加

    ARG DEBIAN_FRONTEND=noninteractive
    ENV TZ=Asia/Shanghai
    

2. docker build中间某一步失败了

  • 不用删除镜像从头开始。docker的build操作默认是基于缓存的,即修改Dockerfile后,build任务会快速略过你之前成功的步骤,从你修改的那一步之后的操作,都会重新运行
  • 如果你想每一次build都不基于之前的缓存,在build 命令加上 --no-cache=true 参数
  • 构建过程中会生成中间容器,在删除镜像前需先删除容器
  • 所以最好是将多条命令拆分到独立的RUN命令; 保证每次可不用重跑上一步的RUN命令

3. sudo apt install ros-humble-desktop安装报错 E: Unable to locate package ros-humble-desktop

  • 参考 ubuntu安装ros2 humble,通过vcs下载源码安装

    vcs import --input https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos src
    
  • 下载失败的话可以先尝试如下命令,最好挂VPN下载

    wget https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos
    
  • 如果还不行,可将github替换为kgithub进行下载

    wget https://raw.githubusercontent.com/ros2/ros2/humble/ros2.repos
    vim ros2.repos后输入
    :%s/github/kgithub完成替换,再执行
    vcs import --input ros2.repos src
    

    下载可能较慢,失败了就多执行几次

  • 如果提示:command vcs not found

    sudo apt-get install python3-vcstool
    

4. 编译ros2 humnble时报错

  • cound not found TinyXML2(missing: TINYXML2_LIBRARY TINYXML2_INCLUDE_DIR)

  • 安装依赖库后解决

    sudo apt install libtinyxml2-dev
    

5. sudo rosdep init失败

  • website may be down

  • 按照这篇文章解决:docker容器中安装ros melodic

  • 如果报错:找不到python2.7目录,原因:

    对于ubuntu20或更高版本,目录在python3/dist-packages/rosdep2
    

6. 下载依赖时失败:rosdep install --from-paths src --ignore-src -y --skip-keys "fastcdr rti-connext-dds-6.0.1 urdfdom_headers"执行失败

参考文章:ros2 humble安装

  • 安装依赖1:

直接拷贝命令安装依赖包就行了

  • 安装依赖2: 用apt install安装不了的3个包

需要从Gazebosim官网下载三个.deb文件,如下,注意~bionic前面是波浪线

7. 安装软件过程中报错:E: ubable to fetch some archives, maybe run apt-get update or try with --fix-missing?

  • apt-get install your_software --fix-missing
  • 或者 换软件源,如阿里云

8. 按照nvidia官网安装cuda后报错:errors were encountered while processing

  • 而且nvcc --version也显示 command not found
  • 按照该文章 cuda镜像找不到nvcc 添加cuda环境变量后正常显示

9. cudnn安装过程中没有/usr/local/cuda/include目录

  • ‘/usr/local/cuda/include’: no such file or directory

  • 直接拷贝到cuda11.1/include目录下

  • 或者创建cuda11.1的软链接:

    sudo ln -s cuda cuda11.1
    

10. 生成镜像推送过程中报错

  • user is unauthorized to upload to

  • 报错原因:本地登录信息已经过期,需要重新登录

  • 解决方法:docker logout your_repo_site ; docker login your_repo_site

11. 使用docker commit容器镜像过大问题

  • 原因:镜像层叠多了,镜像臃肿

  • 解决方法1:进到容器将镜像打包,导出,再import导入打包容器生成新镜像

    • 进入容器,在根目录下执行
    tar --exclude=/proc --exclude=/sys --exclude=base_img.tar -cvf base_img.tar .
    
    • 退出容器,将压缩后的镜像拷贝到本地
    docker cp [容器id]:/base_img.tar ./
    
    • import为新镜像
    cat img.tar | sudo docker import - your_image:tag
    

 


【参考文章】
ubuntu安装ros2 humble
源码安装ros2 humble
could not find tinyxml2
docker commit之后镜像变大解决方法1
docker commit之后镜像变大解决方法2
docker commit之后镜像变大解决方法3

created by shuaixio, 2023.06.03

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/606956.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

局域网技术

共享信道的分配技术是局域网的核心技术,而这一技术又与网络的拓扑结构和传输介质有关。 拓扑结构: 1.总线型拓扑: 总线一种多点广播介质,所有的站点通过接口硬件连接到总线上。 传输介质主要是同轴电缆(基带和宽带…

chatgpt赋能python:Python取消空格:如何优化代码和改善SEO?

Python取消空格:如何优化代码和改善SEO? 如果你是一位有10年python编程经验的工程师,那么你一定深刻体会到代码的质量对软件应用的重要性。而在今天,随着搜索引擎优化(SEO)的发展和对网页排名的更高要求&a…

FastBup:计算机视觉大型图像数据集分析工具

0.简介 官方github网址项目目的:当前大规模图像数据集一团糟,数据量巨大但质量堪忧,有时候训练集、验证集、测试集会有重复数据造成数据泄露。FastBup可以识别重复项、近似重复项、异常图像、错误标注、异常值,在cpu上就可以处理…

Apache Kafka - 流式处理

文章目录 概述什么是流式处理流式处理的一些概念时间状态流和表的二元性时间窗口 流式处理的设计模式单个事件处理使用本地状态多阶段处理和重分区使用外部查找——流和表的连接流与流的连接乱序的事件重新处理 概述 Kafka被广泛认为是一种强大的消息总线,可以可靠…

Zabbix(一)

介绍 zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 功能组件 Server : Zabbix server是zabbix软件的核心组件 Zabbix agent向其报告可用性、系统完整性和统计信息 Zabbix server存储所有的配置信息、统计信息和操作信…

chatgpt赋能python:Python取出列表中的若干元素

Python取出列表中的若干元素 Python是一个功能强大且易于学习的编程语言,具有广泛的应用领域。在数据科学和机器学习中,Python是一个非常流行的语言,因为它具有许多用于处理数据和矩阵运算的库,例如NumPy和pandas。在Python的列表…

chatgpt赋能python:使用Python向微信发送信息的方法详解

使用Python向微信发送信息的方法详解 Python作为一种广泛应用于科学计算、数据处理等多个领域的编程语言,也可以用于自动化工作流程和自动发送微信消息等操作,大大提高了工作效率。如果你想在日常工作中用Python向微信群或个人发送自定义信息&#xff0…

linux网络设置

文章目录 一、查看网络配置1.查看网络接口信息——ifconfig1.1查看所有本机的网络的网络设备1.2设置网络接口参数1.3对指定的设备开启或关闭 2.查看主机名称——hostname2.1查看或临时设置当前主机名2.2永久设置主机名 3.查看路由表条目——route3.1查看当前主机路由表3.2添加路…

chatgpt赋能python:Python取消赋值:让你的代码更清晰简洁

Python取消赋值:让你的代码更清晰简洁 在Python编程中,我们经常需要使用赋值语句对变量进行赋值。但在某些情况下,我们也会发现需要取消赋值,即将已经赋过值的变量重新设为未赋值状态。这时,Python提供了一种特殊的语…

阿里云 Windows Server 2022 安装 Docker

阿里云Windows Server 2022 安装 Docker 文章目录 情景尝试正解 安装Docker管理工具安装Docker重启系统配置Docker系统路径配置Docker引擎(也许不用)启动Docker服务 情景 情景:最近一直在搞微服务,团队的服务器是阿里云的 Windows Server 2022&…

chatgpt赋能python:Python发展史:从诞生到井喷的开源之路

Python发展史:从诞生到井喷的开源之路 1. Python诞生的背景和历史 Python作为一种高级动态编程语言,在世界上得到了广泛应用,其诞生与发展也是有着自己的背景和历史的。20世纪90年代初期,著名的荷兰数学家Guido van Rossum开发了…

操作系统之文件管理

目录 认识文件管理 文件的逻辑结构 文件目录 文件的物理结构 文件存储空间管理 文件的基本操作 文件共享 文件保护 文件系统的全局结构 虚拟文件系统 内容摘自:4.1_1_初识文件管理_哔哩哔哩_bilibili 认识文件管理 文件——就是一组有意义的信息/数据集合…

chatgpt赋能python:Python可以用C语言吗?——一份详细解读

Python可以用C语言吗?——一份详细解读 Python和C语言是两种常见而重要的编程语言。Python被广泛应用于各种领域,从人工智能到数据科学,而C语言则是系统编程,操作系统和编译器方面最受欢迎的语言之一。许多人认为Python和C语言没…

pikachu靶场总结

目录 一.暴力破解 1.基于表单的暴力破解 2.验证码绕过(on server) 3.验证码绕过(client) 4.token防爆破 二.Cross-Site Scripting 1.先了解XSS 2.反射型xss(get) 3.反射型xss(post&…

[SPSS] SPSS统计分析软件简介

SPSS的英文缩写来源于以下两个 ① Statistical Package for Social Science(社会科学统计软件包) ② Statistical Product and Service Solutions(统计产品与服务解决方案) SPSS是一种专业的统计分析软件。为用户提供了直观的图形化菜单界面,用户的数据管理和统计…

C++——多态与虚表

目录 1.多态的实现 2.虚表 2.1虚函数重写是怎么实现的 2.2多态的原理 2.3静态绑定与动态绑定 3.单继承体系中的虚函数表 ​编辑4.多继承体系中的虚函数表 5.菱形继承的虚函数表 6.菱形虚拟继承的虚函数表 1.多态的实现 在C中,要想实现多态,必…

认识elasticSearch并安装

一、介绍 定义:简称es,本质是一个开源的nosql数据库。主要用于全文检索,所以我们又称它为搜索引擎框架; 用途:实时数据搜索、日志采集分析 特点: 检索快。面对PB级的海量数据,用传统sql方式…

solr快速上手:配置从mysql同步数据(五)

0. 引言 上一节我们已经配置了新的索引,但是数据还是手动添加的,并没有实现自动从数据库同步,所以这一节,继续来实现从mysql同步数据到solr solr快速上手:solr简介及安装(一) solr快速上手&a…

chatgpt赋能python:Python中取某个元素的技巧

Python 中取某个元素的技巧 作为一种强大而灵活的编程语言,Python 常常被用来处理各种数据集合,如列表、元组、字典等。在处理这些数据集合的过程中,取某个元素的需求很常见,同时也有多种实现方法。在本文中,我们将介…

python学习-进阶基本知识点总结

(一)正则表达式 1、正则表达式 字符类 [abc]:匹配 “a”、“b” 或 “c” 中的任意一个字符。abc:除了 “a”、“b” 和 “c” 以外的任何字符。[a-z]:匹配任何小写字母。[A-Z]:匹配任何大写字母。[0-9]&…