1.ディレクトリ構造
これは、ファイルシステム階層標準 (2.3 PDF) でカバーする必要があります
/bin/ Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp /sbin/ Essential system binaries, e.g., init, ip, mount. /usr/bin/ Non-essential command binaries (not needed in single user mode); for all users /usr/sbin/ Non-essential system binaries, e.g. daemons for various network-services. /usr/local/ Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin/, lib/, share/
2.インストール
可能な限りパッケージ マネージャーを使用します (yum や apt-get など)。これは非常に多くのアプリケーションで可能ですが、場合によってはリポジトリを追加する必要があります。私の 2 番目の選択肢は RPM などの低レベルのパッケージで、ソースからのコンパイルは最後の手段です (ただし、これを好む人もいます)
一部のパッケージ マネージャーは RPM からインストールできます (例:yum install oddity.rpm
)
ソースからコンパイルする場合、システム インストーラーが何を行ったかを認識できるように独自のパッケージを作成することは、おそらく大きなステップではありません。
次に、問題は次のようになります。 yum remove packagename
別の方法は、実行されたすべてのシステム管理者の活動に関する適切な文書を保持することです (とにかく、テキスト ファイルにジャーナルを保持しています)
すべての */sbin ディレクトリにあるものは、システム管理者だけに役立つ傾向があります。通常のユーザーであれば、それらを PATH から除外できます。
単一のディスク上に単一の UNIX マシンがある場合、異なるディレクトリはあまり意味がありませんが、大きなシステムと異なるパーティションがある場合はより意味があります。これらの習慣の多くは、システムが少し異なっていた 80 年代と 90 年代に作られたものであることを思い出してください。
/sbin
非常にする傾向がある 小さな。これらは、本当に困ったときに必要なユーティリティです。これを /root と /lib を含む最小限のルート パーティションに配置します。 /sbin 内のものはすべて静的にリンクされていました。これは、/usr パーティションがホースされていると、動的にリンクされたアプリが役に立たなくなるためです。 fsck はここにあり、静的にリンクされています。 /usr に依存している場合は、明らかに /usr/ を fsck できません。もちろん、ルート パーティションが固定されている場合は、非常に面倒です。これが、これが非常に小さなパーティションである理由です - ここでごく少数のブロックを使用することにより、不良ディスク ブロックの確率を下げます。
/usr/sbin
バイナリは、少なくともシングル ユーザー モードにしてすべてのボリュームをマウントできる一般的なシステム管理ツールです。動的にリンクできます。
/sbin (つまり、/ パーティション上の /sbin) と /usr のパーティションを分離することも、バックアップが時間とテープの両方で非常に高価であることを思い出すと、より理にかなっています。それらが別々のパーティションにある場合は、別の方法でスケジュールできます。
/usr/local
ネットワークファイルシステムにすることができます。そのため、多くのマシンで共有できるローカルで作成された sysadmin ツールは、/usr/local/sbin に保存されることがあります。明らかに、そこにはネットワーク修正ユーティリティはありません。
繰り返しますが、複数のボリュームを持つ管理されたマシン上のネットワーク環境の大きなマシンでは、多くのことがより理にかなっていますが、単一のルート パーティションに 1 つの Linux マシンではあまり意味がありません.
2 番目の質問は、スーパーユーザーに関する別の質問にする必要があります。最初とは関係ありません。
はい、あちこちにファイルがあるのは最悪です。そのため、多くのパッケージング ソリューションがあります。 RedHat はどこでも使用される RPM を作成しました。 Solarisにはパッケージ形式がありました。 HP/UX には独自の形式があり、apt やその他の多くのパッケージ形式があります。必要に応じて適切な場所 (/usr/bin、/usr/lib) に保管し、簡単に追加および削除できるようにします。
ソースについては、以前は /usr/local のサブディレクトリに構成してインストールできるツールがあり、/usr/local/bin へのシンボリック リンクを処理してくれました。パッケージ ツールが広く普及しているため、これはあまり必要ではなく、名前を忘れてしまいました。
/opt/packagename にインストールするのが好きな人もいます そこにすべてをまとめておいてください。良い点:すべてが 1 つのディレクトリにあり、アンインストールは rm -rf /opt/packagename
です .これの欠点は、全員の PATH に /opt/packagename/bin を追加する必要があることと、通常 /opt を別のパーティションに配置せず、ルート パーティションをいっぱいにするという事実です。