FreeBSDとLinuxの間で/usr/local
の動作が異なることを読みましたが、FBSDポートはそこにインストールされていますが、Linuxではインストールされていません。誰かがこれについてもっと説明できますか? MacPortsがOSXのどこにインストールされているか、そしてこれら3つのOSのFHS間の最も重要な違いのリストを知りたいです(これは主に私が探しているものです)。
私はすでに調査をしましたが、あまり見つかりませんでした。
https://developer.Apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man7/hier.7.html
http://www.freebsd.org/doc/handbook/dirstructure.html
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/index.html
Filesystem Hierarchy Standard(FHS)バージョン2.3は pathname.com/fhs にあります。 usr
階層 に関するセクションがあります。 FHSは/usr/local
を必須ディレクトリとしてリストし、次のように書き込みます。
local
ローカル階層(メインインストール後に空)
さらにFHS 書き込み :
/usr/local
階層は、システム管理者がソフトウェアをローカルにインストールするときに使用します。システムソフトウェアが更新されたときに上書きされないように安全である必要があります。ホストのグループ間で共有できるが、/usr
にはないプログラムやデータに使用できます。ローカルにインストールされたソフトウェアは、
/usr/local
のソフトウェアを置き換えまたはアップグレードするためにインストールされている場合を除き、/usr
ではなく/usr
内に配置する必要があります。
さまざまなLinuxディストリビューションは通常、ソフトウェアを/usr/local
に書き込みません。代わりに、各ファイルはFHSに従ってファイルシステムに配置されます。
特定のオプションなしでソース(./configure && make && make install
)からソフトウェアをインストールすると、このソフトウェアは通常/usr/local
にコピーされます。
MacPortsのデフォルトディレクトリは/opt/local
です。 MacPortsガイド には内部の説明があります。
FHSはLinux標準です(すべてのディストリビューションが準拠しているわけではなく、少なくともGUI領域では時代遅れになっています)。標準はそうなる傾向があるので、それは主に既存の慣行の成文化です。そのため、他のUnixシステム(BSD、Mac OS、プロプライエタリUnices、Minix 3、...)でも同様の規則が使用されていることがわかります。 /usr/local
階層は非常に古く、当初はローカルで開発されたソフトウェアを保持していましたが、プロプライエタリUnixでは、システムの更新を妨げずに、ベンダー以外のソフトウェア(Usenetからダウンロードしたものを含む)をそこにインストールするのが通例になりました。 GNUプロジェクトはこの使用法を普及させ、デフォルトとしてインストールスクリプトで体系化しました(GNUはthe 90年代までのUnix用のまともなツールのソースでした。特に苛立たしいのは、通常、braideadベンダーのコンパイラと開発ツール全般、viの不良/古いバージョン、およびダムシェルでした。冗談めかして、Sunなどの新しいもので最初に行うことはGNU > /usr/local
。)。
<curmudgeon>
These kids today don't know the luxury of up to date, working
tools they have at their fingertips, running on personal machines
that would have been supercomputers in our day. For free.
</curmudegon>