web-dev-qa-db-ja.com

Linuxアプリケーションを/ varまたは/ optにインストールする必要がありますか?

JavaおよびTomcatを含む多くのオープンソースアプリケーションを実行しています。ほとんどの手順では、アプリケーションが/varディレクトリ。しかし、たまに/optディレクトリ。私がそれにいる間、私は/usr/local/および/etc 同様に。

どちらのフォルダにアプリケーションをインストールする必要がありますか?それぞれの長所と短所はありますか?フレーバー履歴(Solaris対LinuxまたはRed Hat対Ubuntu)と関係がありますか?

86
Trevor Allred

これらの問題の標準は 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ドキュメントを読むことを強くお勧めします。

138
ℝaphink

optはオプションのソフトウェアを表します。 varは可変システムファイルを表します。したがって、アプリケーションは/opt

5
Eduard Wirch

それはあなたのローカル標準が何であるかに依存します。

個人的には、正当な理由なしに/ varに何もインストールしません。私の/ usr/localは、ほとんどの場合、ネットワークからのnfsマウントなので、パッケージ化されていないものはすべて/ optにインストールされます。

3