Padrão de hierarquia do sistema de arquivos - Onde colocar funções de fontes?

9

Eu tenho alguns scripts bash executando verificações do sistema. Esses scripts originam opções de configuração de um arquivo / etc / healthchecks / config.

Junto com o arquivo de configuração, eu tenho um arquivo de funções compartilhadas. Os scripts devem poder originar esse arquivo e executar as funções nele.

Com base no padrão de hierarquia do sistema de arquivos, onde devo colocar o arquivo de funções compartilhadas? Não é uma configuração, portanto não parece pertencer a / etc, mas também não está sendo executada, portanto / usr / bin parece incorreto. Talvez / usr / lib?

vastlysuperiorman
fonte

Respostas:

7

Você deve colocar seus healthchecksexecutáveis ​​em / usr / local / bin ou em / opt / bin. Se você vir sua pasta / opt vazia, significa que sua distribuição Linux não a utiliza. Portanto, o local adequado seria / usr / local.

/ usr / local e / opt são onde todos os pacotes / programas "manuais" devem ser colocados. / usr é para pacotes gerenciados por gerenciadores de pacotes (ou seja, dpkg). / opt é o "local padrão" para pacotes manuais de acordo com o FHS, mas as distribuições debian usam / usr / local.

Para arquivos de configuração, eles devem ser colocados em / usr / local / etc, pois / etc é para arquivos de configuração de pacotes automáticos e outros programas do sistema.

O local correto para suas funções compartilhadas é / usr / local / share (/ usr / share é para arquivos compartilhados de pacotes automáticos). Todo arquivo projetado para ser somente leitura e independente da arquitetura pertence a / usr / share ou / usr / local / share (se eles pertencerem a pacotes "automáticos" ou "manuais").

/ usr / lib é para bibliotecas binárias dinâmicas e estáticas (.so ou .a), e não para bibliotecas / funções "interpretadas".

Geralmente, os intérpretes têm subpastas diferentes em / etc / share / para cada versão e, dentro de cada pasta de versão, pastas diferentes para scripts, localidades, testes, amostras e assim por diante.

Se algum dia você criar um repositório oficial para o seu pacote healthchecks, poderá migrar o seu conteúdo / usr / local / healthchecks para / usr / healthchecks e / etc / healthchecks.

Peregring-lk
fonte
2
Fui em frente e apagado a minha resposta porque 1) o seu cobre o tópico bem o suficiente, e 2) libexectecnicamente não faz parte da ESF ainda. Está presente no rascunho 3.0 e na Visão geral da ESF da Redhat , mas ainda não é tecnicamente parte da ESF. (usá-lo, se quiser, basicamente)
Andrew B
1

Geralmente, tento manter coisas específicas do site fora dessas áreas reservadas do sistema. Você pode considerar usar sua própria hierarquia de diretórios de nível superior, pois ao usar áreas de sistema, arquivos especiais de sites podem facilmente se perder ou esquecer durante a evolução do sistema. Outra possibilidade pode ser / usr / local / etc .....

mdpc
fonte