W standardzie hierarchii systemów plików `/ var / lib / jest określony jako (kursywą najważniejszą częścią):
5.8.1 Cel
W tej hierarchii przechowywane są informacje o stanie dotyczące aplikacji lub systemu. Informacje o stanie to dane, które programy modyfikują podczas działania i dotyczą jednego określonego hosta. Użytkownicy nigdy nie muszą modyfikować plików w / var / lib, aby skonfigurować działanie pakietu.
Informacje o stanie są zwykle używane do zachowania stanu aplikacji (lub grupy powiązanych aplikacji) między wywołaniami i między różnymi instancjami tej samej aplikacji. Informacje o stanie powinny zasadniczo pozostawać aktualne po ponownym uruchomieniu, nie powinny rejestrować danych wyjściowych i nie powinny być buforowane danych.
Aplikacja (lub grupa powiązanych ze sobą aplikacji) musi używać podkatalogu / var / lib dla swoich danych. Jest jeden wymagany podkatalog, / var / lib / misc, który jest przeznaczony dla plików stanu, które nie potrzebują podkatalogu; inne podkatalogi powinny być obecne tylko wtedy, gdy dana aplikacja jest uwzględniona w dystrybucji.
/ var / lib / to lokalizacja, która musi być używana do obsługi wszystkich pakietów dystrybucyjnych. Różne dystrybucje mogą oczywiście używać różnych nazw.
W skrócie: / var / lib / dotyczy danych używanych lokalnie.
Dlatego umieszczenie danych bazy danych w katalogu / var / lib / {mysql | postgress} / / ma sens, ale ... FHS jest standardem stworzonym głównie do użytku przez dystrybucje . Jako użytkownik możesz swobodnie umieszczać swoje dane gdziekolwiek chcesz i jest to głównie kwestia opinii.
Nie rozumiesz słowa „lokalny”. / usr / local / bin / nie jest przeznaczony dla oprogramowania systemowego, ale dla własnego oprogramowania (w zasadzie wszystko, co zawiera „lokalne”, nigdy nie może być dotknięte przez system. Jak wyjaśnia FHS:
/ usr / local /
4.9.1 Cel
Hierarchia / usr / local jest używana przez administratora systemu podczas lokalnej instalacji oprogramowania. Przed aktualizacją oprogramowania systemowego należy zabezpieczyć go przed nadpisaniem. Może być używany do programów i danych, które można udostępniać w grupie hostów, ale nie można ich znaleźć w / usr. Oprogramowanie zainstalowane lokalnie musi być umieszczone w katalogu / usr / local zamiast / usr, chyba że jest instalowane w celu zastąpienia lub aktualizacji oprogramowania w / usr.
Plik wykonywalny zainstalowany z oprogramowania systemowego nigdy nie powinien przechodzić do niczego lokalnego.
Teraz dla / usr / lib / .
4.7.1 Cel
/ usr / lib zawiera pliki obiektowe, biblioteki i wewnętrzne pliki binarne, które nie są przeznaczone do bezpośredniego uruchamiania przez użytkowników ani skrypty powłoki. Aplikacje mogą korzystać z jednego podkatalogu w katalogu / usr / lib. Jeśli aplikacja korzysta z podkatalogu, wszystkie dane zależne od architektury wykorzystywane wyłącznie przez aplikację muszą zostać umieszczone w tym podkatalogu.
postgressql jest prawdopodobnie demonem uruchomionym przy starcie systemu? Jeśli tak, warto to tutaj umieścić. Nie należy używać polecenia samodzielnie, ale uruchomić usługę. Pliki w / usr / lib / mają zwykle własnego użytkownika i grupę i / lub demona, który ogranicza dostęp do / var / lib (na przykład tylko mysqld może uzyskać dostęp do / var / lib / mysql /; będzie to takie samo dla postgressql)