Bagaimana cara saya menginstal file halaman manual?

44

Bagaimana cara menginstal file halaman manual di seluruh sistem?

Misalnya, jika saya memiliki file halaman manual examplecommand.1, bagaimana cara menginstalnya sehingga saya bisa mengetik man examplecommanduntuk melihatnya?

Flimm
sumber

Jawaban:

53
  1. Pertama, cari tahu bagian mana dari halaman manual milik Anda. Jika itu perintah, itu mungkin milik bagian 1. Anda dapat membaca halaman manual untuk manperintahIkon halaman manual untuk melihat deskripsi dari bagian yang berbeda dan nomor yang sesuai.

  2. Salin halaman manual Anda ke /usr/local/share/man/man1/(ubah 1ke nomor bagian Anda jika perlu). Anda juga dapat menginstalnya /usr/share/man/man1/, tetapi praktik terbaik untuk menggunakan localdirektori untuk file yang diinstal tanpa menggunakan manajer paket APT:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. Jalankan mandbperintah. Ini akan memperbarui manbasis data internal:

    sudo mandb
    
  4. Itu dia! Anda harus dapat melihat halaman manual dengan menjalankan:

    man 1 examplecommand
    

Referensi:

Flimm
sumber
1
Apakah ada opsi atau praktik apa yang disarankan saat Anda ingin menghindari penggunaan sudo?
Jorge Bucaran
@JorgeBucaran Lihat jawaban di bawah ini tentang cara mengatur MANPATH, yang memungkinkan Anda untuk meletakkan halaman manual dalam ruang yang dapat Anda tulis, misalnya $ HOME / lib / share / man atau di suatu tempat seperti itu
nealmcb
Saya pikir Anda dapat menyimpan halaman manual di bawah /usr/local/mandan juga disarankan dalam pemetaan PATH ke MANPATH di /etc/manpath.config.
jarno
10

Jika Anda hanya perlu menginstal halaman manual secara lokal :

Jika MANPATHtidak disetel, atau menyertakan komponen kosong (mis. Dimulai dengan :, diakhiri dengan :, atau berisi ::), maka <path>/share/mansecara otomatis akan dicari halaman manual kapan pun <path>/binmerupakan bagian dari PATH, untuk semua nilai<path> .

Ini memberikan cara yang sangat sederhana untuk menambahkan halaman manual untuk perangkat lunak yang diinstal secara lokal. Ada beberapa detail di man manpathdan /etc/manpath.config, tapi saya tidak melihat penyebutan pemetaan generik dari <path>/binke <path>/share/man.

ntc2
sumber
Saya ditambahkan MANPATH=<local path to the man pages>:$MANPATHke Anda ${HOME}/.bashrc(sesi non-login) atau ${HOME}/.profile(sesi login). Dalam kasus saya, saya membuat direktori lokal untuk halaman manual ${HOME}/share/man/, yang meniru sistem file Linux klasik. Saya buat ${HOME}/share/man/man.1, yang kemudian berisi tautan simbolis ke lokasi ke file di examplecommand.1mana pun installer program meletakkannya (konfigurasi 'awalan'). Peluncuran man examplecommandmenemukan halaman manual dalam poin. Dengan cara ini, instalasi bersifat lokal, tidak untuk seluruh sistem.
XavierStuvw
Ini adalah komentar yang sangat menarik, dan memberikan jalan bagi orang-orang yang hanya perlu mengatur PATH mereka (yang sudah mereka harapkan) untuk binari lokal. Namun, saya tidak berpikir pemetaan generik <path>/bin-> <path>/share/manada. Ketika melakukan strace (1) pada mandengan MANPATH=:/nonexistingdir, saya melihat berikut: - <path>/bin-> <path>/man ini adalah pada sistem Debain Buster.
Aktau
1

Jawaban oleh @ ntc2 di atas adalah yang harus dilihat orang. Saya ingin menambahkan beberapa komentar tambahan yang tidak cocok di bagian komentar:

Pendekatan oleh @ ntc2 menyediakan jalur untuk orang yang hanya perlu mengatur PATH mereka (yang sudah mereka harapkan) untuk binari lokal.

Namun, saya tidak berpikir pemetaan generik <path>/bin-> <path>/share/manada untuk semua jalur di $PATH. Sepertinya pemetaan spesifik ini dihindari ketika $PATHpertanyaannya adalah $HOME/bin. Ketika melakukan strace (1) pada mandengan MANPATH=:/nonexistingdir, saya melihat pencarian berikut:

Untuk elemen apa pun $PATHyang bukan$HOME/bin

  • <path>/bin -> <path>/man
  • <path>/bin -> <path>/bin/man
  • <path>/bin -> <path>/share/man
  • <path>/bin -> <path>/bin/share/man

Untuk $HOME/bin

  • $HOME/bin -> $HOME/man

Saya tidak tahu mengapa itu melompati yang lain. Ini ada di sistem Debian Buster. Mungkin berbeda pada sistem lain.

Bagi saya, ini berarti bahwa jalur teraman untuk menginstal halaman manual adalah <path>/man, karena dijamin akan ditemukan jika ada di $PATH.

Aktau
sumber