Je travaille sur une application conforme FHS2 qui stockait des données dans $sharedstatedir
(par exemple $(prefix)/com
, par exemple /usr/local/com
).
Ce directory n'est plus dans FHS 3.0, et il semble que nous devons commencer à utiliser soit
/var/lib
, qui devrait stocker
Information d'état variable
ou plus verbeux,
des informations d'état relatives à une application ou au système. Les informations d'état sont des données que les programmes modifient pendant leur exécution et qui concernent un hôte spécifique.
ou
/var/local
, qui devrait stocker
Données variables pour
/usr/local
(Aucune autre information n'est donnée sur /var/local
.)
Lequel d'entre eux devrions-nous utiliser?
Question bonus: Y a-t-il une variable pour /var/lib
/ /var/local
, comme sharedstatedir
et les amis que nous devrions utiliser, ou devrions-nous simplement coder le path dans nos makefiles?
Vous devriez choisir /var/lib
.
/usr/com
n'existe pas dans FHS 2.3 ou FHS 3. FHS 2.3 FHS 3.0
sharedstatedir
est un concept dans les autotools GNU et les normes de encoding GNU
GNU et freestandards.org ne s'alignent pas toujours.
Le problème que vous mentionnez a été mentionné dans un post de la list de diffusion de 2006 . Dans le cas de Red Hat, la conclusion était d'utiliser /var/lib
Techniquement, si vous travaillez sur un projet open source qui utilise /var/local
défaut le prefix
/usr/local
, vous pouvez utiliser /var/local
. Mais je ne crois pas que quelqu'un le fasse en pratique. Pour commencer, notez que /var/local
est probablement vide sur votre système. Pour deux, notez que dès que vous ou quelqu'un qui exécute ./configure
change le prefix
en /usr
, vous ne pouvez pas utiliser /var/local
, et la seule option restante est /var/lib
.