背景:我过去已经能够在我的 Raspberry Pi4 中构建和运行 ROS Kinetic 和 ROS2 eloquent 容器。
我正在尝试构建并运行 ROS noetic。但是我收到错误。 为了证明这一点,我做了最简单的事情
docker pull ros:noetic
那我就做
docker image ls
我可以看到图像就在那里
但是当我这样做时
docker run -it ros:noetic
我明白了
Fatal Python error: pyinit_main: can't initialize time
Python runtime state: core initialized
PermissionError: [Errno 1] Operation not permitted
Current thread 0xb6ff1460 (most recent call first):
<no Python frame>
我想知道发生了什么事以及如何解决这个问题
我的怀疑是,由于 noetic 使用的是 Python 3 而不是 2,所以由于版本原因,有些东西会失败
评论:我知道 ROS Kinetic 使用 python 2,但我假设 ROS2 eloquent 使用 Python 3!现在我发现它也使用python 2!
我已经能够在我的 Ubuntu 桌面计算机上构建并运行 ROS noetic 容器。 所以我认为这是一个树莓派问题。不过似乎可以在 RPi 上原生安装 noetic,所以我想知道是否是 Noetic Docker 镜像的问题...
主机上的下一个命令帮助我:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC 648ACFD622F3D138
echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list.d/buster-backports.list
sudo apt update
sudo apt install -t buster-backports libseccomp2
这不是 docker 问题,因为如果您在另一台机器上执行此操作,它就可以工作。这是一个与如何获得时间有关的问题。
也许它可以帮助你:
经过一系列谷歌搜索并尝试不同的解决方案后,我在我的 rpi4 上安装了 64 位版本的 ubuntu,之后它运行得非常好。 rpi 安装程序是刷新新操作系统的一种快速且简单的方法: https://www.raspberrypi.com/software/