ฉันจะติดตั้งระบบไฟล์ man page ได้อย่างไร?
ตัวอย่างเช่นหากฉันมีไฟล์ man page examplecommand.1ฉันจะติดตั้งมันได้อย่างไรเพื่อที่ฉันจะพิมพ์man examplecommandเพื่อดูได้
ฉันจะติดตั้งระบบไฟล์ man page ได้อย่างไร?
ตัวอย่างเช่นหากฉันมีไฟล์ man page examplecommand.1ฉันจะติดตั้งมันได้อย่างไรเพื่อที่ฉันจะพิมพ์man examplecommandเพื่อดูได้
คำตอบ:
ก่อนอื่นให้ดูว่าส่วนไหนที่เป็นหน้าเพจของคุณ 1หากคำสั่งของมันก็อาจจะเป็นส่วน คุณสามารถอ่านmanpage สำหรับmanคำสั่ง
เพื่อดูคำอธิบายของส่วนต่างๆและหมายเลขที่เกี่ยวข้อง
คัดลอก man page ของคุณเป็น/usr/local/share/man/man1/(เปลี่ยน1เป็นหมายเลขส่วนของคุณหากจำเป็น) คุณยังสามารถติดตั้งได้/usr/share/man/man1/แต่ควรใช้localไดเรกทอรีสำหรับไฟล์ที่ติดตั้งโดยไม่ต้องใช้ตัวจัดการแพ็คเกจ APT:
sudo cp examplecommand.1 /usr/local/share/man/man1/
เรียกใช้mandbคำสั่ง นี่จะเป็นการอัพเดทmanฐานข้อมูลภายในของ:
sudo mandb
แค่นั้นแหละ! คุณควรจะสามารถดู man page ได้โดยการเรียกใช้:
man 1 examplecommand
manคำสั่ง
mandbคำสั่ง
/usr/bin/dh_installmanหากคุณสามารถอ่าน Perl ติดตั้งพร้อมกับdebhelperแพคเกจ/usr/local/manรวมทั้งแนะนำในการแมป PATH กับ MANPATH /etc/manpath.configได้
หากคุณต้องการติดตั้ง 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ค้นหาหน้าคนในจุด ด้วยวิธีนี้การติดตั้งเป็นแบบโลคัลแม้ว่าไม่ใช่ระบบ
<path>/bin-> <path>/share/manมีอยู่จริง เมื่อเปิด strace (1) manด้วยMANPATH=:/nonexistingdirฉันเห็นสิ่งต่อไปนี้: - <path>/bin-> <path>/man นี่เป็นระบบ Debain Buster
คำตอบโดย @ 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
sudoหรือไม่?