/var/lib для хранения обслуживаемых данных, почему?
По данным ФХС, справочники /lib
а также /usr/lib
оба для библиотек (библиотеки, используемые в /sbin
и пользовательские библиотеки соответственно).
Но как насчет /var/lib
папка? Следуя той же логике, в этой папке должно быть что-то вроде "переменных библиотек" (это звучит странно), но на самом деле она содержит данные, сгенерированные и поддерживаемые запущенными программами или как определено в статье в Википедии:
Государственная информация. Постоянные данные, изменяемые программами при их запуске, например, базы данных, метаданные системы упаковки и т. Д.
С новой точки зрения, имеет смысл поместить данные базы данных и обслуживаемые файлы в /srv
вместо /var/lib
2 ответа
Это объясняется в коммите к новой версии 3.0:
http://bzr.linuxfoundation.org/loggerhead/lsb/devel/fhs-spec/revision/26
В частности, /srv/
для обслуживаемых, структурированных данных файловой системы, /var/lib/
для локально потребляемых данных. Apache будет служить из / srv в качестве иерархической файловой системы. MySQL работает из /var/lib, так как только mysqld обращается к нему, и это не является иерархической файловой системой.
Как уже упоминал sysadmin1138, FHS 3.0 объясняет это в своем /srv
раздел, на который я буду ссылаться:
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s17.html
Если каталог и файловая структура данных не представлены потребителям, они должны войти в
/var/lib
,
Это предложение было добавлено из-за этой ошибки FHS. Там Толлеф Фог Хин пишет:
Я думаю, что принципиальное различие здесь в том, подвергается ли системный администратор обычному воздействию и должен ли он заботиться о структуре каталогов.
Полезная часть здесь в том, что в /srv
Сисадмин "должен заботиться о структуре каталогов".