ฉันจะติดตั้งไฟล์ man page ได้อย่างไร?


44

ฉันจะติดตั้งระบบไฟล์ man page ได้อย่างไร?

ตัวอย่างเช่นหากฉันมีไฟล์ man page examplecommand.1ฉันจะติดตั้งมันได้อย่างไรเพื่อที่ฉันจะพิมพ์man examplecommandเพื่อดูได้

คำตอบ:


53
  1. ก่อนอื่นให้ดูว่าส่วนไหนที่เป็นหน้าเพจของคุณ 1หากคำสั่งของมันก็อาจจะเป็นส่วน คุณสามารถอ่านmanpage สำหรับmanคำสั่งไอคอน Manpageเพื่อดูคำอธิบายของส่วนต่างๆและหมายเลขที่เกี่ยวข้อง

  2. คัดลอก man page ของคุณเป็น/usr/local/share/man/man1/(เปลี่ยน1เป็นหมายเลขส่วนของคุณหากจำเป็น) คุณยังสามารถติดตั้งได้/usr/share/man/man1/แต่ควรใช้localไดเรกทอรีสำหรับไฟล์ที่ติดตั้งโดยไม่ต้องใช้ตัวจัดการแพ็คเกจ APT:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. เรียกใช้mandbคำสั่ง นี่จะเป็นการอัพเดทmanฐานข้อมูลภายในของ:

    sudo mandb
    
  4. แค่นั้นแหละ! คุณควรจะสามารถดู man page ได้โดยการเรียกใช้:

    man 1 examplecommand
    

อ้างอิง:


1
มีตัวเลือกหรือวิธีปฏิบัติที่แนะนำเมื่อคุณต้องการหลีกเลี่ยงการใช้sudoหรือไม่?
Jorge Bucaran

@JorgeBucaran ดูคำตอบด้านล่างเกี่ยวกับวิธีการตั้งค่า MANPATH ซึ่งช่วยให้คุณใส่หน้าคู่มือในช่องว่างที่คุณสามารถเขียนได้เช่น $ HOME / lib / share / man หรือที่อื่นเช่นนั้น
nealmcb

ฉันคิดว่าคุณสามารถเก็บ man page ไว้ข้างใต้/usr/local/manรวมทั้งแนะนำในการแมป PATH กับ MANPATH /etc/manpath.configได้
jarno

10

หากคุณต้องการติดตั้ง man page แบบโลคัล :

หากMANPATHไม่มีการตั้งค่าหรือรวมถึงองค์ประกอบที่ว่างเปล่า (เริ่มต้นคือมี:ปลายมี:หรือมี::) แล้ว<path>/share/manจะได้รับการสืบค้นโดยอัตโนมัติสำหรับหน้าคนเมื่อใดก็ตามที่<path>/binเป็นส่วนหนึ่งของPATH, ค่าทั้งหมดของ<path>

นี่เป็นวิธีที่ง่ายมากในการเพิ่ม man pages สำหรับซอฟต์แวร์ที่ติดตั้งในเครื่อง มีรายละเอียดบางอย่างในการมีman manpathและ/etc/manpath.configผมไม่เห็นเอ่ยถึงใด ๆ ของการทำแผนที่ทั่วไปจาก แต่จะ<path>/bin<path>/share/man


ฉันผนวกเข้าMANPATH=<local path to the man pages>:$MANPATHกับ${HOME}/.bashrc(ไม่ใช่เซสชันการเข้าสู่ระบบ) หรือ${HOME}/.profile(เซสชันการเข้าสู่ระบบ) ของคุณ ในกรณีของฉันฉันตั้งค่าไดเรกทอรีท้องถิ่นสำหรับ man pages in ${HOME}/share/man/ซึ่งเลียนแบบระบบไฟล์ Linux แบบคลาสสิก ฉันสร้างขึ้น${HOME}/share/man/man.1จากนั้นจะมีลิงก์สัญลักษณ์ไปยังตำแหน่งของไฟล์examplecommand.1ทุกที่ที่โปรแกรมติดตั้งวางไว้ (การกำหนดค่า 'คำนำหน้า') การเปิดตัวman examplecommandค้นหาหน้าคนในจุด ด้วยวิธีนี้การติดตั้งเป็นแบบโลคัลแม้ว่าไม่ใช่ระบบ
XavierStuvw

นี่เป็นความคิดเห็นที่น่าสนใจมากและเป็นเส้นทางสำหรับคนที่ต้องการตั้งค่าเส้นทางของพวกเขา (ซึ่งพวกเขาคาดหวังไว้แล้ว) สำหรับไบนารีท้องถิ่น อย่างไรก็ตามฉันไม่คิดว่าการแมปทั่วไป<path>/bin-> <path>/share/manมีอยู่จริง เมื่อเปิด strace (1) manด้วยMANPATH=:/nonexistingdirฉันเห็นสิ่งต่อไปนี้: - <path>/bin-> <path>/man นี่เป็นระบบ Debain Buster
Aktau

1

คำตอบโดย @ ntc2 ด้านบนคือคนที่ควรดู ฉันต้องการเพิ่มความเห็นพิเศษบางอย่างที่ไม่พอดีในส่วนความคิดเห็น:

วิธีการโดย @ ntc2 ให้เส้นทางสำหรับคนที่ต้องการตั้งค่าเส้นทางของพวกเขา (ซึ่งพวกเขาคาดหวังไว้แล้ว) สำหรับไบนารีท้องถิ่น

แต่ผมไม่คิดว่าการทำแผนที่ทั่วไป<path>/bin-> ที่มีอยู่สำหรับทุกเส้นทางใน<path>/share/man $PATHดูเหมือนว่าการทำแผนที่นี้โดยเฉพาะคือหลีกเลี่ยงเมื่อในคำถามคือ$PATH $HOME/binเมื่อดำเนินการ strace (1) ต่อmanด้วยMANPATH=:/nonexistingdirฉันเห็นการค้นหาต่อไปนี้:

สำหรับองค์ประกอบใด ๆ$PATHที่ไม่ได้$HOME/bin

  • <path>/bin -> <path>/man
  • <path>/bin -> <path>/bin/man
  • <path>/bin -> <path>/share/man
  • <path>/bin -> <path>/bin/share/man

สำหรับ $HOME/bin

  • $HOME/bin -> $HOME/man

ฉันไม่รู้ว่าทำไมมันข้ามคนอื่น นี่เป็นระบบ Debian Buster มันอาจแตกต่างกันในระบบอื่น ๆ

สำหรับผมที่นี้หมายถึงว่าเส้นทางที่ปลอดภัยที่สุดในการติดตั้งที่มนุษย์หน้าเป็นเช่นก็รับประกันที่จะพบว่ามันอยู่ใน<path>/man$PATH

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