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 examplecommand
para visualizá-lo?
fonte
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 examplecommand
para visualizá-lo?
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 man
comando para ver uma descrição das diferentes seções e seus números correspondentes.
Copie sua página de manual para /usr/local/share/man/man1/
(mude 1
para 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 local
diretório para arquivos instalados sem usar o gerenciador de pacotes APT:
sudo cp examplecommand.1 /usr/local/share/man/man1/
Execute o mandb
comando Isso atualizará man
o banco de dados interno do:
sudo mandb
É isso aí! Você deve conseguir visualizar a página de manual executando:
man 1 examplecommand
man
comandomandb
comando/usr/bin/dh_installman
se você pode ler Perl, instalado com o debhelper
pacote.
sudo
?/usr/local/man
, bem como sugeridas no mapeamento PATH para MANPATH/etc/manpath.config
.Se você só precisa instalar a página de manual localmente :
Se
MANPATH
não estiver definido ou incluir um componente vazio (ou seja, começa com:
, termina com:
ou contém::
),<path>/share/man
serão pesquisadas automaticamente as páginas de manual sempre que fizer<path>/bin
parte dePATH
, 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 manpath
e/etc/manpath.config
, mas não vejo nenhuma menção ao mapeamento genérico de<path>/bin
para<path>/share/man
.fonte
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 arquivoexamplecommand.1
onde quer que o instalador do programa o tenha colocado (o 'prefixo' de configuração). O lançamentoman examplecommand
localiza as páginas de manual no ponto. Dessa forma, a instalação é local, porém, não em todo o sistema.<path>/bin
-><path>/share/man
existe. Ao executar strace (1)man
comMANPATH=:/nonexistingdir
, vejo o seguinte: -<path>/bin
-><path>/man
Este é um sistema Debain Buster.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/man
existe para todos os caminhos no$PATH
. Parece que esse mapeamento específico é evitado quando o problema está$PATH
em questão$HOME/bin
. Ao executar strace (1)man
comMANPATH=:/nonexistingdir
, vejo as seguintes pesquisas:Para qualquer elemento
$PATH
que 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
.fonte