วิธีตั้งค่า MANPATH โดยไม่ใช้ค่าเริ่มต้นจะเป็นอย่างไร


14

ฉันได้เพิ่มไดเรกทอรีพิเศษ$PATHโดยการส่งออกPATH=/my/dirs:$PATH แต่ฉันไม่แน่ใจว่าควรทำเช่นเดียวกันMANPATHหรือไม่ เพราะค่าเริ่มต้นMANPATHว่างเปล่า แต่manคำสั่งทำงาน ผมพบว่าคำสั่งที่เรียกว่าและคู่มือการใช้ของมันกล่าวว่าmanpath If $MANPATH is set, manpath will simply display its contents and issue a warning.นี่หมายถึงการตั้งค่า MANPATH ไม่ใช่วิธีที่ถูกต้องในการเพิ่มไดเรกทอรีสำหรับmanคำสั่งเพื่อค้นหาหน้าเว็บด้วยตนเองหรือไม่

คำตอบ:


20

หากคุณเพียงแค่ตั้ง MANPATH มันจะแทนที่ค่าเริ่มต้นและคุณจะไม่สามารถเข้าถึง man man มาตรฐานได้ ตัวอย่างเช่นman lsทำงานก่อนตั้งค่า MANPATH แต่ไม่ทำงานหลังจากนั้น

ในการผนวกไดเรกทอรีค้นหาโดยไม่แทนที่ค่าเริ่มต้นให้นำหน้าโคลอนไปที่ MANPATH ดังนี้:

export MANPATH=":/path/to/custom/man"

การเพิ่มโคลอนช่วยให้คุณสามารถเข้าถึงทั้ง man page ของระบบมาตรฐานและหน้าที่กำหนดเองที่อ้างถึงในตัวแปร MANPATH

คำตอบนี้มาถึงคุณโดยmanpath (1) :

หากตั้งค่า $ MANPATH ไว้ manpath จะแสดงค่าแทนการพิจารณาทันที หาก $ MANPATH นำหน้าด้วยโคลอนค่าของตัวแปรจะถูกผนวกเข้ากับรายการที่พิจารณาจากเนื้อหาของไฟล์กำหนดค่า หากเครื่องหมายจุดคู่สิ้นสุดที่ค่าในตัวแปรรายการที่กำหนดจะถูกผนวกเข้ากับเนื้อหาของตัวแปร หากค่าของตัวแปรมีเครื่องหมายโคลอนคู่ (: :) ดังนั้นรายการที่ถูกกำหนดจะถูกแทรกในช่วงกลางของค่าระหว่างสองโคลอน


1

IMO คุณควรเพิ่มไดเรกทอรีที่กำหนดเองในตอนท้ายของ PATH

PATH=$PATH:/my/dirs

นี่คือเพื่อให้ไดเรกทอรีที่กำหนดเองของคุณไม่ผ่านระบบไบนารี / libs และเป็นปัญหาด้านความปลอดภัยเล็กน้อย

คุณตั้งค่า MANPATH ด้วยวิธีเดียวกัน (MANPATH ว่างเปล่าตามค่าเริ่มต้น)

MANPATH=$MANTPATH:/my/dirs

คุณไม่จำเป็นต้องตั้งค่า MANPATH ด้วยแพ็คเกจที่ทำงานได้ดีดังนั้นถ้ามันไม่เสียหายอย่าแก้ไขมันและถ้ามันพังคุณอาจจะรายงานข้อผิดพลาดได้ดีกว่า;)

เพิ่มลงใน ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs

พิมพ์ผิดในคำสั่งที่สอง? MANPATH=$MANTPATH:/my/dirs อาจจะเป็น:MANPATH=$MANPATH:/my/dirs
kevinarpe

คุณหมายถึงอะไรโดย "แพ็คเกจที่มีพฤติกรรมดี"? ฉันมีเครื่องมือทั้งชุดที่ไม่ได้ติดตั้งในสถานที่ปกติ (กลุ่ม HPC มักจะใส่ / opt) พวกเขาควรลงทะเบียน man pages อย่างไรโดยไม่ใช้ $ MANPATH
i_grok

"แพ็คเกจที่ทำงานได้ดี" ถูกเขียนขึ้นเพื่อใช้เส้นทางมาตรฐานและตัวแปรสภาพแวดล้อม แพคเกจที่มีพฤติกรรมไม่ดีใช้มาตรฐานอย่างน้อยกับ Ubuntu เส้นทางเช่น / opt หรือไม่ใช้ตัวแปรสภาพแวดล้อมและทำให้คุณสังเกตเห็น "ฉันมีชุดเครื่องมือทั้งหมดที่ไม่ได้ติดตั้งในสถานที่ปกติ (กลุ่ม HPC มักจะวางไว้ สิ่งต่างๆใน / opt) "
Panther
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.