#norelated
 #navi(FHS)
 #contents
 ----
 
 * 5章 /var 階層 [#f5bb42e1]
 ** 目的 [#rfc54608]
 
  /var 階層は可変的なデータファイルが置かれます。データにはスプールディレクトリやフィル、管理用のログデータ、短期・一時利用のファイルを含みます。
  /var 階層は可変的なデータファイルが置かれます。データにはスプールディレクトリやファイル、管理用のログデータ、短期・一時利用のファイルを含みます。
 
  /var は一部に他のシステムと共有されてはならない箇所があります。例を挙げると /var/log、/var/lock、そして /var/run です。一方で /var/mail、/var/cache/man、/var/cache/fonts、/var/spool/new といった一部のディレクトリは共有されることもあります。
 
  /var は /usr を読み込み専用(read-only)として利用するための場所として存在しています。システムの操作(インストールやソフトウェアのメンテナンスは除きます)では /usr にデータは書き込ませないようにし、/var へ書き込むようにしなくてはいけません。
 
  もし /var のための専用領域が確保できない場合は、/ パーティション配下に置くよりも、/usr パーティション内に作成するほうが望ましいでしょう。(/ パーティションに /var 領域を配置してしまうとシステムが必要とする領域を圧迫する恐れがあるためです。)しかしながら /var は /usr にリンクしてはいけません。/usr と /var は異なる役割があり、名前の衝突を引き起こしてしまう場合もあるからです。リンクするのであれば /var を /usr/var へリンクするほうが良いでしょう。
 
  一般的にアプリケーションは /var 階層の直下にディレクトリを作成してはいけません。/var 階層にディレクトリを追加できるのは、システムの拡張が必要な場合や FHS メーリングリストによって協議された後のみにすべきです。
 
 ** 必要条件 [#w96e7e90]
 
  以下のディレクトリあるいはディレクトリへのシンボリック・リンクが /var に置かれます。
 
 : ディレクトリ名 | ''説明''
 :cache|アプリケーションのキャッシュデータ
 :lib|可変的な状況情報
 :local|/usr/local の為の可変的なデータ
 :lock|ファイルへのロック
 :log|ログファイルとディレクトリ
 :opt|/opt の為の可変的なデータ
 :run|プロセスを動作させる事に関係があるデータ
 :spool|アプリケーションのスプールデータ
 :tmp|システム再起動時の為に予約されている一時的なファイル
 
  過去の経緯から新しいアプリケーションによって競合することがないようにという意図で名前が確保されているディレクトリがあります。たとえば:
  /var/backups
  /var/cron
  /var/msgs
  /var/preserve
 
 ** オプション指定 [#e037b7b9]
 
  対応するサブシステムがインストールされる場合、以下のディレクトリあるいはディレクトリへのシンボリック・リンクが /var に置かれます。
 
 : ディレクトリ名 | ''説明''
 :ccout|プロセスアカウントのログ(オプション)
 :crash|システムクラッシュ時のダンプデータ(オプション)
 :games|ゲーム用の可変データ(オプション)
 :mail|ユーザのメールボックスファイル(オプション)
 :yp|NIS(ネットワーク情報サービス)のデータベースファイル(オプション)
 
 
 ** /var/account : プロセスアカウントのログ(オプション) [#k515bbe3]
 *** 目的 [#w3723367]
 
  このディレクトリでは動作中のアプリケーションが記録するログと複数のプロセスが用いるデータが置かれます(''lastcomm'' と ''sa'' といった UNIX 風システムで用いられます)。
 
 
 ** /var/cache : アプリケーションのキャッシュデータ [#yd629d54]
 *** 目的 [#be3b3f31]
 
  /var/cache はアプリケーションがデータを保管する場所です。データというのは I/O や計算に時間がかかるローカル環境で用いられるデータです。アプリケーションはデータを再作成するか復活できるようにしておかなくてはいけません。/var/spool とは異なり、キャッシュされたファイルはデータ損失をする事なく削除されることが出来ます。データはアプリケーションの動作中を含め、システムを再起動しても残っていなければいけません。
 
  /var/cache 配下のファイルはアプリケーションの仕様やシステム管理者によって不必要となる場合があります。アプリケーション側では常にこれらのファイルが手動削除されても修復させるようにしなくてはいけません(一般的にはディスク空き領域の欠乏時)。キャッシュディレクトリ上のデータフォーマットについては特に規定はありません。
 
 > ''(i) 補足説明''
 > システム管理者に対しては /var ディレクトリ配下にバックアップ作業や異なったディスクへの移動など、ディレクトリ領域を分ける事を許可しています。
 
 *** オプション指定 [#i69a5c85]
 
 : ディレクトリ名 | ''説明''
 :fonts|ローカルに生成されたフォント(オプション)
 :man|ローカル使用のマニュアル文書(オプション)
 :www|WWW プロクシあるいはキャッシュデータ(オプション)
 :<package>|パッケージ固有のキャッシュデータ
 
 *** /var/cache/fonts : ローカルに生成されたフォント [#r8f3e74b]
 
 ''目的''
 
  /var/cache/fonts ディレクトリは動的に生成されるフォントを置くために使われるべきです。とりわけ、自動的に ''mktexpk'' によって生成されるフォント全てが /var/cache/fonts 配下に適切な名前を付けたサブディレクトリに置かれなくてはいけません((現時点では TeX ディレクトリ標準構造には含まれていませんが文章は一読すべきでしょう(文章は TeX 形式のファイルとディレクトリとして記述されています)。ファイルはこちらです ftp://ctan.tug.org/tex ))。
 
 ''オプション指定''
 
  他の動的に生成されたフォントは /var/cache/fonts 配下に適切な名前を付けてサブディレクトリを作成するかもしれません。
 
 *** /var/cache/man : ローカル使用のマニュアル文書 [#uc880ae6]
 
 ''目的''
 
  このディレクトリは一般的にサイト内では /usr パーティションの中で読み込み専用(read-only)として提供されるものです。ですが、ローカル利用のマニュアル文書はこのディレクトリ内に置くことが許可されています。/usr を書き込み可能としてマウントしたサイト(シングルユーザーでのインストール作業時など)では、/var/cache/man を使わないようにし、/usr/share/man ディレクトリに cat<section> のような形式で記述されなくてはいけません。多くのサイトに対して替わりのオプションを用いることを勧めます。
 
 - 定型マニュアル文書と定型でないマニュアルを一緒に扱ってください。
 
 - 正しい書式ではないマニュアルをキャッシュさせないようにし、man 文章が呼び出される度に書式を整えるようにしてください。
 
 - ローカル向けの書式の man 文書を /var/cache/man に置くようにしてください。
 
  書式が整えられていないマニュアル文書はふつう <path>/man/<locale>/man<section> に置かれます。書式が整えられている man 文章は、 ユーザによって移動されるかインストールの共有パス名要素から与えられる <path> によって <catpath> が決められ、ディレクトリ /var/cache/man/<catpath>/<locale>/cat<section> に置かれます(<locale>要素は必要無いかもしれません)((たとえば /usr/share/man/ls.1 は /var/cache/man/cat1/ls.1 で書式が整えられますし、/usr/X11R6/man/<locale>/man3/XtClass.3x は /var/cache/man/X11R6/<locale>/cat3/XtClass.3x で書式が整えられます。))。
 
  /var/cache/man に書き込まれた man 文章は、いずれ適切なディレクトリに書式を整えて man 階層に移動されるか削除されます。同じく、man 階層化にある書式が整えられた文章であっても一定の期間アクセスされないようであれば削除されることもあります。
 
  書式が整えられているマニュアルページが読み込み専用メディア(CD-ROM など)に置かれている場合、それらは man 階層(例:/usr/share/man/cat<section>)にインストールするため、 /var/cache/man がマニュアル文書の書式を整えるために書き込み可能な場所として与えられます。
 
 > ''(i) 補足説明''
 
 > 標準規定リリース 1.2 では /var/catman の為の階層が規定されています。書式が整えられた man 文章に動的な性質を反映させるため /var/cache へとパスは移動されました。ディレクトリ名は man が PostSctipt、HTML、あるいは DVI といった"cat"コマンドによって処理できない書式も含むことができるよう階層の拡張を考慮されています。
 
 
 ** /var/crash : システムクラッシュ時のダンプデータ(オプション) [#j264bdc3]
 *** 目的 [#j6fe1593]
 
  このディレクトリはシステムクラッシュ時のダンプデータを置く場所です。この標準規定のリリース時点において、Linux でシステムクラッシュ時のダンプがサポートされていません。ですが、その他の FHS 互換システムによっては用いられるかもしれません。
 
 ** /var/games : ゲーム用の可変データ(オプション) [#vdce3774]
 *** 目的 [#i282ebe1]
 
  /usr 配下の games 関連のどのような動的なデータでもこの場所に置かれるべきです。 /usr にある可変的なデータは /var/games 配下にあると見なされるべきです。ヘルプ文書、レベル説明などのような静的なデータは /usr/share/games 配下に置いたままにしなくてはいけません。
 
 > ''(i) 補足説明''
 > /var/games はリリース 1.2 において古い /var/lib と一緒に統合されてしまうより、むしろ独自の階層を与えられました。/var/lib はホスト間でデータを共有することが許されており、分離することはローカルなバックアップ制御方針、パーミッションとディスク利用方法が乱雑になってしまうからです。さらに、/var/games は BSD によって伝統的に用いられているパスです。
 
 ** /var/lib : 可変的な状況情報 [#sbeb57c7]
 *** 目的 [#p9d7e742]
 
  この階層ではアプリケーションやシステムが持つ関連情報を置く場所です。状況情報というのはプログラム実行によって変更されたデータや特定のホスト情報に関わるデータの事です。ユーザは派ケージの調整作業のため決して /var/lib/ を調整しないようにしなくてはいけません。
 
  状況情報は一般的にアプリケーション(あるいは相互関係を持っているアプリケーションのグループ)がアプリケーションの実行と、アプリケーションの異なったインスタンスについての状態を保存しておく場所として用いられます。
 
  アプリケーション(あるいは相互関係を持っているアプリケーションのグループ)は必ず /var/lib 配下のサブディレクトリにデータを置かなくてはいけません。サブディレクトリを必要としないアプリケーションの為には /var/lib/misc というディレクトリがあります。サブディレクトリを用いるかどうかについてはディストリビューションがアプリケーションを導入する上で検討する事項です((今回の標準バージョンと前回のバージョンとの重要な違いは、アプリケーションは今後 /var/lib のサブディレクトリの使用を必要とされることです。))。
 
  /var/lib/<name> は全てのディストリビューションのパッケージがサポートしなくてはいけません。もちろん、ディストリビューションによって異なった名前を使うこともできます。
 
 
 *** 必要条件 [#g2b45b42]
 
  以下のディレクトリあるいはディレクトリへのシンボリック・リンクが /var/lib に置かれます。
 
 :ディレクトリ名|説明
 :misc|その他の状態データ
 
 *** オプション指定 [#k16b067d]
 
  対応するサブシステムがインストールされる場合、以下のディレクトリ、あるいはディレクトリへのシンボリック・リンクが /var/lib に置かれます。
 
 : ディレクトリ名 | ''説明''
 :<editor>|エディタのバックアップファイルと状態(オプション)
 :<pkgtool>|パッケージのサポートファイル(オプション)
 :<package>|パッケージとサブシステムの為の状態データ(オプション)
 :hwclock|hwclock の為の状態ディレクトリ(オプション)
 :xdm|X ディスプレイ・マネージャーのための可変的なデータ(オプション)
 
 *** /var/lib/<editor> : エディタのバックアップファイルと状態(オプション) [#kcc48160]
 
 ''目的''
 
  これらのディレクトリはエディタの異常終了によっても作成されるような保存データが置かれます(例:''elvix''、''jove''、''nvi'')。
 
  エディタによってはクラッシュ時のファイルを修復するためにディレクトリを必要としない場合もあります。ですが、エディタ稼働時にその他のデータを置く場所として利用されるかもしれません。この情報は /var/lib 配下のサブディレクトリに置かれる場合もあります(例:GNU Emacs はファイルロックのために /var/lib/emacs/lock を使います)。
 
  将来開発されるエディタもクラッシュ時の回復ファイルとファイルロックといった追加情報を必要とするのであれば、/var/lib/<editor> が用いられるべきです。
 
 > ''(i) 補足説明''
 
 > 全ての商用ベンダ同様、以前の Linux では vi あるいは vi のクローンが /var/preserve を使用します。ですが、エディタによってクラッシュ回復の為にディレクトリを必要とするなら、それらはエディタ毎に個別のディレクトリを必要とします。
 
 > エディタ固有のロックファイルは、通常、異なったデバイスかリソースである /var/lock にロックファイルが置かれており、/var/lib に置かれることはありません。
 
 
 *** /var/lib/hwclock : hwclock の為の状態ディレクトリ(オプション) [#c7204eca]
 
 ''目的''
 
  このディレクトリには /var/lib/hwclock/adjtime ファイルも含まれます。
 
 > ''(i) 補足説明''
 
 > FHS 2.1 では該当ファイルが /etc/adjtime でした。ですが hwclock がアップデートしたことにより、場所が変更となりました。
 
 *** /var/lib/misc : その他の可変的なデータ [#ha45a727]
 
 ''目的''
 
  このディレクトリには /var/lib にサブディレクトリを必要としないデータを置くために用います。このディレクトリ内では名前が衝突することがないように、それぞれ独特な名前を使うように配慮が必要です((この階層には現在 BSD によってリリースされている /var/db に置かれているファイル群を含みます。この中には locate.database と mountdtab とカーネルシンボルデータベースを含みます。))。
 
 ** /var/lock : ロックファイル [#a79c3ae5]
 *** 目的 [#aca6f2f9]
 
  ロックファイルは /var/lock ディレクトリ構造内に置かれるべきです。
 
  元々デバイスや多数のリソースを共有するアプリケーションのロックファイルは /usr/spool/locks あるいは /usr/spool/ccup といったシリアルデバイスで見受けられましたが、今は /var/lock に配置しなくてはいけません。使用するデバイス名によって "LCK.." という名前を使う規定があります。たとえば /dev/ttyS0 の為のロックファイルは "LCK..ttyS0" として作成されます((ロックされた後は /dev/ttyS0 を用いたいプログラム等が使いたいように扱えるようになります。(/var/lock 配下のロックファイルはすべて読み込み可能である必要があります)))。
 
  このようなロックファイルに用いられるフォーマットは HDB UUCP ロックファイル形式です。HDB フォーマットはプロセスID(PID) を 10 バイトの ASCII 10 進数としてプロセス形成を追跡します。たとえばプロセス 1230 のロックファイルを作るには、それらは11文字 "      1230" として構成されます。
 
 ** /var/log : ログファイルとディレクトリ [#h155e2dc]
 *** 目的 [#p90d098a]
 
  このディレクトリには多種のログファイルを置きます。ほとんどのログがこのディレクトリか適切なサブディレクトリに書き込まれます。
 
 *** オプション指定 [#pb49e365]
 
  対応するサブシステムがインストールされる場合、以下のファイルあるいはファイルへのシンボリックリンクが /var/log にあります。
 
 : ファイル名 | ''説明''
 :lastlog|それぞれのユーザの最終ログイン記録
 :messages|syslogd からのシステムメッセージ
 :wtmp|全てのログインとログアウトの記録
 
 
 ** /var/mail : ユーザのメールボックス(オプション) [#o3392d91]
 *** 目的 [#q4cdfddf]
 
  メールのスプールファイルは /var/mail を通してアクセスしなくてはならず、スプールされるファイル名の形式は <ユーザ名> でなくてはいけません(( /var/mail は他のディレクトリへのシンボリックリンクである場合もあります。))。
 
 > ''(i) 補足説明''
 
 > このディレクトリのための論理的な場所は /var/sool/mail でしたが、全ての UNIX に実装されている環境に FHS が近づくため、/var/mail へと変更されました。この変更は /var/mail こそが UNIX を実装している多くのホストで採用されているディレクトリだったため、互換性を保つために重要でした。
 
 > 物理的に /var/mail にスプールメールを移動する必要がないことは重要な点です(たとえば /va/spool/mail へのシンボリック・リンクを /var/mail とする場合)。ですが、プログラムとヘッダファイルは /var/mail を扱えるように変更していかなくてはなりません。
 
 ** /var/opt : /opt の為の可変的なデータ [#h6a73248]
 *** 目的 [#ec7b1fc1]
 
  追加ソフトウェア・パッケージが必要とする静的なファイルを置く場所は /etc に配置するのではなく、/opt 配下にインストールされた名前に従うよう /var/opt/<subdir> としてインストールする必要があります。/var/opt/<subdir> の内部構造に対してとりわけ制限はありません。
 
 > ''(i) 補足説明''
 
 > /opt についての説明を記述。
 
 
 ** /var/run : ランタイムの可変的なデータ [#uf911e69]
 *** 目的 [#if95b025]
 
  このディレクトリにはシステムが起動した後の各種システム情報データが置かれます。このディレクトリ配下にあるファイルはサーバの起動プロセス時にクリア(削除するか必要に応じて減らす)される必要があります。プログラムによっては /var/run 配下にサブディレクトリを持っている場合もあります。これは複数のランタイムを扱うプログラムのために推奨されています。((/var/run は root やデーモンを実行しているユーザ以外は書き込み出来ないようにしなくてはいけません。もし誰でも書き込みが出来るようであれば、セキュリティに関わる重大問題となります。)) プロセスIDファイル(PID)は元々 /etc 配下に置かれていましたが /var/run へ移動されることになりました。PID ファイル作成時の名前は <プログラム名>.pid という形式です。たとえば crond の PID ファイル名は /var/run/crond.pid となります。
 
 *** 必要条件 [#nd31f20e]
 
  PID ファイルの内部形式は以前から変わっていません。ファイルはではプロセス ID を ASCII 形式の 10 進数と改行コードという形式で記述されます。たとえば ''crond'' のプロセス番号が 25 であれば、/var/run/crond.pid ファイルには3つの文字が記述されます:数字の 2、3,そして改行コードです。
 
  プログラムが PID を読み込むときには柔軟性を備えていたほうが良いでしょう。たとえば、PID ファイル内に余分な空白スペースがあったり、数字の前に0が付いていたり、改行コードの欠如や追加行があるかもしれません。プログラムが PID ファイルを作成するときには、上記の項で示しているように単純な仕様書に従うべきです。
 
  現在誰がシステムを使っているかという情報を保持する utmp ファイルはこのディレクトリ内にあります。
 
  一時的な UNIX ドメイン・ソケットを保持するプログラムは、それらをこのディレクトリにおかなくてはいけません。
 
 ** /var/spool : アプリケーションのスプールデータ [#z673558c]
 *** 目的 [#m7d06da5]
 
  /var/spool は何らかの種類のプロセス処理待ちとなっているデータが置かれます。/var/spool のデータは(プログラム、ユーザ、管理者によって)利用予定となっているものです。一般的には処理が終わった後はデータが削除されます((UUCP ロックファイルは /var/lock に置かれなくてはいけません。上方の /var/lock のセクションを参照してください。))。
 
 
 *** オプション指定 [#h82af1bb]
 
  対応するサブシステムがインストールされる場合、以下のディレクトリまたはディレクトリへのシンボリック・リンクが /var/spool に置かれます。
 
 : ディレクトリ名 | ''説明''
 :lpd|プリンタのスプールディレクトリ(オプション)
 :mqueue|配信予定のメール(オプション)
 :news|news スプールディレクトリ(オプション)
 :rwho|Rwhod ファイル(オプション)
 :uucp|UUCP のためのスプールディレクトリ(オプション)
 
 *** /var/spool/lpd : ラインプリンタ・デーモンの印刷キュー(オプション) [#x146ab3e]
 
 ''目的''
 
  ''lpd'', lpd.lock といったロックファイルは /var/spool/lpd に置かれなくてはいけません。プリンタの識別ができるようにディレクトリ内ではプリンタ名をロックファイルとして用いては如何でしょう。
 
 
 ''オプション指定''
 
 : ディレクトリ名 | ''説明''
 :printer|特定のプリンタのためのスプール
 
 *** /var/spool/rwho : Rwhod ファイル(オプション) [#y53b2d4d]
 
 ''目的''
 
  このディレクトリはローカルネット内での他のシステムに関する ''rwhod'' 情報を置きます。
 
 > ''(i) 補足説明''
 
 > 若干の BSD リリースで /var/rwho ディレクトリがこのデータの為に用いられました。これは歴史的な経緯や他のシステムとの相性において、/var/spoll は「スプールされたデータの置き場」という概念に従うために /var/rwho が採用されていたのです。
 
 
 ** /var/tmp : システム再起動時の為に予約されている一時的なファイル [#k31317bc]
 *** 目的 [#i4add8a7]
 
  /var/tmp ディレクトリは、システム起動時の間のみ一時的にファイルやディレクトリを必要とするプログラムのために用いられます。つまり /tmp 配下のデータよりも極めて一時的に用いられるデータが置かれます。
 
  システム起動時に /var/tmp にファイルやディレクトリが存在してはいけません。とはいえ /var/tmp はサイト毎にシステムから典型的に削除されるので、/tmp ほど頻繁な間隔でファイルの削除を行う必要は無いとされます。
 
 ** /var/yp : NIS(ネットワーク情報サービス)のデータベースファイル(オプション) [#z3190688]
 *** 目的 [#q92cf930]
 
  以前には Sun Yellow Pages(YP) として知られていた NIS(ネットワーク情報サービス)の可変的データがこのディレクトリに置かれます。
 
 > ''(i) 補足説明''
 
 > /var/yp は NIS(yp) データのための標準的なディレクトリであり、殆どが NIC 文書とシステムで用いられます((Sun NIS+ と NIS を混同してはいけません。Sun NIS+ は /var/nis を使用します。))。
 
 
 
 #navi(FHS)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS