Estou tentando criar um Makefile para um pequeno utilitário Perl que escrevi, e estou lutando para descobrir uma maneira de descobrir onde instalar minha página de manual quando ela make
é executada como um usuário não root .
Atualmente, estou analisando a saída de manpath
para descobrir o primeiro caminho no $HOME
diretório ... e quase funciona bem.
Os caminhos que encontrei são ~/man
e~/share/man
O único problema é que, se esses diretórios não existem em primeiro lugar, manpath
não gera nenhum deles.
Questões
- Existe uma maneira portátil de descobrir onde eu devo instalar as páginas de manual no diretório $ HOME do usuário?
- Caso contrário, qual deles deve ser preferido?
manpath
avisos sobreMANPATH
a configuração, você pode passar a-q
opção.man
onde procurar. Estou à procura de uma forma genérica, portátil para uma instalação genérico (isto é: onde estáman
olhando para uma configuração padrão)echo $MANPATH
e veja o que isso mostra. Esses são bons lugares para começar a procurar ou usar omanpath
comando como mostrei na minha resposta.Responder com descrição
Estou executando o Cygwin no Windows 7. Quando tento
Eu não recebo nada. Aqui está minha maneira portátil de encontrar onde colocar novas
man
páginas.(Uma nota sobre esse comando maluco está na parte inferior desta resposta.)
Você pode simplesmente substituir
/
por~
. Outra possibilidade está na seção Outra nota abaixo.Na minha máquina, o
find
comando retornou:Para mim, isso significava que havia duas possibilidades:
/share/man
e/usr/man
.Eu escolhi usar
/usr/man
, o que você não usaria, mas eu precisava explorar um pouco mais.Então, onde eu tinha os novos
man
arquivos em umdoc/
subdiretório do meu diretório de trabalho, eu useiAgora, eu poderia acessar meu "manual" digitando
Se você não vir um candidato provável, poderá remover esta parte ou alterá-la, por exemplo
-maxdepth 3
, para , ou4
, ou5
, ou por mais profundo que seja necessário para encontrar o que você precisa. Quando fiz isso3
, encontrei dois outros candidatos/var/cache/man
eusr/share/man
, mas eu já havia encontrado uma solução funcional, então não mexi com eles.Outra nota
Acredito que
/share/man/man1
ou/var/cache/man
estaria disponível para usuários não root, como você solicitou. Por favor corrija-me se eu estiver errado.A nota prometida na parte inferior
Observe que usei a
-maxdepth 2
opção comfind
, porque achei que oman
diretório estaria dentro de dois diretórios da raiz do sistema de arquivos e não queria obter muitos diretórios externos que de alguma forma tivessem a substringman
, assim como o/lib/gnome-co
mander
.O material extra
find
disponível para suprimir quaisquerPermission denied
erros, caso você não tenha acessosu
ousudo
. Aqui está uma ótima descrição do que está acontecendo. (Procure a linha que começa com "gniourf_gniourf".)fonte
Instalei alguns aplicativos que compilei, com os respectivos
configure
conjuntos para instalação${HOME}/usr/local
.Acho agora que tenho diretórios
com manpages
gnuplot.1
,gnuplot-ja.1
,python3.1
,python3.5.1
,libpng.3
,libpngpf.3
,zlib.3
,png.5
, então eu acho que (dado o meu prefixo) é uma bela localização padrão para aplicativos instalados localmente.É então um local candidato para os casos em que é necessário escolher manualmente o
man
diretório local .Obviamente, pode-se adicionar caminhos arbitrários (e deve fazê-lo mesmo nos casos justos mencionados) para
man
páginas com(veja isto ).
fonte