/ usr / localまたは/ opt?


43

Linuxでのパッケージのインストール、distribのリポジトリの一部ではないパッケージの場合、通常どのように進めますか?

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

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

ありがとう

サーファーベル


聖戦領域であり、実際に起動するプログラミングトピックではありません。
-dmckee

回答:


32
  • Unixスタイルでコンパイルおよびインストールする必要があり、FHSに準拠するすべてのもの->/usr/local
  • 他のすべて(たとえば、独自のアプリケーションサーバーに付属するJava Webアプリケーションと、zipアーカイブ内のリソースのロード-> /opt

パッケージはもう上の/ optどちらを/ usr / localにインストールすることはできませんlintian
クリスティアーノ

24

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

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


4
いいえ...歴史的に(はい、私はそこにいました!)/ usrにはベンダーが提供したものがあり、/ usr / localはローカルにインストールされたもの(つまり、bash、gccおよびその他の素晴らしいもの)でした。
フォンブランド

@vonbrand答えに本当に矛盾していますか?ホスト間で共有する必要があるものはすべて/ usrになり、必要のないものは/ usr / localにあるように聞こえます
ディディエA.

@Didier A.、Unix( '80es)を使い始めたとき、1台のマシンがあり、ネットワークはありませんでした...そして、/ usrと/ usr / localがありました。
フォンブランド

@vonbrandああ、面白いね。それから、/ usrと/ usr / localを持つという本来の意図はまだ謎であるようです。
ディディエA.

@Didier A.、再び:/ usrはオペレーティングシステムに同梱されていたもので、「標準的な」ものでした。 。標準ではなく、一般的な使用法です。
フォンブランド

7

私がそれをする方法は、それ自体へのプレフィックスが必要な場合、またはバイナリパッケージの場合、/ optに移動することです(これはほとんどSolarisの方法です)。私がソース/ usr / localからコンパイルしている場合は、私が行く方法です。


6

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

したがって、パッケージX.verをにインストールします/BASE/stow/X.ver。GNU積み込みはその後に(シンボリックリンク付き)すべてのパッケージを結合します/BASE/bin/BASE/libなど

競合とパッケージの削除は、はるかに簡単に対処できます。


私は通常/ usr / local / stow / <packagename>を格納「パッケージ」のホームとして使用しましたが、それは良い習慣だと感じています-他の誰かが/ usr / localを見ると、何が起こっているのか、システムはシンボリックリンクを維持しています。
ステファニー

3

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

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

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

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

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


2

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

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


リーのコメント、問題について考える良い方法が好きです。Debianマシンで/ optを使用するのは少し奇妙に感じますが、おそらく個人的な好みです。
カイルホジソン

しないでください。FHSの日付はかなり古いかもしれませんが、/ usr vs / usr / local vs / optの理由は健全です:標準、配布済み。自作またはgithubからの実験的なものなど、ローカルにインストールされます。ベンダーが提供する非標準のもの。
フォンブランド

0

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.