我正试图在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:无法获取http://packages.ros.org/ros/ubuntu/po...未确定错误[IP:64.50.236.52 80]E: 无法获取一些档案,可能运行apt-get-update或尝试使用--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 ...