文章目录
- 序言
- 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:
![](https://i-blog.csdnimg.cn/blog_migrate/a7e493e6b6766d00cc3dc19696fb3f60.png)
直接拷贝命令安装依赖包就行了
- 安装依赖2: 用apt install安装不了的3个包
![](https://i-blog.csdnimg.cn/blog_migrate/ca8f1403e1bc7c56702b687d0a8e3f6f.png)
需要从Gazebosim官网下载三个.deb文件,如下,注意~bionic前面是波浪线
![](https://i-blog.csdnimg.cn/blog_migrate/a70389954040dededc74f01a790d5cfb.png)
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
![](https://i-blog.csdnimg.cn/blog_migrate/60d4a25595630db226c34a554c2f4943.png)
- 而且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