![]() |
FHSとディレクトリ階層 |
Linuxのディレクトリ階層は、ディストリビューションによって異なります。そうした中で、ディレクトリ階層を標準化しようとする動きが現れ、Filesystem Hierarchy Standard(FHS)が作られました。しかし、実際のLinuxディストリビューションはこれに従ってはいないものが多いのが現状です。
なお、Red Hat社のLinuxディストリビューションである旧Red Hat LinuxやRed Hat Enterprise Linux(RHEL)は、このFHSに従っています。Red HatクローンであるCent OSも同様FHSに従ったディレクトリ階層を取っています。
FHS Ver.2.3から言及しているディレクトリを抜き出すと以下になります。
*1 はオプション
マシンをまたがって共通(共有)するファイルのためのディレクトリです。/usr/の下には所定の構成があります。
bin/, etc/, games/, include/, kerberos/, lib/, libexec/, sbin/, share/,
src/, tmp/(シンボリックリンク)。
また、read-onlyでマウントされます。
libexec/は、ユーザからではなく他のプログラムから呼ばれる小さなヘルパープログラムを置く場所です。
share/は、アーキテクチャ(CPUタイプ等)に依存しないファイルを置く場所です。
FHSでは、システム管理者がOSのアップデートで上書きされたくない固有のソフトウェアを置く場所としています。/usr/local/の下には、/usr/の下と同様、bin/, etc/, games/, include/, lib/, libexec/, sbin/, share/, src/ が置かれます。
RHELでは、RPMパッケージでOSコンポーネントのアップデート管理をしているので、上書きの心配はありません。そこで、/usr/local/にはそのマシン固有のソフトウェアを入れる場合に使用します。(/usr/はNFSで共有する場合がある)
FHSでは、・・・T.B.D.。
RHELでは、多くのアプリケーション・ソフトウェア・パッケージのための場所として/opt/を提供しています。/opt/に置く場合、パッケージ名と同名のディレクトリを/opt/の下に作成し、全てのファイルをそこに格納します。
例) /opt/sample/bin, /opt/sample/man, /opt/sample/tool, など。
一時的にNFSなどでマウントするポイントとして使用する。リムーバルメディアはここではなく/media/をマウントポイントに使う。
プログラマーとして気にしておくディレクトリについて抽出します。
RPMパッケージでリリースされているソフトウェアは、そのままデフォルトでインストールすれば大抵FHSに準拠したディレクトリにインストールされます。しかし、ソースのtarballをmakeしてinstallするような場合、デフォルトでは/usr/local下に入るものが大半です。