11

我无法man在 Alpine Linux Docker 容器中工作。

拉取 Alpine Linux 并启动一个容器。

docker pull alpine:latest
docker run -t -i alpine /bin/ash

从所有远程存储库更新存储库索引。

apk update

安装manman-pages.

apk add man man-pages

安装软件包及其文档。

apk add curl
apk add curl-doc

尝试查看手册页。

/ # man curl
/usr/share/man/mandoc.db: No such file or directory
man: outdated mandoc.db lacks curl(1) entry,
     consider running  # makewhatis /usr/share/man
more: -s: No such file or directory
/ # 

什么?


更新

按照@EugenMayer 的建议添加mdicml-apropos,我可以开始curl --manual工作,但不能man curl。不幸的是,gnupg --manual根本不起作用。此行为不一致且出乎意料。

4

3 回答 3

6

您需要添加

apk add mdocml-apropos

然后对于每个包,您都需要 man 包

apk add curl-doc

之后你就可以使用 man 了,就像你已经做过的那样

apk add man man-pages mdocml-apropos

这个来源(加上那里缺少的 mdocml-apropos)是https://wiki.alpinelinux.org/wiki/Alpine_Linux:FAQ#Why_don.27t_I_have_man_pages_or_where_is_the_.27man.27_command.3F但有趣的是,我无法让它工作我。

还试图export TERM=xterm查看是否存在iteractivity问题,但事实并非如此。

makewhatis /usr/share/man也手动尝试过,但没有成功。

不过有趣的是:

ls  -la /usr/share/man/man1/curl-config.1.gz
-rw-r--r--    1 root     root          1687 Aug  4 15:07 /usr/share/man/man1/curl-config.1.gz

所以有一个手册页

于 2016-08-20T16:25:58.613 回答
5

对我来说,要摆脱这个错误:

man man
more: -s: No such file or directory

我用:

export PAGER=less

然后它工作

于 2016-10-30T21:10:23.987 回答
0

实际上,这与您连接到容器的方式有关。我在 LXD 上使用了很多 alpine,当通过lxc exec container ash. 我想码头工人以同样的方式将你连接到容器。

$ lxc exec alp03 ash
~ # man man
more: -s: No such file or directory

所以你可以使用su -,然后你就可以使用 man :

~ # su -
alp03:~# man man
MAN(1P)                    POSIX Programmer's Manual
(...)

请注意命令后的提示有何不同su -

此外,如果我在容器内运行 ssh 服务器,然后通过 ssh 连接到该容器,那么 man 工作正常。

于 2016-09-23T15:16:59.903 回答