¿Cómo instalar páginas de manual en centos?

18

Nota: Esto se aplica a Centos 7. Si está buscando una respuesta de Debian, consulte esta pregunta . Esas respuestas no se duplicarán aquí.

Después de una instalación de centos 7, no puedo acceder a las páginas de manual:

# man ls
-bash: man: command not found

Traté de instalarlo a través de yum

# yum install man-pages
... ok

Pero otra vez:

# man ls
-bash: man: command not found

¿Por qué?

Rémi B.
fuente
1
Esto es extremadamente extraño, ya que man(1)es una pieza muy fundamental del sistema. Puede intentar reinstalar, es decir, ir yum reinstall /usr/bin/man.
vonbrand

Respuestas:

17

Para utilizar el comando man, también debe instalar el manpaquete antes o después de la man-pagesuna

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

Ahora 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.
fuente
2
Aparentemente, esto no funciona en centOS dentro de un contenedor acoplable. Sé que he conseguido que esto funcione en una máquina virtual centOS, pero no estoy seguro de por qué no funciona en el contenedor.
jersey bean
9
Ok, acabo de encontrar mi respuesta. Las imágenes de Docker centos están preconstruidas con tsflags = nodocs configuradas en /etc/yum.conf. Ver hub.docker.com/_/centos
jersey bean el
¡Sí tienes razón! +1 para el complemento. ¡Gracias!
Rémi B.
6

Tuve el mismo problema en mi contenedor acoplable y lo resolví comentando tsflags=nodocsen el /etc/yum.confarchivo, luego eliminé las páginas de manual y man-db y las reinstalé nuevamente. Funciona bien de esta manera.

$ vi /etc/yum.conf

Busque tsflagsen el archivo y agregue un comentario (#) delante de él:

#tsflags=nodocs

Ahora elimine man-db y man-pages si ya está instalado en su sistema:

$ yum remove man-pages man-db

Luego instálelos nuevamente:

$ yum install man-pages man-db

Ordenado!

R. S
fuente
Esta fue la salsa secreta para mi instalación de WSL centos75 en Windows.
Choy
4

La sintaxis en CentOS 7:

# yum install man-pages man-db man

La sintaxis en CentOS 6:

$ sudo yum install man man-pages

Fuente

simhumileco
fuente
0

Como señaló R. S , las imágenes oficiales de Docker de CentOS tienen la instalación de la página manual desactivada. Esto es cierto también para las imágenes oficiales de Docker de Fedora.

La forma más fácil de manejar esto es a través del siguiente sedcomando, que funcionará en cualquier sistema:

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

Esto producirá un mensaje de error que dice que no puede leer uno de los dos archivos, pero el que exista se actualizará para comentar la tsflags=nodocslínea. Al || truefinal se asegura que el comando devuelve el éxito independientemente de cualquier error, para evitar detenerse en los scripts.

Esto se puede usar en un RUNcomando en a Dockerfile, en cuyo caso debe usarlo antes de instalar más paquetes. Para los paquetes que ya haya instalado, las páginas de manual que normalmente vienen con ellas permanecerán desinstaladas y el paquete tendrá que volver a instalarse para traer las páginas del manual. Muchas de las páginas de manual del sistema base (como ls) están en el man-pagespaquete, pero otros paquetes, como gitincluyen sus propias páginas de manual y también necesitan ser reinstalados.

Eliminar y volver a instalar paquetes puede crear problemas de dependencia. Para evitar esto, en su lugar use:

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