如何让“男人”在阿尔派Linux Docker容器中工作?

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

拉高山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的build议来添加mdicml-apropos ,我可以使用curl --manual工作而不是man curl 。 不幸的是, gnupg --manual根本不起作用。 这种行为是不一致的和意外的。

你需要添加

 apk add mdocml-apropos 

然后为每个包你需要男人包

 apk add curl-doc 

和你一样,你会像以前那样去使用男人

 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 

所以有一个手册页

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

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

我用:

 export PAGER=less 

那么它的工作

事实上,这与你连接容器的方式有关。 我在LXD上使用了很多高级功能,通过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连接到这个容器,那么这个人是完美的工作。