docker ros-pcl 的 apt-get 中的未确定错误 (109)

Undetermined error (109) in docker apt-get for ros-pcl

我正在尝试在 docker 中获取一些 ros 包。我有这样的命令:

RUN apt-get update && cat /srv/hm_ros.system | xargs apt-get install -y --no-install-recommends  && \
rm -rf /var/lib/apt/lists/* && apt-get clean

其中 hm_ros.system 是一个包含以下内容的文件:

python3-rosinstall 
ros-noetic-fkie-multimaster 
ros-noetic-mavlink 
ros-noetic-pcl-ros 
ros-noetic-robot-state-publisher 
ros-noetic-ros-base
ros-noetic-rosbridge-suite 
ros-noetic-rosserial 
ros-noetic-tf 
ros-noetic-unique-id
ros-noetic-urdf 
ros-noetic-xacro

但我总是得到错误:

E: Failed to fetch http://packages.ros.org/ros/ubuntu/po... Undetermined Error [IP: 64.50.236.52 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

其他包好像都找到了。请注意,在此之前我有:

RUN apt-get clean && apt-get update && apt-get install -y --no-install-recommends lsb-release gnupg2 && \
DEBIAN_FRONTEND="noninteractive" apt-get -y --no-install-recommends install tzdata \
&& apt-get clean && rm -rf /var/lib/apt/lists/* 

RUN add-apt-repository universe && add-apt-repository multiverse
RUN echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" >> /etc/apt/sources.list.d/ros-latest.list && \
apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

更有趣的是,如果我单独安装它,即:

RUN apt-get update && apt-get install -y --no-install-recommends ros-noetic-pcl-ros && \
rm -rf /var/lib/apt/lists/* && apt-get clean

然后就不会出现这个问题了,虽然有将近1gb的依赖。 知道为什么会发生这种情况吗?

虽然我还不知道是什么原因,但是可以使用下面的安装命令解决:

sudo apt-get \
    -o Acquire::BrokenProxy="true" \
    -o Acquire::http::No-Cache="true" \ 
    -o Acquire::http::Pipeline-Depth="0" \ 
install -y \
    package ...