为什么“ man”命令消失了?


9

我发现我的man命令消失了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)

但是manman-pages所有这些都在我的盒子上:

# 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

哪儿man去了?

更新1

尝试重新安装man,但提示以下错误:

......
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

更新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: -

您可以将输出从添加ls -l /usr/bin/man到上面的问题中吗(实际上也包括在内stat /usr/bin/man)。
八月比特托尼2016年

卸载man,删除/usr/bin/man并安装man-pages然后再安装man
GAD3R 2016年

@EightBitTony:添加ls -l /usr/bin/man和的输出stat /usr/bin/man,谢谢!
南晓

RPM使用cpio了存档格式,这就是为什么我们在尝试替换文件时看到cpio错误/usr/bin/man
GAD3R

3
好吧,我不知道为什么-但是您/usr/bin/man似乎是目录,而不是单个可执行文件。就像有人在/ usr / bin / man上复制了手册页目录一样。
AugustBitTony

Answers:


13

我怀疑我们是否能够告诉您它的去向,但是您应该只能够使用来重新安装它yum

yum reinstall man

yum不会在运行时检查文件是否存在yum install,它只会检查已安装了哪些软件包的数据库。如果有人删除了程序包管理器之外的所有文件,它将不会知道(您可以检查它,但默认情况下不会)。yum reinstall即使它认为该软件包已经存在,using 也会告诉它进行安装。

根据已删除或删除的内容,您可能需要进行yum reinstall ...其他操作,例如man-pages

根据新信息进行了更新:

由于某种原因,您/usr/bin/man是一个目录,而不是单个文件,并根据内容判断它看起来像是某人做了奇怪的mv /usr/share/man /usr/bin事情或奇怪的事情。

您将无法简单地撤消此操作-您需要进行调查,查看已损坏或移动的内容并进行纠正。

可能只能够删除/usr/bin/man及其内容,然后重新安装manman-pages使用,yum但无需进行更多调查就不清楚了。


我尝试重新安装man,但提示“ unpacking of archive failed on file /usr/bin/man: cpio: rename”错误。您能帮忙检查一下吗?首先十分感谢!
南晓

@删除/usr/bin/man并重新安装man修复它,非常感谢!
南晓

2
@NanXiao:如果/usr/bin/man是目录,谁知道还搞砸了?此时,建议您备份文件并从头开始重新安装操作系统。而且不要让您三岁的孩子下次玩root shell。;)
Ilmari Karonen

0

RPM使用cpio其存档格式。这就是为什么我们cpio在尝试替换文件时看到错误/usr/bin/man

你需要removepurge man那么你需要安装man-pages

打开终端并输入以下命令:

yum check-update
yum update
yum install man-pages
yum install man

最初的问题表明了这一点,yum install man并且yum install man-pages没有任何区别,因为yum认为它们已经安装。
八月比特托尼2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.