JavaおよびTomcatを含む多くのオープンソースアプリケーションを実行しています。ほとんどの手順では、アプリケーションが/var
ディレクトリ。しかし、たまに/opt
ディレクトリ。私がそれにいる間、私は/usr/local/
および/etc
同様に。
どちらのフォルダにアプリケーションをインストールする必要がありますか?それぞれの長所と短所はありますか?フレーバー履歴(Solaris対LinuxまたはRed Hat対Ubuntu)と関係がありますか?
これらの問題の標準は File Hierarchy Standard です。これはかなり大きなドキュメントです。基本的に(そして大まかに)、Linuxの標準パスは次のとおりです。
/bin
&/sbin
はOSの重要なプログラム用で、sbinは管理者専用です。/usr/bin
&/usr/sbin
は重要なプログラムではなく、sbinは管理者専用です。/var
は、プログラムの生きているデータ用です。キャッシュデータ、スプールデータ、一時データ(/tmp
にある場合を除き、再起動するたびにワイプされます)などです。/usr/local
は、ローカルにインストールされたプログラム用です。通常、標準に準拠しているがOS用にパッケージ化されていないプログラムをホストしますが、管理者が手動でインストールします(例:./configure && make && make install
)および管理者スクリプト。/opt
は、パッケージ化されておらず、標準に従っていないプログラム用です。すべてのライブラリをプログラムと一緒に配置するだけです。多くの場合、これは迅速でダーティーなソリューションですが、自分で作成したプログラムに特定のパスを設定したい場合にも使用できます。その中に独自のパス(例:/opt/yourcompany
)を作成できます。この場合、標準パスの一部として登録することをお勧めします。/etc
には、プログラムではなく構成を含める必要があります。プログラムがサービスによって提供されるサービスに固有のものである場合、/srv
もそれらに適した場所になります。たとえば、/srv/www
ではなく/var/www
をウェブサイトに使用して、ディレクトリに自分が追加したデータのみが含まれ、ソフトウェアパッケージからのものは含まれないようにします。
ディストリビューションにはいくつかの違いがあります。たとえば、RedHatシステムは、Debian/Ubuntuシステムが使用しないときにlibexec
ディレクトリを使用します。
FHSは主にLinuxディストリビューションで使用されています(実際に、それに準拠している他のOSは知りません)。他のUnixシステムはそれに従いません。たとえば、BSDシステムでは、パッケージプログラムに/usr/local
を使用する傾向がありますが、Linuxの場合はそうではありません。 Solarisには非常に異なる標準パスがあります。
これについて詳しく知りたい場合は、上記でリンクしたFHSドキュメントを読むことを強くお勧めします。
opt
はオプションのソフトウェアを表します。 var
は可変システムファイルを表します。したがって、アプリケーションは/opt
。
それはあなたのローカル標準が何であるかに依存します。
個人的には、正当な理由なしに/ varに何もインストールしません。私の/ usr/localは、ほとんどの場合、ネットワークからのnfsマウントなので、パッケージ化されていないものはすべて/ optにインストールされます。