Почему команда «человек» исчезает?

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)

Но так manи man-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также).
EightBitTony
удалить man, удалить /usr/bin/manи установить, а man-pagesзатем установитьman
GAD3R
@EightBitTony: добавьте вывод ls -l /usr/bin/manи stat /usr/bin/manспасибо!
Нан Сяо
RPM использует в cpioкачестве формата архива, поэтому мы видим ошибку cpio при попытке заменить файл/usr/bin/man
GAD3R
3
Ну, я не знаю почему - но вы, /usr/bin/manкажется, каталог, а не один исполняемый файл. Это почти как если бы кто-то скопировал каталог man-страниц в / usr / bin / man.
EightBitTony

Ответы:

13

Я сомневаюсь, что мы когда-нибудь сможем рассказать вам, куда он пошел, но вы должны просто переустановить его, используя yum.

yum reinstall man

yumне проверяет, существуют ли файлы при запуске yum install, он просто проверяет базу данных, в которой установлены пакеты. Если кто-то удалит все файлы за пределами диспетчера пакетов, он не узнает (вы можете проверить это, но по умолчанию этого не происходит). Использование yum reinstallговорит ему выполнить установку, даже если он думает, что пакет уже существует.

В зависимости от того, что было удалено или удалено, вам могут понадобиться yum reinstall ...другие вещи, например man-pages.

Обновлено в свете новой информации:

По какой-то причине, вы /usr/bin/man- это каталог, а не один файл, и, судя по содержанию, похоже, что кто-то сделал что-то странное mv /usr/share/man /usr/binили странное.

Вы не сможете просто отменить это - вам нужно исследовать, увидеть, что было сломано или перемещено, и исправить это.

Вы можете просто удалить /usr/bin/manи его содержимое, а затем переустановить manи man-pagesиспользовать, yumно без дополнительных исследований это не будет ясно.

EightBitTony
источник
Я пытаюсь переустановить человека, но он выдает " unpacking of archive failed on file /usr/bin/man: cpio: rename" ошибку. Не могли бы вы помочь проверить? Большое спасибо заранее!
Нань Сяо
@ Удалить /usr/bin/manи переустановить manисправить это, спасибо очень!
Нань Сяо
2
@NanXiao: Если /usr/bin/manкаталог, кто знает, что еще облажался? На этом этапе я бы рекомендовал сделать резервную копию ваших файлов и переустановить ОС с нуля. И не позволяйте вашему трехлетнему ребенку играть с корневой оболочкой в ​​следующий раз. ;)
Илмари Каронен
0

RPM использует в cpioкачестве формата архива. Вот почему мы видим cpioошибку при попытке заменить файл /usr/bin/man.

Вам нужно, removeа purge manзатем вам нужно установить man-pages.

Откройте Терминал и введите следующие команды:

yum check-update
yum update
yum install man-pages
yum install man
GAD3R
источник
Оригинальный вопрос показывает, что yum install manи yum install man-pagesне имеет никакого значения, потому что yumдумает, что они уже установлены.
EightBitTony