~によるとファイルシステム階層標準、/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
。