Linuxでは、次のように言います。ファイルシステム階層標準は/opt
、追加のアプリケーションパッケージ用の指定された場所です。したがって、(他のものにも依存しない)独自のパッケージを開発するとき、私はそれを私が選択した階層/opt/somepackage
と一緒に内部に配置しました。
上記のリンクによると、FreeBSDはFHSに厳密に従わず、代わりにサードパーティのパッケージを/usr/local
.OPNsenseにインストールし、独自のコードを/usr/local/opnsense
。 - したがって、特定の場所にインストールされているパッケージは他のものと競合する可能性が低いですが。hier
/opt
/somepackage
FreeBSDの適切なインストール場所は何ですか?/usr/local/somepackage
代わりに/opt/somepackage
、再び下に私が選択した階層はありますか?
洞察力を提供していますが、私の質問に対する完全な答えは提供していない次の投稿を見ました。
- Linuxでは、カスタムソフトウェアに「/opt」を使用します。 FreeBSDで?- パッケージマネージャが管理していないソフトウェアについて具体的に尋ねる一方、直接開発する場合には
.pkg
。 - OpenBSDでLinux /opt/に対応するものは何ですか?- FreeBSDとは異なるOpenBSDについてお問い合わせください。
答え1
少なくともOpenBSDでは(FreeBSDにも同様に適用されるようです)、これは/usr/local
基本的にオペレーティングシステムのパッケージシステムによって管理されます。あなたの「カスタムパッケージ」いいえパッケージシステムで処理すると、同じ名前のファイルなどの他のパッケージと競合する可能性があります。したがって、オペレーティングシステムのパッケージシステムを介してインストールするパッケージを構築しない限り、/opt
他のパッケージを妨げないように(または妨げられないように)パッケージをそのままにすることをお勧めします。
答え2
/usr/local
vs.の使用は/opt/
BSDを超え、Linuxよりも優先されます。
通常、両方のディレクトリは、オペレーティングシステムに付属していないソフトウェアをインストールするために使用されます。 「パッケージマネージャがインストールしない」ソフトウェアへの言及は、実際にはオペレーティングシステムによって提供されるリポジトリおよびパッケージでは提供されていないことを意味します。多くのサードパーティのパッケージマネージャとリポジトリが/ optにインストールされています。
歴史的にローカルにインストールされたすべての(非ディスクロー)パッケージは通常、ある種の階層/usr/local
にダンプされていました。{bin,sbin,man,lib}
しかし、複数のパッケージのファイルがすべて混乱し、潜在的に互いに干渉し、更新パスが不明瞭になるため、これはすぐに混乱する可能性があります。
それで、/usr/local/$packagename/{bin,lib,man}
より良いものをインストールする練習が始まりましたが、まだ汚れています。この問題を解決するには、/ optを使用して問題を解決することをお勧めしますが、まだ/usr/local/
混乱していますが、少なくとも一部のパッケージはこの混乱ではありません。
しかし、実際には最終的にどこからでもソフトウェアをインストールすることができ、$HOME/mysillyapps/$package/{bin,man,lib}
唯一の要件は追加することですbin
($PATH
他の環境も役立ちますが)。したがって、/usr/local/
orの使用/opt
は一種の不可知論的であり、これはどこでも機能します。
ディレクトリ名に$ packagename(または$ packagename - $ version)を追加すると、インストール場所に関係なく、パッケージマネージャによってインストールされたアプリケーションとの競合のリスクが軽減されます。 (もちろん、同じパッケージを手動でインストールしてパッケージマネージャを使用するわけではありません!)
ここで唯一のOSバージョンの関連は、/usr/local/binがデフォルトでPATHに追加された可能性があることです。