
De acordo com oESF, os diretórios /lib
e /usr/lib
são ambos para bibliotecas (bibliotecas usadas /sbin
e bibliotecas de usuário, respectivamente).
Mas e a /var/lib
pasta? Seguindo a mesma lógica, esta pasta deveria ter algo como "bibliotecas de variáveis" (isso parece estranho), mas na verdade contém dados gerados e mantidos pela execução de programas, ou conforme definido pelo artigo da Wikipedia:
Informações do estado. Dados persistentes modificados por programas à medida que são executados, por exemplo, bancos de dados, metadados de sistemas de empacotamento, etc.
De uma nova visão, faz mais sentido colocar os dados do banco de dados e os arquivos servidos /srv
em vez de/var/lib
Responder1
Isso é explicado no commit para a nova versão 3.0:
http://bzr.linuxfoundation.org/loggerhead/lsb/devel/fhs-spec/revision/26
Especificamente, /srv/
é para dados estruturados de sistema de arquivos servidos, /var/lib/
é para dados consumidos localmente. O Apache servirá fora de /srv, pois é um sistema de arquivos hierárquico. O MySQL serve fora de /var/lib já que apenas o mysqld o acessa e não é um sistema de arquivos hierárquico.
Responder2
Comosysadmin1138já mencionou, o FHS 3.0 explica isso em sua /srv
seção, que citarei:
https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s17.html
Se o diretório e a estrutura de arquivos dos dados não forem expostos aos consumidores, eles deverão entrar no formato
/var/lib
.
Essa frase foi adicionada devido aesse bug da FHS. Lá,Tollef Nevoeiro Heenescreve:
Acho que a diferença crucial aqui é se o administrador do sistema está normalmente exposto e precisa se preocupar com a estrutura de diretórios.
A parte útil aqui é que no /srv
sysadmin”tem que se preocupar com a estrutura de diretórios“.