Acabei de baixar alguns novos arquivos de cabeçalho e tenho uma pasta deles que desejo disponibilizar. Primeiramente, gostaria de disponibilizá-los para qualquer arquivo que deseje utilizá-los. Então, eu gostaria de poder incluir o novo arquivo de cabeçalho (chame-o de newheader.h) onde eu quiser, assim como math.h, por exemplo. Onde devo colocá-lo?
Segundo, desejo disponibilizar esses arquivos para todos os usuários. Eu tenho permissões de root. Existe um diretório especial onde preciso colocá-lo? Muito obrigado!
Responder1
Armazene-os em /usr/local/include
. Dehttp://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html, os itens neste diretório estão "... protegidos contra serem substituídos quando o software do sistema for atualizado", o que é importante, pois você não deseja que os arquivos de cabeçalho que você baixou sejam sobrecarregados por atualizações do sistema, o que pode acontecer se você colocá-los em /usr/include
.
Responder2
No MEU sistema, o /usr/local/include/
diretório existe e está vazio. O padrão de hierarquia do Filsystem diz (ESF 3.0) o diretório a ser usado é /usr/local/include
. Os arquivos devem ser legíveis por todos ( 0444
) e os diretórios devem ser pesquisáveis ( 0555
).
Responder3
A questão é: o que você deseja alcançar?
Normalmente você tem três cenários:
- desenvolvimento
- instalação local (no seu
$HOME
) - instalação global
Para os dois primeiros, você provavelmente deve usar a -I
opção para fornecer um caminho para os cabeçalhos. O primeiro provavelmente seria -I../mylib/include
, o segundo pode ser -I/home/user/local_libs/somelib/include
.
A terceira é uma instalação global, que deve colocá-los em /usr/local/include
, mas gerenciada por uma ferramenta como automake ou cmake. Ao empacotar, o mantenedor deve adaptar o installpath e/ou o caminho de inclusão para instalar os cabeçalhos no /usr/include
.
Ao usar o automake você pode receber avisos além do--prefix
parâmetroo padrão é /usr/local
para uma instalação segura que não interfere nos pacotes do sistema, enquanto os mantenedores do Debian executam os ./configure --prefix=/usr
scripts de seus pacotes. O caminho de inclusão é construído a partir deste prefixo, portanto segue a instalação do pacote.