/optと/usr/localの違いは何ですか?

/optと/usr/localの違いは何ですか?

~によるとファイルシステム階層標準/opt「追加アプリケーションパッケージのインストール」の内容です。 /usr/local「ローカルでソフトウェアをインストールするときは、システム管理者が使用します。」これらのユースケースは非常に似ているようです。ディストリビューションに含まれていないソフトウェアは、デフォルトでインストールするように構成されていることがよくあり、それをインストールするために選択した特定の韻や理由はあり/usr/localません。/opt

違いはありませんか、どちらも同じことをしますが、歴史的な理由で存在しますか?

答え1

/optどちらもオペレーティングシステムの一部ではないファイルを含むように設計されており、/usr/local同じファイルセットを含めることを意図していません。

/usr/localは、管理者によって作成されたファイルがインストールされる場所であり、一般的make./configure; make; make install。アイデアは、オペレーティングシステムに属するファイルとの競合を防ぐことです。それ以外の場合は、ローカルファイル(/usr/bin/fooオペレーティングシステムの一部ではない/usr/local/bin/fooローカル代替ファイル)が上書きまたは上書きされます。

以下のファイルはすべて/usrオペレーティングシステムインスタンス間で共有できますが、Linuxではほとんど実行されません。これは/usr読み取り専用として定義されていますが、/usr/local/binソフトウェアをローカルに正常にインストールするには読み取りと書き込みが必要なため、FHSのやや逆説的な部分です。この問題を克服するために、FHSの主なインスピレーションの源であったSVR4ファイルシステム標準を避けて/usr/local使用することをお勧めします。/opt/local

/usr/localこれはもともとBSDの遺産です。当時/usr/bin、オペレーティングシステムのコマンドのソースコードはにあり/usr/src/bin/usr/src/usr.binローカルで開発されたコマンドのソースコードはにあり/usr/local/src、そのバイナリはにありました/usr/local/bin。 (タールボールの外では)パッケージングの概念はありません。

一方、バンドル/optされていないパッケージ(つまり、オペレーティングシステムの展開の一部ではないが独立したソースから提供されるパッケージ)をインストールするためのディレクトリであり、各パッケージは独自のサブディレクトリにあります。これは、独立したサードパーティ製ソフトウェアディストリビュータによってすでに完全なソフトウェアパッケージとして提供されています。他のものとは異なり、/usr/localこのパッケージはディレクトリの規則に従います(または少なくともそうする必要があります)。たとえば、someappインストールはにあり、/opt/someappそのコマンドの1つはにあり、/opt/someapp/bin/fooその設定ファイルはにあり、対応する/etc/opt/someapp/foo.confログファイルはにあります/var/opt/someapp/logs/foo.access

答え2

基本的な違いは、/usr/localソフトウェアがシステムパッケージャによって管理されていないが、まだ標準のUNIX展開ルールに従うことです。

だからあなたは/usr/local/bin/usr/local/sbin /usr/local/includeちょっと...

/opt一方、これに従わずにモノリシックな方法で配布されるソフトウェアがあります。これには通常、「Windows」スタイルでパッケージ化された商用および/またはクロスプラットフォームソフトウェアが含まれます。

答え3

それらは実際に非常に似ており、どちらかを使用することはコメントの問題です。 Linux Magazineには、このトピックに関する視点/対位法の議論があります。ここ

答え4

私はこの問題について少し違った見方をしています。
すべてがエリヤ・グレー~の回答あなたは正しいです。クラスターにソフトウェアをデプロイするとき、実際の適用はデフォルトの環境変数とライブラリーのデフォルトの再使用に帰結します。

簡単に言えば、すべてのサブディレクトリは、/usr/localなどの適切な環境変数にあり、ldconfigの()にあります。PATHMANPATH/usr/local/lib{,64}/etc/ld.so.conf.d/

/opt/OTOHいいえ - 複数のバージョンまたは競合するパッケージがシステムに共存する必要がある場合には利点がありますが、ある種の環境管理(例:環境モジュールまたはソフトウェアコレクション)、欠点は、各インストールが/opt完全に独立している可能性があるため、共有ライブラリを複製してストレージスペースを「無駄にする」ことができることです。

タスクの共有特性のために、例えばバイナリは、等ではなく(および適切なマニュアルページ)/usr/localに直接インストールされると仮定します。/usr/local/bin/usr/local/share/man/.../usr/local/app/{bin,share/man,...}

関連情報