ファイルシステム階層標準では、`/ var / lib /は(イタリック体で最も重要な部分)と記述されています:
5.8.1目的
この階層は、アプリケーションまたはシステムに関する状態情報を保持します。状態情報は、プログラムの実行中に変更されるデータであり、特定の1つのホストに関連しています。ユーザーは、パッケージの操作を構成するために/ var / libのファイルを変更する必要はありません。
状態情報は通常、呼び出し間および同じアプリケーションの異なるインスタンス間でアプリケーション(または相互に関連するアプリケーションのグループ)の状態を保持するために使用されます。状態情報は通常、再起動後も有効なままである必要があり、ログ出力ではなく、データをスプールしないでください。
アプリケーション(または相互に関連するアプリケーションのグループ)は、データに/ var / libのサブディレクトリを使用する必要があります。1つの必須サブディレクトリ、/ var / lib / miscがあります。これは、サブディレクトリを必要としない状態ファイル用です。他のサブディレクトリは、問題のアプリケーションが配布に含まれる場合にのみ存在する必要があります。
/ var / lib /は、すべての配布パッケージのサポートに使用する必要がある場所です。もちろん、異なるディストリビューションは異なる名前を使用するかもしれません。
つまり、/ var / lib /はローカルで使用されるデータ用です。
したがって、データベースのデータを/ var / lib / {mysql | postgress} /ディレクトリに置くことは完全に理にかなっていますが、... FHSは主にディストリビューションで使用するために作成された標準です。ユーザーはデータを好きな場所に自由に置くことができ、それはほとんど意見の問題です。
「ローカル」という言葉を誤解しています。/ usr / local / bin /はシステムソフトウェア用ではなく、独自のソフトウェア用です(基本的に「ローカル」が含まれているものはすべてシステムに触れないでください。FHSの説明どおり:
/ usr / local /
4.9.1目的
/ usr / local階層は、ソフトウェアをローカルにインストールするときにシステム管理者が使用するためのものです。システムソフトウェアの更新時に上書きされないようにする必要があります。ホストのグループ間で共有可能であるが/ usrにはないプログラムおよびデータに使用できます。/ usr内のソフトウェアを置換またはアップグレードするためにインストールする場合を除き、ローカルにインストールしたソフトウェアは、/ usrではなく/ usr / local内に配置する必要があります。
システムソフトウェアからインストールされた実行可能ファイルは、ローカルの場所に移動しないでください。
今のところは/ usr / libに/。
4.7.1目的
/ usr / libには、ユーザーまたはシェルスクリプトによって直接実行されることを意図していないオブジェクトファイル、ライブラリ、および内部バイナリが含まれています。アプリケーションは、/ usr / libの下の単一のサブディレクトリを使用できます。アプリケーションがサブディレクトリを使用する場合、アプリケーションが排他的に使用するすべてのアーキテクチャ依存データは、そのサブディレクトリ内に配置する必要があります。
postgressqlはおそらく起動時に起動されるデーモンですか?もしそうなら、ここに置くのは理にかなっています。自分でコマンドを使用するのではなく、サービスを開始することを想定しています。/ usr / lib /内のファイルには、独自のユーザーとグループ、および/または/ var / libへのアクセスを制限するデーモンが含まれる傾向があります(たとえば、mysqldのみが/ var / lib / mysql /にアクセスできます。これは、 postgressql)