如何让'man'在Alpine Linux Docker容器中工作?

luk*_*cke 8 linux manpage docker alpine-linux

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

拉高山Linux并启动一个容器.

docker pull alpine:latest
docker run -t -i alpine /bin/ash
Run Code Online (Sandbox Code Playgroud)

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

apk update
Run Code Online (Sandbox Code Playgroud)

安装manman-pages.

apk add man man-pages
Run Code Online (Sandbox Code Playgroud)

安装包及其文档.

apk add curl
apk add curl-doc
Run Code Online (Sandbox Code Playgroud)

尝试查看手册页.

/ # 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
/ # 
Run Code Online (Sandbox Code Playgroud)

什么?


更新

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

Eug*_*yer 5

你需要添加

apk add mdocml-apropos
Run Code Online (Sandbox Code Playgroud)

然后对于每个包,你需要man包

apk add curl-doc
Run Code Online (Sandbox Code Playgroud)

而且你会像以前一样去使用男人

apk add man man-pages mdocml-apropos
Run Code Online (Sandbox Code Playgroud)

这个的来源(加上那里缺少的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
Run Code Online (Sandbox Code Playgroud)

所以有一个联机帮助页

  • 还有一个快捷方式 - 如果你想为每个包安装-doc子包,运行`apk add docs`. (2认同)

小智 5

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

man man
more: -s: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我用:

export PAGER=less
Run Code Online (Sandbox Code Playgroud)

然后它起作用了