Im Filesystem Hierarchy Standard wird `/ var / lib / wie folgt angegeben (in Kursivschrift der wichtigste Teil):
5.8.1 Zweck
Diese Hierarchie enthält Statusinformationen zu einer Anwendung oder zum System. Statusinformationen sind Daten, die Programme während der Ausführung ändern und die sich auf einen bestimmten Host beziehen. Benutzer dürfen niemals Dateien in / var / lib ändern müssen, um die Operation eines Pakets zu konfigurieren.
Statusinformationen werden im Allgemeinen verwendet, um den Zustand einer Anwendung (oder einer Gruppe miteinander verbundener Anwendungen) zwischen Aufrufen und zwischen verschiedenen Instanzen derselben Anwendung aufrechtzuerhalten. Statusinformationen sollten im Allgemeinen nach einem Neustart gültig bleiben, keine Ausgabe protokollieren und keine Spooldaten sein.
Eine Anwendung (oder eine Gruppe miteinander verbundener Anwendungen) muss ein Unterverzeichnis von / var / lib für ihre Daten verwenden. Es gibt ein erforderliches Unterverzeichnis, / var / lib / misc, das für Statusdateien vorgesehen ist, die kein Unterverzeichnis benötigen. Die anderen Unterverzeichnisse sollten nur vorhanden sein, wenn die betreffende Anwendung in der Distribution enthalten ist.
/ var / lib / ist der Speicherort, der für die Unterstützung aller Distributionspakete verwendet werden muss. Natürlich können unterschiedliche Distributionen unterschiedliche Namen verwenden.
Kurz gesagt: / var / lib / steht für Daten, die lokal verwendet werden.
Es ist also durchaus sinnvoll, die Daten einer Datenbank in das Verzeichnis / var / lib / {mysql | postgress} / zu stellen, aber ... das FHS ist ein Standard, der hauptsächlich für Distributionen erstellt wurde . Als Nutzer haben Sie die Möglichkeit, Ihre Daten an einem beliebigen Ort abzulegen, und dies ist meistens Ansichtssache.
Sie missverstehen das Wort "lokal". / usr / local / bin / ist nicht für die Systemsoftware, sondern für Ihre eigene Software (grundsätzlich darf alles, was "local" enthält, vom System niemals berührt werden. Wie von FHS erklärt:
/ usr / local /
4.9.1 Zweck
Die / usr / local-Hierarchie wird vom Systemadministrator beim lokalen Installieren der Software verwendet. Es muss sicher sein, dass es beim Aktualisieren der Systemsoftware nicht überschrieben wird. Es kann für Programme und Daten verwendet werden, die von einer Gruppe von Hosts gemeinsam genutzt werden können, sich jedoch nicht in / usr befinden. Lokal installierte Software muss in / usr / local und nicht in / usr abgelegt werden, es sei denn, sie wird installiert, um Software in / usr zu ersetzen oder zu aktualisieren.
Eine von der Systemsoftware installierte ausführbare Datei sollte niemals lokal gespeichert werden.
Nun zu / usr / lib / .
4.7.1 Zweck
/ usr / lib enthält Objektdateien, Bibliotheken und interne Binärdateien, die nicht direkt von Benutzern oder Shell-Skripten ausgeführt werden sollen. Anwendungen können ein einzelnes Unterverzeichnis unter / usr / lib verwenden. Wenn eine Anwendung ein Unterverzeichnis verwendet, müssen alle architekturabhängigen Daten, die ausschließlich von der Anwendung verwendet werden, in diesem Unterverzeichnis abgelegt werden.
postgressql ist wahrscheinlich ein daemon beim booten gestartet? Wenn ja, ist es sinnvoll, es hier abzulegen. Sie sollten den Befehl nicht selbst verwenden, sondern einen Dienst starten. Die Dateien in / usr / lib / haben in der Regel einen eigenen Benutzer und eine eigene Gruppe und / oder einen Daemon, der den Zugriff auf / var / lib einschränkt (nur mysqld kann beispielsweise auf / var / lib / mysql / zugreifen; dies gilt auch für postgressql)