RCORDER(8)

名称
rcorder - 相互に依存するファイル間の依存順序の表示

書式
rcorder [-k keep] [-s skip] file ...

解説
rcorder ユーティリティは、 相互に依存するファイル間の依存順序を表示するようデザインされています。 典型的には、あるファイルが別のものの前に実行されることが必要だという シェルスクリプト群の実行順序を見付けるために使用されます。

rcorder に渡される各ファイルは、 特殊行 (シェルにはコメントに見えます) で注釈付けする必要があります。 それらは、 “条件” と呼ばれるある実行時点にファイルが依存することを示し、 各ファイルがどの “条件” を満足させ得るのかを示します。

各ファイル中には、一連の “REQUIRE”, “PROVIDE”, “BEFORE”, “KEYWORD” 行を含むブロックが存在することが必要です。 行の書式は厳密です。 各行は、単一の ‘#’ で開始し、単一の空白が続き、 “PROVIDE:”, “REQUIRE:”, “BEFORE:”, “KEYWORD:” のいずれかが続くことが必要です。 逸脱は許されません。 各依存行に続き、一連の条件が空白区切りで続きます。 複数の “PROVIDE”, “REQUIRE”, “BEFORE”, “KEYWORD” 行が登場して構いませんが、途中に余計な行が入ってはなりません。 書式に合致しない行に到達すると、構文解析が終了します。

オプションは次の通りです:

-k  指定したキーワードを “キープリスト” に追加します。 -k オプションを指定すると、合致するキーワードを含むファイルのみが列挙されます。

-s  指定したキーワードを “スキップリスト” に追加します。 -s オプションを指定すると、合致するキーワードを含むファイルは列挙されません。

ブロックの例は次の通りです:

    # REQUIRE: networking syslog
    # REQUIRE: usr
    # PROVIDE: dns nscd

このブロックが含まれるファイルは “networking”, “syslog”, “usr” の条件に依存し “dns”, “nscd” の条件を提供することを、このブロックは述べています。

ファイルには “PROVIDE” 行が無くても構いません。 その場合、なにも条件を提供しません。 ファイルには “REQUIRE” 行が無くても構いません。 その場合、ファイルは何にも依存しません。 依存順序の中の開始点が見付けられるためには、 rcorder に渡される引数の中には依存が無いファイルが少なくとも 1 個は必要です。

診断
ファイルリストの処理中にエラーが見付かると、 rcorder ユーティリティは次のエラーメッセージのいずれかを表示し、 非 0 の状態で終了します。

Requirement %s has no providers, aborting. 別のファイル中の “REQUIRE” 行に存在する条件に対応する “PROVIDE” 行を持つファイルがありません。

Circular dependency on provision %s, aborting. 表示された条件の処理中に、 あるファイル群に循環依存関係があることが検出されました。

Circular dependency on file %s, aborting. 表示されたファイルの処理中に、 あるファイル群に循環依存関係があることが検出されました。

関連項目
rc(8)

歴史
rcorder ユーティリティが最初に登場したのは NetBSD 1.5 です。

作者
-nosplit Perry E. Metzger <perry@piermont.com> と Matthew R. Green <mrg@eterna.com.au> が記述しました。