Unix / Linuxファイルシステム構造の背後にある推論/設計の選択は何ですか?

Unix / Linuxファイルシステム構造の背後にある推論/設計の選択は何ですか?

私は最近Windowsの使用をやめ、今コンピュータでLinuxを実行しています。 WindowsにはProgram Filesフォルダがあります。ほとんどのプログラムファイルは独自のフォルダに保存されているため、管理や閲覧が簡単に見えます。

プログラムファイルはLinux上の別の場所に保存されます。なぜですか?開発者が開発するのは簡単ですか?

答え1

はい。

これにより、次のように順番になります。

  • すべてのプログラム構成ファイルは1つのパスに配置されます。/etc
  • すべてのプログラムバイナリは1つのパスにあります/bin/usr/bin

などのようなものがあります/home/dev /boot/tmp

答え2

Linuxでの努力をおめでとうございます! Ubuntuでは、主に次のような場合です。

ユーザーがコンパイルしてインストールしたプログラム用のプログラムまたはスクリプト/usr/bin
ライブラリと、ユーザーごとに構成されたシステムプログラムの構成/usr/lib
/usr/local/bin/usr/local/lib
/etc
$HOME/.config

$HOMEホームフォルダを含む環境変数です。"/home/larry"

他の多くのプログラムはユーザープロファイルを直接保存しますが、$HOMEこれはベストプラクティスではありません。

/optいくつかの大きなプログラムは仕事をきれいに保つので、インストールするのが大好きです。

インストーラがそのオプションを提供し、他のユーザーがプログラムを使用する必要がない場合は、次の場所にインストールするか$HOME/bin$HOME/opt

ああ、最後の注意:Windowsは、ユーザーホームディレクトリの設定ファイルだけでなく、、、、などのc:\Windows\Program Files複数c:\Windows\Program Files\Common Filesc:\Windows\System32場所にファイルをインストールします。c:\Windows\ProgramDataしかし、もっと悪いことは、多くの構成情報がレジストリに分散しているため、プログラムの移植がほとんど不可能であることです。

答え3

これファイルシステム階層標準一度見る価値があるようです。そうしないと、ディスク容量が非常に高価で高価であるため、/システムの起動と使用に必要なプログラムと構成を含む最小限のディレクトリしか持たず、共有/usrNFSサーバーから他のほとんどのディレクトリをマウントできます。さらに、さまざまな冗長ディレクトリを使用すると、「ベンダー提供のアイテム」(例:)/usrと(少なくとも通常BSDでは)/usr/localパッケージがインストールされている場所をきれいに分離できます。これにより、まったく異なるディレクトリが使用されるため、ベンダーの更新はサイトにインストールされているすべてのアイテムを破損しません。たとえば、ベンダーはWebserver 2.0を提供できますが、一部のアプリケーションではWebserver 1.1が必要です。 Webserver 1.1をベンダースペースにインストールすると、ベンダーの更新によってソフトウェアが破損したり、ベンダーがソフトウェアを交換する必要がある他の問題が発生する可能性があります。 。

関連情報