Como instalo manualmente um arquivo de página do manual?

44

Como instalo um arquivo de página de manual em todo o sistema?

Por exemplo, se eu tenho um arquivo de página de manual examplecommand.1, como instalá-lo para que eu possa digitar man examplecommandpara visualizá-lo?

Flimm
fonte

Respostas:

53
  1. Primeiro, descubra a que seção sua página de manual pertence. Se for um comando, provavelmente pertence à seção 1. Você pode ler a página de manual do mancomandoÍcone da página de manual para ver uma descrição das diferentes seções e seus números correspondentes.

  2. Copie sua página de manual para /usr/local/share/man/man1/(mude 1para o número da seção, se necessário). Você também pode instalá-lo /usr/share/man/man1/, mas é uma prática recomendada usar o localdiretório para arquivos instalados sem usar o gerenciador de pacotes APT:

    sudo cp examplecommand.1 /usr/local/share/man/man1/
    
  3. Execute o mandbcomando Isso atualizará mano banco de dados interno do:

    sudo mandb
    
  4. É isso aí! Você deve conseguir visualizar a página de manual executando:

    man 1 examplecommand
    

Referências:

Flimm
fonte
1
Existe uma opção ou qual é a prática recomendada quando você gostaria de evitar o uso sudo?
Jorge Bucaran
@JorgeBucaran Veja a resposta abaixo sobre como MANPATH set, que permite que você coloque páginas de manual em espaços que você pode escrever para, por exemplo, $ HOME / lib / share / man ou em algum lugar assim
nealmcb
Eu acho que você pode armazenar as páginas de manual /usr/local/man, bem como sugeridas no mapeamento PATH para MANPATH /etc/manpath.config.
jarno 12/08
10

Se você só precisa instalar a página de manual localmente :

Se MANPATHnão estiver definido ou incluir um componente vazio (ou seja, começa com :, termina com :ou contém ::), <path>/share/manserão pesquisadas automaticamente as páginas de manual sempre que fizer <path>/binparte de PATH, para todos os valores de<path> .

Isso fornece uma maneira muito simples de adicionar páginas de manual para o software instalado localmente. Existem alguns detalhes em man manpathe /etc/manpath.config, mas não vejo nenhuma menção ao mapeamento genérico de <path>/binpara <path>/share/man.

ntc2
fonte
Anexei MANPATH=<local path to the man pages>:$MANPATHàs suas ${HOME}/.bashrc(sessões sem login) ou ${HOME}/.profile(sessões de login). No meu caso, configurei um diretório local para páginas de manual ${HOME}/share/man/, que imita o sistema de arquivos clássico do Linux. Eu criei ${HOME}/share/man/man.1, que contém um link simbólico para o local do arquivo examplecommand.1onde quer que o instalador do programa o tenha colocado (o 'prefixo' de configuração). O lançamento man examplecommandlocaliza as páginas de manual no ponto. Dessa forma, a instalação é local, porém, não em todo o sistema.
XavierStuvw
Esse foi um comentário muito interessante e fornece um caminho para as pessoas que precisam apenas definir seu PATH (o que eles já esperam) para os binários locais. No entanto, eu não acho que o mapeamento genérico <path>/bin-> <path>/share/manexiste. Ao executar strace (1) mancom MANPATH=:/nonexistingdir, vejo o seguinte: - <path>/bin-> <path>/man Este é um sistema Debain Buster.
Aktau
1

A resposta de @ ntc2 acima é a que as pessoas deveriam estar olhando. Eu queria adicionar alguns comentários extras que não se encaixassem na seção de comentários:

A abordagem do @ ntc2 fornece um caminho para as pessoas que precisam apenas definir seu PATH (o que eles já esperam) para os binários locais.

No entanto, eu não acho que o mapeamento genérico <path>/bin-> <path>/share/manexiste para todos os caminhos no $PATH. Parece que esse mapeamento específico é evitado quando o problema está $PATHem questão $HOME/bin. Ao executar strace (1) mancom MANPATH=:/nonexistingdir, vejo as seguintes pesquisas:

Para qualquer elemento $PATHque não seja$HOME/bin

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

Para $HOME/bin

  • $HOME/bin -> $HOME/man

Não faço ideia do porquê ignora os outros. Isso está em um sistema Debian Buster. Pode ser diferente em outros sistemas.

Para mim, isso significa que o caminho mais seguro para instalar páginas de manual é <path>/man, pois é garantido que ele será encontrado se estiver no $PATH.

Aktau
fonte