web-dev-qa-db-ja.com

/ usr / localまたは/ opt?

ディストリビューションのリポジトリの一部ではないパッケージについて、Linuxでのパッケージインストールは通常どのように進めますか?

私の側では、/ optにインストールするのに慣れています。しかし、それ以来、私はこのドキュメントをインターネットで見ました: http://www.pathname.com/fhs/ 。今私は混乱しています:明らかに/ usr/localも可能性があります。

両方の違いは何ですか?共有するベストプラクティスはありますか?

ありがとう

サーファーベル

47
SirFabel
  • コンパイルおよびインストールが必要なものすべてnixスタイルおよびFHSに準拠-> /usr/local
  • その他すべて(たとえば、Java独自のapplicationserverに付属するWebアプリケーションとZipアーカイブ内のリソースのロード-> /opt
34
lajuette

追加の興味深い情報:/usr/localの本来の意味は、/usrがネットワークにマウントされている(単一の/usrが複数のコンピューターで共有されている)場合、/usr/localは別のファイルシステムになるということですコンピュータのローカル(ローカルディスク上のパーティション)。

そして、そのトピックの間、それが問題の主題から外れていても:異なるアーキテクチャの複数のコンピューターがある場合、当然、各Archに対して1つの/usrがありますが、/usr/shareはさらに別の別のものになりますアーキテクチャ間で共有されるファイルシステム(したがって「共有」)。

24
Nicolás

私が行う方法は、それ自体にプレフィックスが必要な場合ORバイナリパッケージの場合、/ optを使用します(これはSolarisの方法とほぼ同じです)。ソース/ usr/localは私が行く方法です。

7
Lee

私はすべてをプライベートディレクトリに置き、次に GNU stow を使用します。

そこで、パッケージX.verを/BASE/stow/X.verにインストールします。 GNU stowは、(シンボリックリンクを含む)すべてのパッケージを/BASE/bin/BASE/libなどに結合します。

競合とパッケージの削除は、扱いがはるかに簡単です。

6

FHS標準の解釈方法は次のとおりです。

/ usr/localは、パッケージ化されているかどうかに関係なく、ローカルで構築されたファイルまたはローカルにインストールされたファイル用で、オペレーティングシステムのインスタンスの一部になります。

/ optは、オペレーティングシステムの一部ではない「外部」パッケージをインストールする場所です。

ファイルを作成する単一のシステムでのみファイルを使用する限り、/ usr/localで問題ありません。そのため、これは大部分のオープンソースソフトウェアのデフォルトのベースディレクトリです。

パッケージを再配布する場合は、/ opt/myPackageなどのカスタムベースディレクトリを使用することをお勧めします。

3
jlliagre

Solarisは/ optをたくさん使用しました。最近のLinuxディストリビューションの多くは、/ usr/local /にあるパッケージを期待しています。考え方は同じです。オペレーティングシステムではなく、このマシンに機能を実行させるソフトウェアを置く場所です。これは、Windowsシステムの「プログラムファイル」とほぼ同じです。

1つを選んで、それに固執してください。/optを/ usr/localにシンボリックリンクするのは簡単です。

2
Kyle Hodgson

オペレーティングシステムの配布によって提供されるソフトウェアを再コンパイルする場合、ご使用のマシンに固有のいくつかのアーキテクチャの利点を活用するには、/ usr/localを使用します。

オペレーティングシステムのディストリビューション以外のソースからソフトウェアを追加する場合は、/ optに配置します。

0
cp7781