Bagaimana cara mengatur MANPATH tanpa mengesampingkan default?

13

Saya telah menambahkan direktori tambahan $PATHdengan mengekspor PATH=/my/dirs:$PATH Tetapi saya tidak yakin apakah saya harus melakukan hal yang sama MANPATH. Karena default MANPATHkosong namun manperintah berfungsi. Saya menemukan perintah yang disebut manpathdan manualnya mengatakan If $MANPATH is set, manpath will simply display its contents and issue a warning.. Apakah ini berarti pengaturan MANPATH bukan cara yang tepat untuk menambahkan direktori untuk manperintah untuk mencari halaman manual?

balki
sumber

Jawaban:

19

Jika Anda hanya mengatur MANPATH, itu menimpa default dan Anda kehilangan akses ke halaman manual standar. Misalnya, man lsberfungsi sebelum mengatur MANPATH, tetapi tidak berfungsi setelahnya.

Untuk menambahkan direktori pencarian tanpa mengesampingkan default, awali tanda titik dua ke MANPATH seperti ini:

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

Menambahkan tanda titik dua memberi Anda akses ke halaman manual sistem standar dan halaman kustom yang dirujuk dalam variabel MANPATH.

Jawaban ini dibawa kepada Anda oleh manpath (1) :

Jika $ MANPATH disetel, manpath menampilkan nilainya daripada menentukannya dengan cepat. Jika $ MANPATH diawali dengan tanda titik dua, maka nilai variabel ditambahkan ke daftar yang ditentukan dari konten file konfigurasi. Jika titik dua datang di akhir nilai dalam variabel, maka daftar yang ditentukan ditambahkan ke konten variabel. Jika nilai variabel berisi titik dua (: :), maka daftar yang ditentukan dimasukkan di tengah nilai, di antara dua titik dua.

maharvey67
sumber
1

IMO Anda harus menambahkan direktori khusus Anda di akhir PATH Anda

PATH=$PATH:/my/dirs

Ini agar direktori khusus Anda tidak melewati sistem binari / lib dan merupakan masalah keamanan kecil.

Anda mengatur MANPATH dengan cara yang sama (MANPATH kosong secara default).

MANPATH=$MANTPATH:/my/dirs

Anda seharusnya tidak perlu mengatur MANPATH dengan paket berperilaku baik, jadi jika tidak rusak jangan diperbaiki dan jika rusak, mungkin Anda lebih baik mengajukan laporan bug;)

Tambahkan ini ke ~ / .bashrc

export PATH=$PATH:/my/dirs
export MANPATH=$MANPATH:/my/dirs
Harimau kumbang
sumber
Mengetik dalam pernyataan kedua? MANPATH=$MANTPATH:/my/dirs Mungkin harus:MANPATH=$MANPATH:/my/dirs
kevinarpe
Apa yang Anda maksud dengan "paket berperilaku baik"? Saya memiliki seluruh rangkaian alat yang tidak diinstal di tempat-tempat biasa (cluster HPC sering memasukkan / opt). Bagaimana mereka harus mendaftarkan halaman manual mereka tanpa menggunakan $ MANPATH?
i_grok
"Paket berperilaku baik" ditulis untuk menggunakan jalur standar dan variabel lingkungan. Paket berperilaku buruk menggunakan jalur non standar, setidaknya untuk Ubuntu, seperti / opt atau tidak menggunakan variabel lingkungan dan dengan demikian mengarah pada pengamatan Anda "Saya memiliki seluruh rangkaian alat yang tidak diinstal di tempat-tempat biasa (cluster HPC sering menempatkan hal-hal di / opt) "
Panther