如何在Ubuntu Docker镜像上安装man手册页?

14

我使用以下Dockerfile来构建镜像并启动容器。但是一旦进入容器,我仍然找不到man页。有谁知道如何解决这个问题吗?

$ cat Dockerfile 
FROM ubuntu
RUN apt -y update && apt -y upgrade
RUN apt-get -y install build-essential
RUN apt-get -y install vim
RUN apt-get -y install man
RUN apt-get -y install gawk
RUN apt-get -y install mawk

$ man man
No manual entry for man
See 'man 7 undocumented' for help when manual pages are not available.
$ find /usr/share/man /usr/local/share/man  -type f

如果您想要使用manpages,您需要安装“manpages”软件包。 - programmerq
2个回答

25

您需要更改容器中的/etc/dpkg/dpkg.cfg.d/excludes文件。您可以使用以下命令在Dockerfile中完成此操作:

RUN echo 'path-exclude=/usr/share/doc/*' >> /etc/dpkg/dpkg.cfg.d/excludes
RUN sed -i 's:^path-exclude=/usr/share/man:#path-exclude=/usr/share/man:' \
        /etc/dpkg/dpkg.cfg.d/excludes

接着,在Dockerfile中进行另一个更新以安装man页面。

RUN apt-get update && \
    apt-get install -y \
        man \
        manpages-posix

3
在处理路径时,避免使用 / 作为 sed 分隔符: sed -i 's,^path-exclude=/usr/share/man/,#path-exclude=/usr/share/man/,' /etc/dpkg/dpkg.cfg.d/excludes - ryenus

11

有一个更简单的方法来启用MAN命令。

在终端中,只需执行以下命令:

unminimize

它会询问您是否要继续 [Y/n] 只需按:

Y

这将需要一些时间来完成所有处理过程。

之后,请尝试:

man man

就这么简单

感谢@kazushi


这并不简单,我该如何在 Docker 文件中按下 "Y"? - Slava
对我来说,在unminimize之后需要安装man-dbroot# apt install man-db - Tim C.
对我来说,在unminimize之后需要安装man-dbroot# apt install man-db - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接