ทำไมคำสั่ง“ มนุษย์” จึงหายไป?


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 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แต่โดยไม่ต้องตรวจสอบเพิ่มเติมว่ามันจะไม่ชัดเจน


ฉันพยายามติดตั้ง man ใหม่ แต่มีข้อความแจ้งunpacking of archive failed on file /usr/bin/man: cpio: renameข้อผิดพลาด "" คุณช่วยตรวจสอบได้ไหม ขอบคุณมากล่วงหน้า!
น่านเสี่ยว

@ ลบ/usr/bin/manและติดตั้งใหม่manแก้ไขขอบคุณมาก!
น่านเสี่ยว

2
@NanXiao: ถ้า/usr/bin/manเป็นไดเร็กตอรี่ใครจะรู้ว่ามีอะไรผิดพลาดบ้าง ณ จุดนี้ฉันขอแนะนำให้สำรองไฟล์ของคุณและติดตั้งระบบปฏิบัติการใหม่อีกครั้งตั้งแต่เริ่มต้น และอย่าให้การเล่นสามปีของคุณกับเชลล์รูทครั้งต่อไป ;)
Ilmari Karonen

0

RPM ใช้cpioเป็นรูปแบบไฟล์เก็บถาวร นั่นคือเหตุผลที่เราเห็นข้อผิดพลาดขณะพยายามแทนที่ไฟล์cpio/usr/bin/man

คุณต้องremoveและแล้วคุณจะต้องติดตั้งpurge manman-pages

เปิด Terminal และพิมพ์คำสั่งต่อไปนี้:

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

คำถามเดิมแสดงให้เห็นว่าyum install manและyum install man-pagesไม่ได้สร้างความแตกต่างเพราะyumคิดว่าพวกเขาติดตั้งแล้ว
EightBitTony
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.