Onde armazenar dados compartilhados no FHS 3.0?

4

Estou trabalhando em um aplicativo em conformidade com o FHS2 que costumava armazenar dados em $sharedstatedir (por exemplo, $(prefix)/com , por exemplo, /usr/local/com ).

Este diretório não é mais no FHS 3.0, e parece que precisamos começar usando

  • /var/lib , que deve armazenar

    Variable state information

    ou mais verbosa,

    state information pertaining to an application or the system. State information is data that programs modify while they run, and that pertains to one specific host.

    ou

  • /var/local , que deve armazenar

    Variable data for /usr/local

    (Não há mais informações sobre /var/local .)

Qual desses devemos usar?

Pergunta bônus: existe uma variável para /var/lib / /var/local , da mesma forma que sharedstatedir e amigos que devemos usar, ou devemos simplesmente codificar o caminho em nossos makefiles?

    
por zenith 04.07.2015 / 16:29

1 resposta

4

Você deve escolher /var/lib .

/usr/com não existe no FHS 2.3 ou FHS 3. FHS 2.3 FHS 3.0

sharedstatedir é um conceito em autotools GNU e Padrões de codificação GNU

GNU e freestandards.org nem sempre se alinham.

O problema que você mencionou surgiu em uma postagem na lista de correspondência de 2006 . No caso da Red Hat, a conclusão foi usar /var/lib

Tecnicamente, se você estiver trabalhando em um projeto de código aberto que padronize prefix para /usr/local , é possível usar /var/local . Mas não acredito que alguém faça isso na prática. Por um lado, note que /var/local está provavelmente vazio em seu sistema. Para dois, observe que, assim que você ou qualquer pessoa executando ./configure alterar prefix para /usr , você não poderá usar /var/local e a única opção restante será /var/lib .

    
por 04.07.2015 / 16:55