Как заставить 'man' работать в контейнере Alpine Linux Docker?

linux docker manpage alpine

1558 просмотра

3 ответа

Я не могу manработать в контейнере Alpine Linux Docker.

Потяните Alpine Linux и запустите контейнер.

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

Обновите индексы репозитория из всех удаленных репозиториев.

apk update

Установите manи man-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не работает вообще. Такое поведение противоречиво и неожиданно.

Автор: lukejanicke Источник Размещён: 08.11.2019 11:25

Ответы (3)


5 плюса

Вам нужно добавить

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

Так что есть man-страница

Автор: Eugen Mayer Размещён: 20.08.2016 04:25

4 плюса

Для меня, чтобы избавиться от этой ошибки:

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

Я использую:

export PAGER=less

тогда это работает

Автор: Rodrigo Gomez Размещён: 30.10.2016 09:10

0 плюса

На самом деле это связано с тем, как вы подключены к контейнеру. Я часто использую Alpine с LXD и, как правило, не могу читать никакую страницу руководства при подключении через lxc exec container ash. Я полагаю, докер подключит вас к контейнеру таким же образом.

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

Таким образом, вы можете использовать su -, и тогда вы сможете использовать человека:

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

Обратите внимание, что подсказка отличается после su -команды.

Кроме того, если я запускаю ssh-сервер внутри контейнера, а затем подключаюсь к этому контейнеру через ssh, тогда man работает отлично.

Автор: didier Размещён: 23.09.2016 03:16
Вопросы из категории :
32x32