เส้นทางในการค้นหาหน้า 'man' เป็นอย่างไร


10

ฉันงงงวยกับวิธีที่ใช้ในการค้นหาmanหน้าเว็บ "สิ่งที่ถูกต้อง" ดูเหมือนจะเกิดขึ้นอย่างน่าอัศจรรย์ ตัวอย่างเช่นหากเปลี่ยน PATH จาก

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

ถึง

/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/usr/local/git/bin:/usr/texbin

เส้นทางค้นหาmanหน้า (ตามman --path) การเปลี่ยนแปลงจาก

/usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/local/git/share/man:/usr/texbin/man

ถึง

/usr/local/git/share/man:/usr/share/man:/usr/local/share/man:/opt/X11/share/man:/usr/texbin/man

ยังไงก็ตามรุ่นของ Git ที่ฉัน "แทนที่" Git เริ่มต้นด้วยกำลังมีเอกสารของมันถูกต้องพบก่อนเอกสารใด ๆ สำหรับ Git ในตัว มันเกิดขึ้นได้อย่างไร?

คำตอบ:


13

พา ธ สำหรับ man ถูกกำหนดโดยตัวแปร env MANPATH หรือโดยการสร้าง MANPATH จาก PATH และ /etc/manpath.config

เหตุผลที่หน้า man git ของคุณถูกหยิบขึ้นมาก่อนเป็นเพราะ MANPATH ที่สร้างขึ้นนั้นอยู่ในลำดับเดียวกันที่มีอยู่ใน PATH ดังนั้น/usr/local/git/binที่จุดเริ่มต้นของ PATH หมายความว่า manpath จะ (ถ้าสามารถหาได้) วางเส้นทางของมนุษย์ที่ตรงกัน จุดเริ่มต้นของ MANPATH (ในกรณีนี้/usr/local/git/share/man)

เส้นทางที่อยู่ก่อนหน้าใน MANPATH ของคุณจะถูกค้นหาก่อนและ man (1) จะแสดงการจับคู่ครั้งแรก

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ดู manpath (1) และสำหรับไฟล์การกำหนดค่าดู manpath (5)


1
ฉันมี (ดาร์วิน 12.2.0, OS X 10.8.2, ทุบตี 3.2.48 (1)) /etc/manpaths, และไฟล์ในหลาย/etc/man.conf/etc/manpaths.dตัวเลขเหล่านั้นเข้าสู่กระบวนการสร้าง MANPATH อย่างไร
orome

@raxacoricofallapatorius เป็นแพลตฟอร์มเฉพาะดังนั้นฉันไม่แน่ใจคำถามของคุณไม่ได้ระบุแพลตฟอร์ม
cjh

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