¿Por qué desaparece el comando "man"?

9

Me parece que el mancomando desaparece en mi RHEL7:

# man ls
bash: man: command not found...
# which man
/usr/bin/which: no man in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/go/bin:/root/gocode/bin:/root/bin:/opt/linuxki)

Pero manya man-pagesestán todos en mi caja:

# yum install man
Loaded plugins: auto-update-debuginfo, langpacks, product-id, search-disabled-repos, subscription-manager
Package man-db-2.6.3-9.el7.x86_64 already installed and latest version
Nothing to do
# yum install man-pages
Loaded plugins: auto-update-debuginfo, langpacks, product-id, search-disabled-repos, subscription-manager
Package man-pages-3.53-5.el7.noarch already installed and latest version
Nothing to do

¿De dónde manir?

Actualización 1 :

Intente volver a instalar man, pero aparece el siguiente error:

......
Running transaction
  Installing : man-db-2.6.3-9.el7.x86_64                                                                                                 1/1
Error unpacking rpm package man-db-2.6.3-9.el7.x86_64
error: unpacking of archive failed on file /usr/bin/man: cpio: rename
  Verifying  : man-db-2.6.3-9.el7.x86_64                                                                                               1/1

Failed:
  man-db.x86_64 0:2.6.3-9.el7

Actualización 2

# ls -lt /usr/bin/man
total 4
drwxr-xr-x. 2 nan nan   81 Mar 24 22:30 man1
drwxr-xr-x. 2 nan nan 4096 Mar 24 22:30 man7
# stat /usr/bin/man
  File: ‘/usr/bin/man’
  Size: 28              Blocks: 0          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 67811254    Links: 4
Access: (0755/drwxr-xr-x)  Uid: ( 1000/     nan)   Gid: ( 1000/     nan)
Context: unconfined_u:object_r:bin_t:s0
Access: 2016-04-15 17:47:56.613595324 +0800
Modify: 2016-03-24 22:30:30.000000000 +0800
Change: 2016-04-08 11:08:45.605815500 +0800
 Birth: -
Nan Xiao
fuente
¿Puede agregar el resultado de ls -l /usr/bin/mansu pregunta anterior (en realidad, incluir stat /usr/bin/mantambién).
EightBitTony
desinstalación man, quite /usr/bin/mane instale man-pagesa continuación, instalarman
GAD3R
@EightBitTony: ¡Agregue salida de ls -l /usr/bin/many stat /usr/bin/man, gracias!
Nan Xiao
RPM utiliza cpiosu formato de archivo, por lo que vemos un error de cpio cuando intentamos reemplazar el archivo/usr/bin/man
GAD3R
3
Bueno, no sé por qué, pero /usr/bin/manparece ser un directorio, en lugar de un solo ejecutable. Es casi como si alguien hubiera copiado el directorio de páginas de manual sobre / usr / bin / man.
EightBitTony

Respuestas:

13

Dudo que alguna vez podamos decirte dónde fue, pero deberías poder reinstalarlo usando yum.

yum reinstall man

yumno verifica si existen archivos cuando ejecuta yum install, solo verifica una base de datos de los paquetes que se han instalado. Si alguien elimina todos los archivos fuera del administrador de paquetes, no lo sabrá (puede hacer que lo revise, pero no lo hace de manera predeterminada). El uso yum reinstallle dice que haga la instalación aunque piense que el paquete ya está allí.

Dependiendo de lo que se haya eliminado o eliminado, es posible que necesite yum reinstall ...otras cosas como man-pages.

Actualizado a la luz de nueva información:

Por alguna razón, su /usr/bin/manes un directorio, en lugar de un solo archivo, y a juzgar por el contenido, parece que alguien ha hecho algo extraño mv /usr/share/man /usr/bino extraño.

No podrá simplemente deshacer esto: debe investigar, ver qué se ha roto o movido y corregirlo.

Es posible que pueda eliminar /usr/bin/many su contenido y luego volver a instalarlo many man-pagesusarlo, yumpero sin más investigación no será claro.

OchoBitTony
fuente
Intento reinstalar man, pero aparece un unpacking of archive failed on file /usr/bin/man: cpio: renameerror " ". ¿Podrías ayudar a comprobar? Muchas gracias de antemano!
Nan Xiao
@ Quitar /usr/bin/many reinstalar manarreglarlo, gracias mucho!
Nan Xiao
2
@NanXiao: Si /usr/bin/manes un directorio, ¿quién sabe qué más está jodido? En este punto, recomendaría hacer una copia de seguridad de sus archivos y reinstalar el sistema operativo desde cero. Y no dejes que tu hijo de tres años juegue con un shell de root la próxima vez. ;)
Ilmari Karonen
0

RPM utiliza cpiocomo su formato de archivo. Es por eso que estamos viendo un cpioerror al intentar reemplazar el archivo /usr/bin/man.

Necesita removey purge manluego necesita instalar man-pages.

Abra la Terminal y escriba los siguientes comandos:

yum check-update
yum update
yum install man-pages
yum install man
GAD3R
fuente
La pregunta original muestra eso yum install many yum install man-pagesno hizo ninguna diferencia porque yumcree que ya están instalados.
EightBitTony