Como instalar páginas de manual no centos?

18

Nota: Isso se aplica ao Centos 7. Se você estiver procurando por uma resposta Debian, consulte esta pergunta . Essas respostas não serão duplicadas aqui.

Após a instalação do centos 7, não consigo acessar as páginas de manual:

# man ls
-bash: man: command not found

Eu tentei instalá-lo via yum

# yum install man-pages
... ok

Mas novamente:

# man ls
-bash: man: command not found

Por quê?

Rémi B.
fonte
1
Isso é extremamente estranho, pois man(1)é uma parte muito fundamental do sistema. Você pode tentar reinstalar, ou seja, vá yum reinstall /usr/bin/man.
vonbrand

Respostas:

17

Para utilizar o comando homem, você também deve instalar o manpacote antes ou depois do man-pagesum

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

Agora manestá instalado

# 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. ...
Rémi B.
fonte
2
Aparentemente, isso não funciona no centOS dentro de um contêiner de docker. Sei que consegui que isso funcionasse em uma VM do centOS, mas não sei por que não está funcionando no contêiner.
feijão Camisa
9
Ok, acabei de encontrar minha resposta. As imagens do Docker centos são pré-construídas com tsflags = nodocs definido no /etc/yum.conf. Veja hub.docker.com/_/centos
jersey bean
Sim, você está certo! +1 para o complemento. Obrigado!
Rémi B.
6

Eu tive o mesmo problema no contêiner do docker e o resolvi comentando tsflags=nodocsno /etc/yum.confarquivo. Em seguida, removi as páginas de manual e o man-db e reinstalei-as novamente. Funciona bem assim.

$ vi /etc/yum.conf

Pesquise tsflagsno arquivo e adicione um comentário (#) na frente dele:

#tsflags=nodocs

Agora remova o man-db e as man-pages se ele já estiver instalado no seu sistema:

$ yum remove man-pages man-db

Em seguida, instale-os novamente:

$ yum install man-pages man-db

Classificado!

R. S
fonte
Este foi o molho secreto para minha instalação do WSL centos75 no Windows.
Choy
4

A sintaxe no CentOS 7:

# yum install man-pages man-db man

A sintaxe no CentOS 6:

$ sudo yum install man man-pages

Fonte

simhumileco
fonte
0

Conforme apontado por R. S , as imagens oficiais do Docker do CentOS têm a instalação manual da página desativada. Isso vale também para as imagens oficiais do Docker do Fedora.

A maneira mais fácil de lidar com isso é através do seguinte sedcomando, que funcionará em qualquer sistema:

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

Isso produzirá uma mensagem de erro dizendo que não é possível ler um dos dois arquivos, mas o que existir, será atualizado para comentar a tsflags=nodocslinha. O || trueno final garante que o comando retorne êxito, independentemente de quaisquer erros, para evitar a interrupção nos scripts.

Isso pode ser usado em um RUNcomando em a Dockerfile; nesse caso, você deve usá-lo antes de instalar outros pacotes. Para pacotes que você já instalou, as páginas de manual que normalmente vêm com eles permanecerão desinstaladas e o pacote precisará ser reinstalado para trazer as páginas de manual. Muitas das páginas de manual do sistema base (como ls) estão no man-pagespacote, mas outros pacotes, comogit as próprias páginas de manual, também precisam ser reinstaladas.

Remover e reinstalar pacotes pode criar problemas de dependência. Para evitá-los, use:

yum -y reinstall man-pages git
Curt J. Sampson
fonte