我想从 ubuntu 镜像构建一个 docker 镜像。需要手动将默认 sh 从 dash 更改为 bash。(因为它需要安装许多包含 bash 脚本的 rpm 包)
dpkg-reconfigure dash
Run Code Online (Sandbox Code Playgroud)
有没有什么方法可以让这个动作在没有人类行为的情况下自动进行?
在我的 Dockerfile 中,它可能写为(方法 1)
RUN dpkg-reconfigure dash
Run Code Online (Sandbox Code Playgroud)
我尝试了另一种方法(方法 2)
RUN ln -sf bash /bin/sh
Run Code Online (Sandbox Code Playgroud)
但是,这两种方法都行不通。
mga*_*lgs 33
在这里粘贴 Daniel 的评论作为答案,因为它不依赖于dpkg-reconfigure.
获取选项:
debconf-show dash
Run Code Online (Sandbox Code Playgroud)
将此特定选项设置为false:
echo "dash dash/sh boolean false" | debconf-set-selections
Run Code Online (Sandbox Code Playgroud)
并实际重新配置包:
DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
Run Code Online (Sandbox Code Playgroud)
这从 Dockerfile 对我有用:
# make /bin/sh symlink to bash instead of dash:
RUN echo "dash dash/sh boolean false" | debconf-set-selections
RUN DEBIAN_FRONTEND=noninteractive dpkg-reconfigure dash
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使 debconf 只询问高级或关键问题[1]。
前任:
dpkg-reconfigure -p critical dash
Run Code Online (Sandbox Code Playgroud)
dpkg-reconfigure 将使用 debconf 脚本中定义的默认答案。您还可以使用 debconf-get-selections 为非交互式安装选择不同的答案[2]。
| 归档时间: |
|
| 查看次数: |
20489 次 |
| 最近记录: |