Чому команда «людина» зникає?


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також).
ВісімBitTony

видаліть 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 pages через / 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але без додаткових розслідування не буде ясно.


Я намагаюся перевстановити людину, але це підказує unpacking of archive failed on file /usr/bin/man: cpio: renameпомилку. Не могли б ви допомогти перевірити? Заздалегідь дякую!
Нан Сяо

@ Видаліть /usr/bin/manі перевстановіть manвиправити це, thx дуже!
Нан Сяо

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

Оригінальне запитання показує, що yum install manі yum install man-pagesнічого не змінило, оскільки yumвважає, що вони вже встановлені.
EightBitTony
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.