【发布时间】:2019-09-29 16:45:15
【问题描述】:
我正在从需要安装包 rti-connext-dds-5.3.1 的 Dockerfile 构建映像。 (building ROS2 on Linux时的依赖之一)。
该软件包的问题在于它显示的许可协议必须向下滚动,然后通过在提示符上输入“是”来接受。我似乎无法将 Dockerfile 命令设置为自动滚动和/或自动接受此许可协议:
按 Enter 或 Space 键不会向下滚动许可证,它只会显示空白行。按下任何其他键只会将其打印到控制台。此时构建卡住了,无法继续。
这里是 Dockerfile:
FROM ubuntu:bionic
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y apt-utils debconf-utils gnupg2 lsb-release && \
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 421C365BD9FF1F717815A3895523BAEEB01FA116 && \
echo "deb http://packages.ros.org/ros2/ubuntu `lsb_release -sc` main" > /etc/apt/sources.list.d/ros2-latest.list && \
apt-get update && \
apt-get install -y rti-connext-dds-5.3.1
WORKDIR /home
我已经试过了:
- 根据Is it possible to answer dialog questions when installing under docker? 的答案设置
DEBIAN_FRONTEND=noninteractive的不同方式 - 基于How to accept license agreement during docker build?设置
DEBIAN_FRONTEND=teletype - 在apt-get install without debconf prompt 的基础上使用
debconf-set-selections# echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \ # echo "rti-connext-dds-5.3.1 rti-connext-dds-5.3.1/license string y" | debconf-set-selections && \ # echo "rti-connext-dds-5.3.1 rti-connext-dds-5.3.1/license string yes" | debconf-set-selections && \ - 管道
yes命令(这更糟,因为我什至无法使用 Ctrl+C 中止)# apt-get install -y -q rti-connext-dds-5.3.1 # yes "yes" | apt-get install -y -q rti-connext-dds-5.3.1
如何在安装过程中自动滚动和/或自动接受许可证?
【问题讨论】:
-
常规 RTI 安装程序有一个
--mode unattended命令行标志来安装并自动接受许可证,也许尝试通过它? -
@JohnnyWillemsen 我正在通过
apt-get安装它,我认为没有办法通过--mode。
标签: docker installation dockerfile apt-get data-distribution-service