Bagaimana jalur untuk mencari set halaman 'man'?

10

Saya bingung dengan bagaimana jalur yang digunakan untuk menemukan manhalaman diatur. "Hal yang benar" tampaknya terjadi secara ajaib. Misalnya, jika ubah PATH saya dari

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

untuk

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

jalur yang dicari untuk manlaman (menurut man --path) berubah dari

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

untuk

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

Entah bagaimana, versi Git yang saya "timpa" dengan standar Git, adalah memiliki dokumentasinya ditemukan dengan benar sebelum dokumentasi apa pun untuk setiap built in Git. Bagaimana itu bisa terjadi?

orome
sumber

Jawaban:

13

Path untuk man ditentukan oleh variabel env MANPATH atau dengan membuat MANPATH dari PATH dan /etc/manpath.config

Alasan halaman manual git lokal Anda diambil pertama kali adalah karena MANPATH yang dihasilkan berada dalam urutan yang sama dengan yang ada di PATH, jadi /usr/local/git/binpada awal PATH Anda berarti manpath akan (jika dapat menemukannya) menempatkan path man yang cocok di awal MANPATH (dalam hal ini, /usr/local/git/share/man).

Jalur yang sebelumnya ada di MANPATH Anda dicari terlebih dahulu dan man (1) akan menampilkan kecocokan pertama.

Untuk informasi lebih lanjut tentang ini lihat manpath (1) dan untuk file konfigurasi lihat manpath (5)

cjh
sumber
1
Saya punya (pada Darwin 12.2.0, OS X 10.8.2, bash 3.2.48 (1)) /etc/manpaths,, /etc/man.confdan beberapa file dalam /etc/manpaths.d. Bagaimana angka-angka itu dalam proses pembangunan MANPATH?
orome
@raxacoricofallapatorius itu adalah platform spesifik jadi saya tidak yakin, pertanyaan Anda tidak menentukan platform.
cjh
1
Itu pertanyaan terpisah kalau begitu.
orome