我正在开发一个符合 FHS2 的应用程序,用于将数据存储在$sharedstatedir
(ie $(prefix)/com
,eg /usr/local/com
) 中。
这个目录不再是在FHS 3.0中,似乎我们需要开始使用
/var/lib
,它应该存储可变状态信息
或者更详细地说,
与应用程序或系统有关的状态信息。状态信息是程序在运行时修改的数据,并且属于一台特定主机。
或者
/var/local
,它应该存储变量数据为
/usr/local
(没有提供更多有关 的信息
/var/local
。)
我们应该使用其中哪一个?
/var/lib
额外问题: /是否有一个变量/var/local
,类似于sharedstatedir
我们应该使用的和朋友,或者我们应该简单地将路径硬编码到我们的 makefile 中?
答案1
你应该选择/var/lib
。
/usr/com
FHS 2.3 或 FHS 3 中不存在。 FHS 2.3 飞速3.0
sharedstatedir
是一个概念GNU 自动工具和GNU 编码标准
GNU 和 freestandards.org 并不总是一致的。
你提到的问题出现在2006年邮件列表帖子。就红帽而言,结论是要使用/var/lib
prefix
从技术上讲,如果您正在开发默认为 的开源项目/usr/local
,则可以使用/var/local
.但我不相信有人在实践中这样做。首先,请注意/var/local
您的系统上可能是空的。对于两个,请注意,一旦您或任何人运行./configure
更改prefix
为/usr
,您就无法使用/var/local
,唯一剩下的选项是/var/lib
。