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


83

JavaやTomcatを含む多くのオープンソースアプリケーションを実行しています。ほとんどの指示では、アプリケーションが/varディレクトリから実行されているようです。しかし、/opt時々ディレクトリが表示されます。私がそれに取り組んでいる間、私も見/usr/local//etcいます。

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


8
の/ etc ...アプリケーションを残して奇妙な、不適切な場所です
user5336

Perlモジュールのようなものを/ etcに置く人を見てきました。...それは奇妙だが、それが起こる
ℝaphink

6
あらゆる不条理に対して、それを擁護するチャンピオンがいます。
ワンブル

回答:


133

これらの問題の標準は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よりも、Webサイトに使用することを好み/var/wwwます。

ディストリビューションにはいくつかの違いがあります。たとえば、RedHatシステムはlibexec、Debian / Ubuntuシステムが使用しないディレクトリを使用します。

FHSは主にLinuxディストリビューションで使用されています(実際にFHSに準拠している他のOSは知りません)。他のUnixシステムはそれに従いません。たとえば、BSDシステムは/usr/localパッケージ化されたプログラムに使用する傾向がありますが、これはLinuxには当てはまりません。Solarisには、非常に異なる標準パスがあります。

これについてもっと知りたい場合は、上記でリンクしたFHSドキュメントを読むことを強くお勧めします。


1
チートシートとして印刷したい数少ない箇条書きの1つ
...-stimpy77

6
+1 /srv。私はgitリポジトリの場所を探していましたが、Apacheコンテンツがあるのが好きではありませんでした/var/www/srv完璧な場所のようです。
ミスターヘッジホッグ

@ℝaphink、それではなぜvar代わりに呼び出されるのdataですか?
パセリエ

@ヘッジホッグ、「好きじゃない」とはどういう意味ですか?説明する気?
パセリエ

@Pacerier 90年代に戻って、/var「さまざまなデータ」のためだと言われるでしょう。初期の頃、Unixは単一のドライブでホストされていました。それが十分ではなかったとき、彼らは新しいものを手に入れ、それをマウントし、/usrそこにすべてのユーザーデータを移動しました。しかし、それは十分ではなく、古いドライブはすぐに再びいっぱいになりました。したがって、システムはからなしで起動できるすべてのバイナリを移動し/binました/usr/bin。それらは単にスペースを使い果たします。後で、ユーザー間でデータを共有する必要があったため/var、ドロップボックスとして作成して使用しました。FHSはそのようなレガシーの決定に満ちているので、少々注意を払って行う必要があります。
cprn

4

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


8
/var「さまざまな」ではなく、さまざまなシステムファイル用です。
ワンブル

4
/ varは「可変データファイル」用です。「さまざまなシステムファイル」のためだと言うのは曖昧で、誤解を招く可能性があります。o_O「opt」については正しい。
phoenix8 09

@ Eduard、/ opt / varはどうですか?そして、</ usr / var>、</ usr / local / var>
...-Pacerier

@wombleそれは誤った語源です。FHSの言うとおりですが、そうではありません。90年代に戻ると、/var「さまざまなデータ」のためだと言われます。当時読んだインターネット前の本のメモがまだあります。
cprn

2

それはあなたのローカルスタンダードが何であるかによります。

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


1
とにかく、/ varに何を入れますか(データを除く)?
チャフィンク2009

1
通常、プログラムは独自のものを/ varに貼り付けます。主にベンダー提供-ログ、一部のライブラリ、制御ファイル、.pidファイルなど。
デビッドマッキントッシュ

2
私はまったく同意しません。ライブラリは、静的な場合、に入る必要があり/usrます。動的に生成されたライブラリは/var/lib時折終わるかもしれませんが、管理者の観点からは、実際にインストールするものがわかりません/var。プログラムはそれを広範囲に使用する可能性がありますが、プログラムを起動する前はかなり空になっているはずです。
チャフィンク09

1
現在、/ varに意図的にインストールしたのはnfsen / nfdumpだけです。これは、アプリケーションのフットプリントが蓄積するすべてのnfdumpファイルであるためです。(そして、これはなんらかの形で本番環境になったテストインストールであるためです。つまり、「通常は正当な理由がない」ためです。)もちろん、ハードディスクをパーティションに分割しないため、/ var、/ opt、および/ usrはすべて同じファイルシステム上にあります。
デビッドマッキントッシュ

1
Qmailは/ varにインストールされます。これはそれに対する多くの批判の一つです。
-staticsan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.