Как установить man-страницы на centos?


18

Примечание: это относится к Centos 7. Если вы ищете ответ Debian, посмотрите этот вопрос . Эти ответы не будут дублироваться здесь.

После установки centos 7 я не могу получить доступ к страницам руководства:

# man ls
-bash: man: command not found

Я пытался установить его через Yum

# yum install man-pages
... ok

Но опять же:

# man ls
-bash: man: command not found

Почему?


1
Это очень странно, так как man(1)это очень фундаментальная часть системы. Вы можете попытаться переустановить, то есть, пойти yum reinstall /usr/bin/man.
vonbrand

Ответы:


17

Для того , чтобы использовать команду человека, необходимо также установить manпакет до или после man-pagesодного

# yum install man-pages
... ok
# yum install man
... ok

Сейчас manустановлено

# man ls


NAME
      ls - list directory contents

SYNOPSIS
      ls [OPTION]... [FILE]...

DESCRIPTION
      List information about the FILEs (the current directory by default).  Sort entries alphabetically if none of -cftuvSUX nor --sort.

      Mandatory arguments to long options are mandatory for short options too. ...

2
По-видимому, это не работает на CentOS внутри док-контейнера. Я знаю, что получил это для работы на CentOS VM, но не уверен, почему он не работает в контейнере.
Джерси бин

9
Хорошо, я только что нашел свой ответ. Изображения Docker Centos предварительно собираются с помощью tsflags = nodocs, установленной в /etc/yum.conf. См. Hub.docker.com/_/centos
боб Джерси

Да, ты прав! +1 за дополнение. Благодарность!
Реми Б.

6

У меня была та же проблема в моем док-контейнере, и я решил ее, закомментировав tsflags=nodocsв /etc/yum.confфайле, затем удалил man-страницы и man-db и заново установил их. Это прекрасно работает таким образом.

$ vi /etc/yum.conf

Найдите tsflagsфайл и добавьте комментарий (#) перед ним:

#tsflags=nodocs

Теперь удалите man-db и man-страницы, если они уже установлены в вашей системе:

$ yum remove man-pages man-db

Затем установите их снова:

$ yum install man-pages man-db

Сортировка!


Это был секретный соус для моей установки WSL centos75 на Windows.
Чой


0

Как было отмечено Р.С. , в CentOS официальные изображения Docker есть ручная установка страница отключена. Это верно и для официальных изображений Docker в Fedora.

Самый простой способ справиться с этим - использовать следующую sedкоманду, которая будет работать в любой системе:

sed -i -e '/tsflags=nodocs/s/^/#/' /etc/yum.conf /etc/dnf/dnf.conf || true

Это приведет к появлению сообщения об ошибке, в котором говорится, что он не может прочитать один из двух файлов, но какой бы файл ни существовал, он будет обновлен, чтобы закомментировать tsflags=nodocsстроку. В || trueконце гарантирует, что команда возвращает успех, независимо от каких-либо ошибок, чтобы избежать остановки в сценариях.

Это можно использовать в RUNкоманде a Dockerfile, и в этом случае вы должны использовать ее перед установкой каких-либо дополнительных пакетов. Для пакетов, которые вы уже установили, все страницы руководства, которые обычно поставляются с ними, останутся неустановленными, и пакет придется переустановить, чтобы открыть страницы руководства. Многие из справочных страниц базовой системы (например, ls) находятся в man-pagesпакете, но другие пакеты, такие как, gitвключают свои собственные страницы справочника и также должны быть переустановлены.

Удаление и повторная установка пакетов может создать проблемы с зависимостями. Чтобы избежать этого, вместо этого используйте:

yum -y reinstall man-pages git
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.