
СогласноФХС, каталоги /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
системном администраторе«должен заботиться о структуре каталогов».