根据跳频,目录/lib
和/usr/lib
均用于库(/sbin
分别是使用的库和用户库)。
但是文件夹呢/var/lib
?按照同样的逻辑,这个文件夹应该有类似“变量库”的东西(听起来很奇怪),但它实际上保存着由运行程序生成和维护的数据,或者按照维基百科文章的定义:
状态信息。程序运行时修改的持久数据,例如数据库、包装系统元数据等。
/srv
从新的角度来看,将数据库数据和服务文件放在下面而不是下面更有意义/var/lib
答案1
新 3.0 版本的提交中对此进行了解释:
http://bzr.linuxfoundation.org/loggerhead/lsb/devel/fhs-spec/revision/26
具体来说,/srv/
是用于服务的文件系统结构化数据,/var/lib/
是用于本地使用的数据。Apache 将从 /srv 提供服务,因为它是文件系统层次结构。MySQL 从 /var/lib 提供服务,因为只有 mysqld 可以访问它,并且它不是文件系统层次结构。
答案2
作为系统管理员1138已经提到,FHS 3.0 在其/srv
部分中对此进行了解释,我将引用:
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s17.html
如果数据的目录和文件结构不向消费者公开,则应该放入
/var/lib
。
添加这句话是因为这个FHS错误。 那里,托勒夫雾山写道:
我认为这里的关键区别在于系统管理员是否通常接触并关心目录结构。
这里有用的部分是,在/srv
系统管理员”必须关心目录结构“。