diff --git a/ja_JP.eucJP/man/man1/cvs.1 b/ja_JP.eucJP/man/man1/cvs.1 index 8e9dfd1ee0..712dd7a3f4 100644 --- a/ja_JP.eucJP/man/man1/cvs.1 +++ b/ja_JP.eucJP/man/man1/cvs.1 @@ -1,2134 +1,2142 @@ -.\" %FreeBSD: src/contrib/cvs/man/cvs.1,v 1.15 1999/12/04 02:15:30 peter Exp % +.\" %FreeBSD: src/contrib/cvs/man/cvs.1,v 1.15.2.1 2000/10/31 09:37:50 obrien Exp % .de Id .\" jpman %Id: cvs.1,v 1.4 1997/09/23 13:05:40 jsakai Stab % .ds Rv \\$3 .ds Dt \\$4 .. .TH CVS 1 "\*(Dt" .\" Full space in nroff; half space in troff .de SP .if n .sp .if t .sp .5 .. .\" quoted command .de ` .RB ` "\|\\$1\|" '\\$2 .. .SH "名称" cvs \- コンカレントバージョンシステム .SH "注記" このマニュアルページは .B cvs の機能のまとめですが、より詳細な文書に関しては (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SH "書式" .TP \fBcvs\fP [ \fIcvs_options\fP ] .I cvs_command [ .I command_options ] [ .I command_args ] .SH "解説" .IX "revision control system" "\fLcvs\fR" .IX cvs "" "\fLcvs\fP \- concurrent versions system" .IX "concurrent versions system \- \fLcvs\fP" .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system" .IX revisions "cvs command" "" "\fLcvs\fP \- source control" CVS はバージョン制御システムであり、RCS や SCCS のように、 ファイル (通常はソースコード) の古いバージョンの保持と 誰が何時何故変更を施したかなどの記録の保持を可能にします。 同様のシステムとは異なり、 CVS は一時に 1 ファイルや 1 ディレクトリのみを操作対象とするのではなく、 バージョン管理されたファイルを持つディレクトリ集合からなる階層を 操作対象とします。 CVS は、リリース管理を助け、 また複数の作者による並行的なソースファイル編集を助けます。 CVS は、 様々な操作を有効にしたり記録したり制御したりするためにトリガを使用可能であり、 広域ネットワークでうまく動作します。 .SP .B cvs はマスタソースの単一のコピーを保持します。 このコピーはソースの``リポジトリ''と呼ばれます。 これは、以前の ソフトウェアリリースをいつでもシンボリックなリビジョンタグか、 または過去の日付のいずれかに基づいて取り出せるようにするための 全ての情報を含みます。 .SH "不可欠なコマンド" .B cvs はバラエティに富んだコマンドを提供します (書式説明における \fIcvs_command\fP)。 また分散環境での多様なソース管理要求を満たすために、 これらのコマンドの多くにはいくつものオプションが用意されています。 しかしながら、 .BR cvs で便利に仕事をするためにそれぞれの細部に渡ってマスタする 必要はありません。 実際、ソースリポジトリを使う (そしてそれに貢献する) には 5 つの コマンドで充分です。 .TP \fBcvs checkout\fP \fImodules\fP\|.\|.\|. 大部分の \fBcvs\fP での作業のために必要な準備: \fImodules\fP (名前をつけたソースの集合。 ここにはソースリポジトリへの相対パスを 使うこともできます) のソースの私的なコピーを作成します。 他人の作業に邪魔されることなく このコピーで作業することができます。 少なくとも 1 レベルのサブディレクトリが必ず作成されます。 .TP .B cvs update 他の開発者がリポジトリのソースに行った変更を あなたのコピーに 取り込みたいと思ったときに、あなたの私的なソースのディレクトリの \fI中で\fP このコマンドを実行して下さい。 .TP \fBcvs add\fP \fIfile\fP\|.\|.\|. あなたの作業ディレクトリの \fBcvs\fP のレコードに新しいファイルを 載せるには、このコマンドを使います。そのファイルは次にあなたが .` "cvs commit" を実行した時にリポジトリに追加されます。 注意: 新しいソースをソースリポジトリに登録するには .` "cvs import" コマンドを使って下さい。 .` "cvs add" はすでにチェックアウトされているモジュールに新しいファイルを 追加するときにのみ使います。 .TP \fBcvs remove\fP \fIfile\fP\|.\|.\|. (指定するファイルを消した後に) リポジトリからファイルを 消したいことを宣言する場合に、このコマンドを使います。 .` "cvs commit" を実行するまで削除は他へは影響しません。 .TP \fBcvs commit\fP \fIfile\fP\|.\|.\|. あなたの変更をソースリポジトリに取り込むことで、他の開発者へ 変更結果を ``公開'' したいときに、このコマンドを使います。 .SH "オプション" .B cvs のコマンドラインには .IR cvs_options を含めることができ、 これは .B cvs プログラム全体に適用されます。 ひとつの .IR cvs_command がソースリポジトリへの特定の動作を 指定します。 そして .I cvs_command の動作を完全に指定するために .I command_options と .I command_arguments とを含めることができます。 .SP .I 警告: .IR cvs_command とオプションの相対的な位置関係に正確さを 期さなければなりません。 なぜなら同じオプションが .I cvs_options の位置 ( .B cvs コマンドの左側) と .I command_options の位置 ( .B cvs コマンドの右側) のいずれに置かれるかで異なる意味を持つ可能性が あるためです。 .SP .IR cvs_command を省略できる状況が 2 つだけあります: .` "cvs \-H" または .` "cvs --help" は利用可能なコマンドの一覧を引き出します、そして .` "cvs \-v" または .` "cvs --version" は \fBcvs\fP それ自身のバージョン情報を表示します。 .SP .SH "CVS OPTIONS" リリース 1.6 現在、 .B cvs は、短いオプションと共に .SM GNU スタイルの長いオプションもサポートします。 現在はまだ 2, 3 の長いオプションしかサポートされておらず、 それらは同じ意味を持つ短いオプションの後ろにかぎ括弧で囲んで 示されています。 .SP 以下のオプションは .B cvs プログラムの全体的な制御に使います: .TP .B \-H [ --help ] 指定された .I cvs_command の用法を表示します (が、コマンドの実行は行いません)。コマンド名を 指定しないと .` "cvs \-H" は利用可能な全コマンドの要約を表示します。 .TP .B \-Q はコマンドを .I 真に 寡黙にします。コマンドは深刻な問題についてのみ出力を行います。 .TP .B \-q はコマンドをいくぶん静かにします。サブディレクトリを再帰的に 移動する際の報告のような通知的なメッセージが抑制されます。 .TP \fB\-b\fP \fIbindir\fP .SM RCS プログラムが置かれているディレクトリとして .I bindir を使います (CVS 1.9 およびそれ以前)。 環境変数 .SM RCSBIN の設定より優先されます。 これは絶対パス名で指定しなければなりません。 .TP \fB\-d\fP \fICVS_root_directory\fP マスタとなる ソースリポジトリのルートディレクトリへのパス名として .I CVS_root_directory を使います。 環境変数 .SM CVSROOT の設定より優先されます。 これは絶対パスで指定しなければなりません。 .TP \fB\-e\fP \fIeditor\fP ログ情報の入力においてエディタとして .I editor を使います。 環境変数 -.SM CVSEDITOR -と +.SM CVSEDITOR\c +, +.SM VISUAL\c +, .SM EDITOR の設定より優先されます。 .TP .B \-f .B cvs スタートアップファイル (\fI~/.cvsrc\fP) を読み込みません。 .TP .B \-l コマンドヒストリに .I cvs_command のログを取りません (しかし実行はします)。コマンドヒストリに関する 情報については .B history コマンドの説明を参照して下さい。 .TP .B \-n いかなるファイルも変更しません。 .IR cvs_command を実行しようとしますが、 経過報告のみを行います。ファイルへの削除、更新やマージのいずれも 行いませんし、新しいファイルも作成しません。 .TP .B \-t プログラムの実行をトレースします。 .B cvs の動作のステップを示すメッセージを表示します。 不慣れなコマンドの影響の可能性を調べるのに .B \-n との組み合わせで特に有用です。 .TP .B \-r 新しい作業ファイルを読み出し専用にします。 環境変数 .SM CVSREAD がセットされている場合と同じ効果を持ちます。 .TP .B \-R 読み出し専用リポジトリモードをオンにします。 これにより、 anoncvs サーバ上などの読み出し専用リポジトリからのチェックアウトや、 CDROM 上のリポジトリからのチェックアウトが可能になります。 環境変数 .SM CVSREADONLYFS がセットされている場合と同じ効果を持ちます。 また、 .B \-R を使用すると NFS を介したチェックアウトが高速になります。 .TP .B \-v [ --version ] .BR cvs のバージョンと著作権情報を表示します。 .TP .B \-w 新しい作業ファイルを読み書き可能にします (デフォルトです)。 環境変数 .SM CVSREAD がセットされていても無視します。 .TP .B \-g 強制的に、グループ書き込み権限を作業ファイルに付加します。 典型的には、 単一のチェックアウトされたソースツリーを複数ユーザで共有する場合に このオプションを使用し、 各ユーザがより安全な umask でシェルを使用できるようにします。 この機能を使用するためには、 チェックアウトするソースツリーを格納するディレクトリを作成し、 本ディレクトリのグループをプライベートグループに設定し、 本ディレクトリ下のファイルがディレクトリのグループ ID を継承するようにします。 FreeBSD では自動的に、ファイルはディレクトリのグループ ID を継承します。 SysV では、典型的には SGID ビットをディレクトリに設定する必要があります。 チェックアウトしたツリーを共有するユーザは、 このグループに含まれる必要があります。 単一のチェックアウトされたソースツリーを共有するということは、 共通の CVS リポジトリに複数ユーザのアクセスを許すこととまったく異なることに 注意してください。 共通の CVS リポジトリへのアクセスは、 共有グループ書き込み権限によって既に実現されており、 本オプションを必要としません。 本オプションを透過的に使用するためには、 単に 'cvs -g' という行を ~/.cvsrc ファイルに置くだけで良いです。 プライベートグループもしくはプライベートモード 0700 のディレクトリに 全ソースをチェックアウトしたものをファイヤウォールで防御しているのでない限り、 本オプションの使用は勧められません。 .TP .B \-x クライアントとサーバの間の通信を全て暗号化します。 現在では、Kerberos コネクション使用時のみ使用可能です。 .TP \fB\-z\fP \fIcompression\-level\fP ファイルをネットワーク経由でやりとりする際、 圧縮レベル \fIcompression\-level\fP で .B gzip を使い、やりとりするデータの圧縮と伸長を行います。リンクの両端で .SM GNU .B gzip プログラムがその時点でのサーチパス中に存在する必要があります。 .SH "使用法" .` "cvs \-H" で全般のヘルプを要求する場合を除き、 行いたい特定のリリース制御機能を選択するために、 .B cvs に対して一つの .I cvs_command を指定しなければなりません。 各 .B cvs コマンドはそれ自身のオプションと引数の集まりを受け付けます。 しかしながら、多くのオプションが複数のコマンドに渡って利用可能です。 .B \-H オプションをコマンドと共に指定することで、 各コマンドの使用法のまとめを表示することができます。 .SH "CVS のスタートアップファイル" 通常、CVS は起動時にユーザのホームディレクトリから .I .cvsrc というファイルを読み込みます。この起動時の手続きは .B \-f フラグで止めることができます。 .SP .I .cvsrc ファイルには CVS コマンドに引数リストを付けて、1 行に 1 つの コマンドを並べます。例えば \fI.cvsrc\fP に以下のように書くと: .SP diff \-c .SP .` "cvs diff" コマンドには常にコマンドラインで指定されたオプションに加えて \-c オプションが渡されるという意味になります (この場合 .` "cvs diff" を実行すると 全てにおいて context diff 形式が生成されるという 効果を持ちます)。 .SP 大域的なオプションは、\fBcvs\fP キーワードを使用して指定します。 例えば次の .SP cvs \-q .SP は、大域的オプション \-q が指定されたかのように全 .` "cvs" コマンドが動作することを意味します。 .SH "CVS COMMAND のまとめ" 以下は全 .B cvs コマンドの解説を要約したものです: .TP .B add 新しいファイルまたはディレクトリをリポジトリに追加します。 ファイルについては追加を同ファイルに対する .` "cvs commit" が行われるまで待ちます。 以前に .` "cvs checkout" を行うことで作成されたソースの中からのみ実行可能です。 新しいソース階層の全体を .B cvs の制御下に置くには .` "cvs import" を使って下さい。 (リポジトリを直接に変更するものではありません。 作業ディレクトリを変更します。) .TP .B admin ソースリポジトリに対して 制御コマンドを実行します。(リポジトリを直接に変更します。 作業ディレクトリを使用しますが変更は行いません。) .TP .B checkout 編集作業のためのソースファイルの作業ディレクトリを作成します。 (作業ディレクトリを生成または変更します。) .TP .B commit 作業ディレクトリでの変更、追加、削除部分をソースリポジトリに 反映します。(リポジトリを変更します。) .TP .B diff 作業ディレクトリのファイルとソースリポジトリ、または ソースリポジトリ中の 2 つのリビジョン間の差分を表示します。 (リポジトリ、作業ディレクトリのいずれも変更しません。) .TP .B export サイトからの出荷のための一揃いのソースファイルのコピーを用意します。 .` "cvs checkout" と違い .B cvs 管理のためのディレクトリが作られず (そしてそのため .` "cvs export" で作成されたディクトリから .` "cvs commit" を行うことはできません)、 シンボリックタグが指定されなければなりません (リポジトリを変更しません。 作業ディレクトリに似たディレクトリを 作成します)。 .TP .B history ソースリポジトリの特定のファイルまたはディレクトリにあなたや 他の人が実行した .B cvs コマンドを表示します。(リポジトリも作業ディレクトリも変更しません。) ヒストリログは .` "$CVSROOT/CVSROOT/history" ファイルが作成されることで有効になった場合にのみ記録されます。 .BR cvs ( 5 ) を参照して下さい。 .TP .B import 外部で行われた更新内容を ``ベンダブランチ'' としてソースリポジトリに 取り込みます。(リポジトリを変更します。) .TP +.B init +CVSROOT サブディレクトリとデフォルトの制御ファイルを追加することで、 +リポジトリを初期化します。 +リポジトリを使用する前に、 +本コマンドを使用するか、他の方法でリポジトリを初期化する必要があります。 +.TP .B log ログ情報を表示します。 (リポジトリも作業ディレクトリも変更しません。) .TP .B rdiff リポジトリの中の 2 つのリリースの間の差分の集合をパッチファイルとして 用意します。(リポジトリも作業ディレクトリも変更しません。) .TP .B release .` "cvs checkout" をキャンセルし、 全ての変更を捨て去ります。 (作業ディレクトリを削除できます。 リポジトリは変更しません。) .TP .B remove ソースリポジトリからファイルを削除します、そのファイルに .` "cvs commit" が実行されるまで保留されます。(直接リポジトリには影響しません。 作業ディレクトリを変更します。) .TP .B rtag ソースリポジトリの特定のリビジョンのファイルに明示的に シンボリックタグを指定します。 .` "cvs tag" も参照して下さい。 (リポジトリを直接変更します。作業ディレクトリは必要なくまた 変更もしません。) .TP .B status 現在のファイルの状態を表示します: 最新バージョン、作業ディレクトリの ファイルのバージョン、作業バージョンが編集されたかどうか、オプションで .SM RCS ファイル中のシンボリックタグ。(リポジトリ、作業ディレクトリとも 変更しません。) .TP .B tag リポジトリ中のファイルにシンボリックタグを指定します。 デフォルトでは、作業ディレクトリと最後に同期を取ったリビジョンに タグをつけます。 (直接リポジトリを変更します。作業ディレクトリを使いますが 変更はしません。) .TP .B update リポジトリから変更を取り出して作業ディレクトリを最新状態にします。 可能であればマージが自動で行われます。 変更点が衝突しているために手動で解決しなければならない場合は、 警告が表示されます。(作業ディレクトリを変更します。 リポジトリは変更しません。) .SH "共通の COMMAND OPTIONS" この節では 複数の .B cvs コマンドで使用できる .I command_options について説明します。必ずしも全てのコマンドがこれら全てのオプションを サポートしているわけではありません。 コマンドの各オプションは、それが 意味を成すコマンドでのみサポートされます。しかしながら、 コマンドがそれらのオプションのひとつを持つとき、 他のコマンドでもそのオプションが同じ意味を持つと考えて差し支えありません。 (個々のコマンドと共に列挙してある別のオプションは ある .B cvs コマンドと別のコマンドで異なる意味を持つかもしれません。) .I "注意:" .B history コマンドは例外です。 このコマンドは、これら標準のオプションとも衝突するたくさんの オプションをサポートしています。 .TP \fB\-D\fP \fIdate_spec\fP \fIdate_spec\fP 以前のものの中で最も最近のリビジョンを使います (単独の 引数で、日時の表記は過去の日時を指定します)。 多種多様な日時のフォーマットが、 特に ISO ("1972-09-24 20:05") または Internet ("24 Sep 1972 20:05") が サポートされます。 特定のタイムゾーンが指定されていなければ、\fIdate_spec\fP は ローカルタイムゾーンで解釈されます。 ソースファイルの個人的なコピーを作るときに使うと、指定は ``sticky'' と なります。 つまり、\fB\-D\fP を使って作業ファイルを取り出すと、 \fBcvs\fP は指定された日時を記録します。 これは同じディレクトリでのその後の update で同じ日時を使うように するためです (これを明示的に無効にするよう指定していない場合に限ります。 \fBupdate\fP コマンドの説明を参照して下さい)。 .B \-D は .BR checkout ", " diff ", " history ", " export ", " .BR rdiff ", " rtag ", " .B update コマンドで有効です。 有効な日時指定には以下のようなものがあります: .in +1i .ft B .nf 1 month ago 2 hours ago 400000 seconds ago last year last Monday yesterday a fortnight ago 3/31/92 10:00:07 PST January 23, 1987 10:05pm 22:00 GMT .fi .ft P .in -1i .TP .B \-f \fBcvs\fP コマンドに特定の日時かタグを指定した場合、 通常は指定したタグを含まない (または指定した日時に存在しなかった) ファイルを無視します。一致するタグまたは日時が存在しなくても ファイルを取り出したいときは \fB\-f\fP オプションを使います。 (その場合、最も新しいバージョンが使われます。) .B \-f は以下のコマンドで使用できます: .BR checkout ", " export ", " .BR rdiff ", " rtag ", " update .TP -.B \-H -ヘルプ; そのコマンドで使用可能なオプションの説明を表示します。 -これは -.I 全ての -.B cvs -コマンドでサポートされる唯一のオプションです。 -.TP \fB\-k\fP \fIkflag\fP デフォルトの キーワード処理を変更します。 \fB\-k\fP オプションは .BR add ", " checkout ", " diff ", " export ", " .BR rdiff ", " update コマンドで使用できます。 ソースファイルの個人的なコピーを作成するときに使うと \fIkflag\fP の指定は ``sticky'' になります。 つまり、このオプションを \fBcheckout\fP か \fBupdate\fP コマンドで指定すると、 \fBcvs\fP は指定した \fIkflag\fP をファイルに関連付け、 他のものを指定するまで、以降の \fBupdate\fP コマンドでそれを使い続けます。 .SP より有用な \fIkflag\fP としては \-ko と \-kb (バイナリファイル用) と \-kv があります。\-kv は .B export の際、どこか別のサイトで後に .B import されてもキーワード情報が残るようにしたい場合に有用です。 .TP .B \-l ローカル; サブディレクトリを再帰的に処理するのではなく、 現ディレクトリでのみ実行します。 以下のコマンドで使用できます: .BR checkout ", " commit ", " diff ", " .BR export ", " remove ", " rdiff ", " rtag ", " .BR status ", " tag ", " update .I 注意: これは .B cvs コマンドの .I 左 に指定することのできる、全体に作用する .` "cvs \-l" オプションとは違います! .TP .B \-n .BR checkout / commit / tag / update のいずれのプログラムも .I 実行しません。 (プログラムはそれぞれの動作中にモジュールデータベースで 実行することを指定される可能性があり、このオプションはこれを バイパスします。) .BR checkout ", " commit ", " export ", " .B rtag コマンドで利用できます。 .I 警告: これは .B cvs コマンドの .I 左側 に指定できる、全体に作用する .` "cvs \-n" オプションと同じではありません。 .TP .B \-P .BR checkout " か " update によって更新されたことで空になった余分なディレクトリを 取り除きます (すなわち削除します)。 通常は、空のディレクトリ (リビジョン管理されたファイルを 含まないもの) は残されます。 .B \-P を指定すると、チェックアウトしたソースからそういったディレクトリを 黙って削除します。 これはリポジトリからはディレクトリを削除しません。あなたが チェックアウトしたコピーから削除するだけです。 このオプションは .B \-r か .B \-D オプションが .BR checkout " と " export で指定された場合に暗黙のうちに 指定されることに注意して下さい。 .TP .B \-p リポジトリから取り出されたファイルを、カレントディレクトリに 書き込むのではなく、標準出力へパイプします。 .BR checkout " と " update コマンドで使用できます。 .TP \fB\-r\fP \fItag\fP デフォルトの ``head'' リビジョンの代わりに引数 .I tag で指定されたリビジョンを使います。 \fBtag\fP と \fBrtag\fP コマンドで 付けられた任意のタグと共に、常に 2 つの特別なタグが使用できます: .` "HEAD" はリポジトリ中で最も新しい有効なバージョンを指し、 そして .` "BASE" はカレントの作業ディレクトリに最後にチェックアウトした リビジョンを指します。 .SP このオプションを .` "cvs checkout" か .` "cvs update" でファイルのコピーを作成するときに使うと、 \fItag\fP の指定は ``sticky'' です: \fBcvs\fP は \fItag\fP を記憶して以降の \fBupdate\fP コマンドでも、他のものを 指定するまで、それを使い続けます。 .I tag としては シンボリックまたは番号によるものが使用できます。 .SM RCS ファイルが指定されたタグを含んでいないときに警告メッセージを抑止するため 全体に作用する .B \-q オプションをコマンドオプション .B \-r と一緒に指定すると便利な場合が多くあります。 .B \-r は .BR checkout ", " commit ", " diff ", " .BR history ", " export ", " .BR rdiff ", " rtag ", " update コマンドで使用できます。 .I 警告: これは .B cvs コマンドの .I 左側 に指定し、全体に作用する .` "cvs \-r" オプションと同じではありません。 .SH "CVS COMMANDS" 以下が (最終的な) 全 .B cvs コマンドの詳細とそれぞれが受け付けるオプションです。 各コマンドの最初のサマリ行の説明は 3 種類の事柄をまとめています: .TP 1i \ \ \ \ コマンドのオプションと引数 特別なオプションが以下で説明されます。共通のコマンドオプションは サマリ行にしか現れないかもしれません。 .TP 1i \ \ \ \ 作業ディレクトリかリポジトリか? いくつかの \fBcvs\fP コマンドは実行に作業ディレクトリが必要です。 いくつかはリポジトリが必要です。同様に、いくつかのコマンドは リポジトリを \fI変更し\fP 、いくつかは作業ディレクトリを変更し、 いくつかは何の変更も行いません。 .TP 1i \ \ \ \ 同義語 多くのコマンドには同義語があります。 同義語は正式な名前よりも覚えやすい (あるいはタイプしやすい) と 感じることでしょう。 .PP .TP \fBadd\fP [\fB\-k\fP \fIkflag\fP] [\fB\-m '\fP\fImessage\fP\fB'\fP] \fIfiles.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .B new .br .B add コマンドを使って ソースリポジトリに新しいファイルまたはディレクトリを作成します。 .B add で指定されるファイルまたはディレクトリは、すでに カレントディレクトリ ( .B checkout コマンドで作成されたディレクトリでなければなりません) に 存在しなければなりません。 新しいディレクトリ階層の全体をソースリポジトリに追加する (例えば、サードパーティのベンダから受け取ったファイル群のような) には、 代わりに .` "cvs import" コマンドを使います。 .SP .` "cvs add" の引数が直下のサブディレクトリを指しているなら、そのディレクトリが ソースリポジトリの現位置に作成され、必要な .B cvs 管理ファイルが作業ディレクトリに作成されます。 ディレクトリがすでにソースリポジトリに存在した場合でも、 .` "cvs add" はあなたのバージョンのディレクトリに管理ファイルを作成します。 これによって、あなたがソースを .B checkout した後に誰か他の人がディレクトリを作っていても .` "cvs add" でそのディレクトリをあなたの私的なソースに作成することが 可能になります。以下のようにすることができます: .SP .in +1i .ft B .nf example% mkdir new_directory example% cvs add new_directory example% cvs update new_directory .fi .ft P .in -1i .SP .` "cvs update" を使った別のアプローチもあります: .SP .in +1i .ft B .nf example% cvs update -d new_directory .fi .ft P .in -1i .SP (新しく \fIできた\fP ディレクトリをあなたの作業ディレクトリに 追加するには、おそらく .` "cvs checkout" か .` "cvs update -d" を使用する方が簡単でしょう。) .SP .` "cvs commit" で変更が恒久的なものとされるまで、追加されたファイルは ソースリポジトリには置かれません。 .` "cvs remove" コマンドで削除されたファイルに対して .` "cvs add" を行うと、間で .` "cvs commit" コマンドが実行されていなければファイルが復活します。 .SP 新しいファイルを .` "cvs commit" で恒久的なものにするときに、いつものように、ログメッセージを指定する 機会があります。もしファイルの .I 作成 と対応するもう一つのログメッセージを指定したいならば (例えば、ファイルの目的を説明するなど)、 .B add コマンドの .` "\-m \fImessage\fP" オプションで指定することができます。 .SP .` "-k kflag" オプションで このファイルがチェックアウトされるときの デフォルトを指定できます。 引数 .` "kflag" は .SM RCS ファイルに記録されて .` "cvs admin" で変更することができます。 展開された キーワードを持たないであろうバイナリをチェックインする場合には .` "-ko" を指定すると便利です。 .TP \fBadmin\fP [\fIrcs-options\fP] \fIfiles.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B rcs .br これは .BR rcs ( 1 ) に似た管理機構と対応する .B cvs のインタフェースです。 なんのフィルタや変換も行いません。 しかしながら、このコマンドは再帰的に働きます。よって使用には 特別な注意を払わなければいけません。 .TP \fBcheckout\fP [\fBoptions\fP] \fImodules\fP.\|.\|. .I 以下が必要: リポジトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .BR co ", " get .br .IR modules で指定されたソースファイルのコピーを持つ 作業ディレクトリを作成します。他の大部分の .B cvs コマンドは作業ディレクトリに作用するものなので、これらを使う前に .` "cvs checkout" を実行しなくてはなりません。 .SP \fImodules\fP はいくつかのソースディレクトリとファイルを 集めたものに対するシンボル名 (それ自体は .` "modules" というモジュールとしてソースリポジトリに定義されています。 .BR cvs ( 5 ) 参照) か、あるいはリポジトリ中でのディレクトリまたはファイルへのパス名です。 .SP 指定した .I modules に応じて、 .B checkout は再帰的にディレクトリを作成して適切なソースファイルで満たします。 その後はいつでも、(他のソフトウェア開発者達がソースの彼らの分のコピーを 編集しているかどうかを気にすることなく) これらのソースファイルを編集したり、 他の人によってソースリポジトリに行われた新しい変更を取り込むために これらを更新 (update) したり、 あなたの作業を恒久的な変更としてリポジトリに 登録 (commit) することができます。 .SP .B checkout はディレクトリの作成に使われることに注意して下さい。 作成されるディレクトリのトップレベルは常に .B checkout が起動されたディレクトリに追加され、そして通常、指定された .IR module と同じ名前を持ちます。 .I module がエイリアスの場合は、作成されたサブディレクトリは違う名前を持つかも しれませんが、それがサブディレクトリであること、そして .B checkout はファイルが私的な作業領域に取り出される際に各ファイルへの 相対パスを表示すること (全体に作用する .B \-Q オプションを指定していなければ) は当てにできます。 .SP すでに以前の .B checkout で作成されているディレクトリで .` "cvs checkout" を実行することも許されています。これは 以下で説明する .B update コマンドに .B \-d オプションを指定するのと同じ効果を持ちます。 .SP .` "cvs checkout" で使える .I options は以下の標準のコマンドオプションです。 .BR \-P ", " \-f ", " .BI \-k " kflag" \&, .BR \-l ", " \-n ", " \-p ", " .BR \-r .IR tag ", " .BI \-D " date"\c .SP これらに加えて、以下の特別のコマンドオプションを .BR checkout で使うことができます: .SP .B \-A オプションで sticky なタグ、日付または .B \-k オプションをリセットできます。(作業ファイルを \fB\-r\fP, \fB\-D\fP, \fB\-k\fP オプションのいずれかを使って取り出すと、 \fBcvs\fP は対応するタグ、日付、\fIkflag\fP を記録して以降の 更新 (update) でそれを使い続けます。 \fB\-A\fP オプションを使って \fBcvs\fP に それらの指定を忘れさせ、ファイルの ``head'' バージョンを取り出します)。 .SP .BI \-j " branch" オプションはベースとなったリビジョンと、そこから変更された結果の リビジョンとの差分をマージします (例えば、もしタグがブランチを 指しているときは、 .B cvs は、そのブランチで行われた全ての変更を作業ファイルにマージします)。 .SP 2 つの \fB-j\fP オプションを指定すると、 .B cvs は 2 つの各々のリビジョン間での変更をマージします。 これは特定の差分を作業ファイルから ``削除'' するために使うことが できます。 .SP 加えて、各 \fB-j\fP オプションをブランチで使う場合に必要であれば 日時指定を加えることができ、選択するリビジョンを指定した日時以内に 制限できます。 日時を加える場合はタグにコロン (:) を付けて指定します。 例としては .` "cvs import" でローカルな変更と衝突する部分のあるソースを import するときに 実行するように指示されるコマンドがあります: .SP .in +1i .ft B .nf example% cvs checkout -jTAG:yesterday -jTAG module .fi .ft P .in -1i .SP .B \-N オプションと .` "\-d \fIdir\fP" を指定することで作業ディレクトリでモジュールのパスが短縮されるのを 防げます。(通常、明示的に対象ディレクトリを指定すると \fBcvs\fP は なるべくパスが短くなるようにします。) .SP .B \-c オプションで、作業ディレクトリのファイルやディレクトリに作成や変更を 行う代わりに、モジュールファイルをソートしたものを標準出力にコピー します。 .SP .BI \-d " dir" オプションで、モジュール名ではなく、 .I dir で指定した名前のディレクトリを作業ファイルのために作成します。 \fB\-N\fP を一緒に指定しない場合は、\fIdir\fP の下に作成されるパスは 可能な限り短くなります。 .SP .B \-s オプションを使って .B \-s オプションでモジュールファイルに格納されたモジュール単位の ステータス情報を表示します。 .TP \fBcommit\fP [\fB\-lnR\fP] [\fB\-m\fP '\fIlog_message\fP' | \fB\-f\fP \fIfile\fP] [\fB\-r\fP \fIrevision\fP] [\fIfiles.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B ci .br 作業ディレクトリでの変更を共有のソースリポジトリに組み込むにときには .` "cvs commit" を使います。 .SP コミットする対象となる \fIfiles\fP を指定しない場合、現在の 作業ディレクトリ中の全ファイルが調べられます。 .B commit はあなたが本当に変更したファイルだけを慎重にリポジトリで変更します。 デフォルトでは (または明示的に .B \-R オプションを指定した場合)、サブディレクトリのファイルも 調べられ、もし変更されていればコミットされます。 .B \-l オプションで現ディレクトリのみ .B コミット するように制限できます。 変更されていなくても強制的にファイルをコミットしたい場合があるかも しれません。 これは .B \-f フラグで可能で、これは同時に再帰も抑止します (もちろん .B \-R で再帰するようにできます)。 .SP .B commit は選択されたファイルがソースリポジトリの現リビジョンに対して 最新であることを確認します。 もし選択されたファイルのいずれかが まず .` "cvs update" で最新にされなければならないなら、そこで通知してコミットせずに終ります。 .B commit は .B update コマンドを呼び出しません。update すべきときであるかどうかの判断は ユーザにゆだねられます。 .SP 全てがうまくいくと、ログメッセージを入力するためにエディタが 呼び出されます。ログメッセージは一つかそれ以上のログを取る プログラムに書き込まれて ソースリポジトリのファイルに置かれます。 代わりにコマンドラインで .B \-m オプションと共にログメッセージを指定し、 エディタの呼び出しを抑制することができます。また .B \-F オプションで引数の \fIfile\fP にログメッセージが含まれていることを 指示することもできます。 .SP .B \-r オプションで特定のシンボリックまたは番号で指定される リビジョンとしてコミットできます。 例えば、全ファイルを リビジョン ``3.0'' に上げる (変更されていないものも含めて) には、以下のようにします: .SP .in +1i .ft B .nf example% cvs commit -r3.0 .fi .ft P .in -1i .SP .B cvs はメインの幹上のリビジョン (ドットが 1 つのリビジョン) へのコミットのみ 許します。 しかしながら、 .B \-r オプションでブランチ上のリビジョン (偶数個のドットをもつリビジョン) へ コミットすることもできます。 ブランチとなるリビジョンを作成するには、通常 .BR rtag " または " tag コマンドの .B \-b オプションを使います。 その後、 .BR checkout " または " update のいずれかでソースのベースを新しく作成したブランチにすることができます。 それ以降、それらの作業ファイルで行われた全ての .B commit される変更点は自動的にブランチのリビジョンに追加され、 それによって主たる開発ラインが混乱させられることはありません。 例をあげると、製品のバージョン 1.2 へのパッチを作成しなければ ならなくなったとすると、バージョン 2.0 がすでに開発中だったとしても、 以下のようにできます: .SP .in +1i .ft B .nf example% cvs rtag -b -rFCS1_2 FCS1_2_Patch product_module example% cvs checkout -rFCS1_2_Patch product_module example% cd product_module [[ hack away ]] example% cvs commit .fi .ft P .in -1i .SP 極めて実験的なソフトウェアを開発しているとして、 前の週にチェックアウトしたなんらかのリビジョンをベースにしていると します。 あなたのグループの別の人がこのソフトウェアであなたと一緒に作業したいが、 主たる開発ラインの邪魔はしたくないと考えたなら、あなたはあなたの 変更点を新しいブランチにコミットすると良いでしょう。 すると別の人はあなたの実験的な変更をチェックアウトして .B cvs の衝突解決機能を最大限に利用することができます。 シナリオは以下のようになります: .SP .in +1i .ft B .nf example% cvs tag -b EXPR1 example% cvs update -rEXPR1 [[ hack away ]] example% cvs commit .fi .ft P .in -1i .SP 別の人は単純に .` "cvs checkout -rEXPR1 whatever_module" とすれば実験的な変更を採り入れてあなたと作業できるようになります。 .TP \fBdiff\fP [\fB\-kl\fP] [\fIrcsdiff_options\fP] [[\fB\-r\fP \fIrev1\fP | \fB\-D\fP \fIdate1\fP] [\fB\-r\fP \fIrev2\fP | \fB\-D\fP \fIdate2\fP]] [\fIfiles.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: なにも変更しません。 .br 作業ディレクトリのファイルとソースリポジトリのリビジョンを .` "cvs diff" コマンドで比較できます。もし特定のリビジョンを指定しなければ、 ベースにしたリビジョンと比較されます。 標準の .B cvs コマンドのオプション .B \-r で比較の対象となるリビジョンを指定することもできます。 最後に、 .B \-r を 2 回 使うと、リポジトリの 2 つのリビジョン間の差分を取ることができます。 過去のリビジョンとの差分を取るために .B \-D オプションを指定することもできます。 .B \-r と .B \-D オプションは常に指定された中で 2 つまでを組み合わせられます。 .SP 他の使用可能なオプションについては .BR rcsdiff ( 1 ) を参照して下さい。 .SP ファイルを何も指定しないと、 .B diff は現ディレクトリ (そして、標準オプション .BR \-l を指定していなければ そのサブディレクトリ) の全てのファイルについて、 ソースリポジトリの対応するリビジョンと異なっているもの (つまり .I あなたが 変更したファイル) または指定されたリビジョンと 異なっているものについて、その差分を表示します .TP \fBexport\fP [\-\fBf\|lNnQq\fP] \fB\-r\fP \fIrev\fP\||\|\fB\-D\fP \fIdate\fP [\fB\-d\fP \fIdir\fP] [\fB\-k\fP \fIkflag\fP] \fImodule\fP.\|.\|. .I 以下が必要: リポジトリ。 .br .I 以下を変更: 現ディレクトリ。 .br このコマンドは .` "cvs checkout" の一種です。 \fBcvs\fP の管理ディレクトリを持たない \fImodule\fP のソースのコピーが必要なときに使います。 例えば、サイト外にソースを出す準備をするために .` "cvs export" を使うことができます。 このコマンドでは日付またはタグを指定することが \fI必要\fP です。 (\fB\-D\fP または \fB\-r\fP によって)。それによって出荷したソースを 確実に再構成できるようになります。 .SP 標準でないオプションは .` "\-d \fIdir\fP" (ソースをディレクトリ \fIdir\fP に書き込みます) と .` "\-N" (モジュールパスを短縮しません) のみです。 これらは .` "cvs checkout" の同名のオプションと同じ意味を持ちます。 .SP .B export が使われるときは .B \-kv オプションが有用です。 これによって キーワードが、どこか別のサイトで .B import が行われたときにリビジョン情報が失われないような形に展開されるように なります。 他の \fIkflag\fP を .` "cvs export" で使用することもできます。その説明は .BR co ( 1 ) にあります。 .TP \fBhistory\fP [\fB\-\fP\fIreport\fP] [\fB\-\fP\fIflags\fP] [\fB\-\fP\fIoptions args\fP] [\fIfiles\fP.\|.\|.] .I 以下が必要: .` "$CVSROOT/CVSROOT/history" ファイル。 .br .I 以下を変更: 何も変更しません。 .br \fBcvs\fP はヒストリファイルを管理しており、各 \fBcheckout\fP, \fBcommit\fP, \fBrtag\fP, \fBupdate\fP, \fBrelease\fP コマンドの使用を記録します。 .` "cvs history" を使って、この情報を色々なフォーマットで表示することができます。 .SP .I 警告: .` "cvs history" は .` "\-f", .` "\-l", .` "\-n", .` "\-p" を .SM 共通の COMMAND OPTIONS\c \&での説明とは異なる意味に使用します。 .SP いくつかのオプション (上で \fB\-\fP\fIreport\fP となっている部分) は どんな種類のレポートを生成するかを制御します: .TP 1i .B \ \ \ \ \ \ \-c 今までの各 \fBcommit\fP (つまりリポジトリの変更) についてレポートします。 .TP 1i \fB\ \ \ \ \ \ \-m\fP \fImodule\fP 特定の \fImodule\fP についてレポートします。(コマンドラインで複数の \fB\-m\fP を指定できます。) .TP 1i .B \ \ \ \ \ \ \-o チェックアウトされたモジュールについてレポートします。 .TP 1i .B \ \ \ \ \ \ \-T 全てのタグについてレポートします。 .TP 1i \fB\ \ \ \ \ \ \-x\fP \fItype\fP 特定のレコードタイプ \fIX\fP のセットを \fBcvs\fP ヒストリから 取り出します。タイプは 1文字で表され、組み合わせて指定できます。 以下のコマンドは単一のレコードタイプを持ちます: \fBcheckout\fP (タイプ `O')、 \fBrelease\fP (タイプ `F')、\fBrtag\fP (タイプ `T')。 \fBupdate\fP は 4 つのレコードタイプのうちの 1 つになります: `W' は 作業用のファイルのコピーが update で (それがリポジトリから無くなって いたために) 削除された場合です; `U' は作業ファイルがリポジトリから コピーされた場合です; `G' は必要なマージが無事に終った場合です; 'C' は マージが必要だが衝突が検出された場合 (手動でのマージが必要な場合) です。 また、\fBcommit\fP では 3つのレコードタイプのうちの 1つになります: `M' はファイルが変更された場合; `A' はファイルが最初に追加された場合; `R' はファイルが削除された場合です。 .TP 1i .B \ \ \ \ \ \ \-e 全て (全レコードタイプ); 以下を指定するのと等価です。 .` "\-xMACFROGWUT" .TP 1i \fB\ \ \ \ \ \ \-z\fP \fIzone\fP ヒストリレコードを出力する際に .I zone で指定されたタイムゾーンを使います。 .B LT というゾーン名はローカルタイムの意味になります。 数値によるオフセットは時分での UTC との時差を意味します。 例えば、 .B +0530 は 5 時間と 30 分だけ UTC より前 (つまり東側) の意味になります。 .PP .RS .5i \fB\-\fP\fIflags\fP と書かれた部分のオプションは、レポートする範囲を絞ります。 引数の指定はありません。 .RE .TP 1i .B \ \ \ \ \ \ \-a 全てのユーザのデータを表示します (デフォルトでは .` "cvs history" を実行しているユーザのみのデータを表示します)。 .TP 1i .B \ \ \ \ \ \ \-l 最後の変更のみ表示します。 .TP 1i .B \ \ \ \ \ \ \-w .` "cvs history" が実行されているのと同じ作業ディレクトリから行われた変更に関する レコードのみを表示します。 .PP .RS .5i \fB\-\fP\fIoptions args\fP と書かれた部分のオプションは引数に 基づいてレポート範囲を絞ります: .RE .TP 1i \fB\ \ \ \ \ \ \-b\fP \fIstr\fP 文字列 \fIstr\fP をモジュール名、ファイル名、リポジトリパスの いずれかに含むレコードに戻って表示します。 .TP 1i \fB\ \ \ \ \ \ \-D\fP \fIdate\fP \fIdate\fP 以降のデータを表示します。 .TP 1i \fB\ \ \ \ \ \ \-p\fP \fIrepository\fP 特定のソースリポジトリのデータを表示します (複数の \fB\-p\fP オプションを同じコマンド行で指定できます)。 .TP 1i \fB\ \ \ \ \ \ \-r\fP \fIrev\fP 個々の RCS ファイルに現れるリビジョンが \fIrev\fP で指定されたリビジョンまたはタグ以降であるレコードを表示します。 各 .SM RCS ファイルについてリビジョンまたはタグが検索されます。 .TP 1i \fB\ \ \ \ \ \ \-t\fP \fItag\fP \fItag\fP で指定されるタグがヒストリファイルに最後に 追加されてからのレコードを表示します。 このオプションは、 .SM RCS ファイルではなくヒストリファイルのみ参照する点で 上記の \fB-r\fP フラグと異なり、 より高速です。 .TP 1i \fB\ \ \ \ \ \ \-u\fP \fIname\fP \fIname\fP で指定されるユーザのレコードを表示します。 .PP .TP \fBimport\fP [\fB\-\fP\fIoptions\fP] \fIrepository vendortag releasetag\fP.\|.\|. .I 以下が必要: リポジトリ、ソース配布物のディレクトリ。 .br .I 以下を変更: リポジトリ。 .br .` "cvs import" を使うことで外部の供給元 (例えばソースベンダ) からのソース配布物 全体をあなたのソースリポジトリのディレクトリへ取り込めます。 最初のリポジトリの作成と、外部の供給元からのモジュールへの 大規模な更新の両方にこのコマンドを使うことができます。 .SP 引数 \fIrepository\fP で CVS ルートディレクトリ下のリポジトリ用 ディレクトリ名 (またはディレクトリへのパス) を与えます。 もしディレクトリが存在しないなら、\fBimport\fP が作成します。 .SP あなたのソースリポジトリで (前回の \fBimport\fP から) 変更された ソースへの更新に \fBimport\fP を使った場合、開発の 2 本のブランチで 衝突しているファイルについて警告します。 \fBimport\fP が指示するように、 .` "cvs checkout -j" を使って差分を調整できます。 .SP デフォルトでは、ある種のファイル名が .` "cvs import" で無視されます: .SM CVS 管理、または他の一般的なソース管理システムに関連する名前; パッチファイル、オブジェクトファイル、アーカイブファイル、 エディタのバックアップファイルのための一般的な名前; そして雑多なユーティリティの加工品であることを示すその他の名前。 無視されるファイルのリストの最新については、 (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SP 外部からのソースは第一レベルの ブランチ、デフォルトでは .` "1.1.1" に保存されます。 以降の更新は このブランチのリーフになります。 例えば、最初に import したソース集合からのファイルはリビジョン .` "1.1.1.1" になり、 次の import による更新でファイルはリビジョン .` "1.1.1.2" になり、以下同様に続きます。 .SP 最低で 3 つの引数が必要です。ソースの集合を識別するために \fIrepository\fP が必要です。\fIvendortag\fP はブランチ全体を示す タグになります (例えば .` "1.1.1" と対応します)。 .` "cvs import" を実行する度にリーフとしてできるファイルを 識別するために少なくとも一つの \fIreleasetag\fP も指定しなければ なりません。 .SP .B cvs の標準のコマンドオプションのうちの 1 つ \fB\-m\fP が利用可能です: ログメッセージを \fB\-m\fP で指定しないと、(\fBcommit\fP でのように) メッセージを 入力できるようにエディタが起動されます。 .SP さらに 3 つの特別なオプションがあります。 .SP .` "\-d" を使って、各ファイルの最終更新日時がチェックインの日付と時刻として 使われるよう指示できます。 .SP .` "\-b \fIbranch\fP" を使って第一レベルのブランチを .` "1.1.1" 以外に指定できます。 .SP .` "\-I \fIname\fP" を使って \fBimport\fP 中に無視されるべきファイル名を指定できます。 このオプションは繰り返して指定できます。 いかなるファイルも無視されない (デフォルトで無視されるものでも) ようにするには、 .` "\-I !" と指定します。 .TP \fBlog\fP [\fB\-l\fP] \fIrlog-options [files\fP\|.\|.\|.] .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 何も変更しません。 .br .I 同義語: .B rlog .br \fIfiles\fP のログ情報を表示します。 \fBrlog\fP のオプションの中でも有用なものとしては、次のものがあります: ヘッダ (タグの定義を含むが、ログの大部分は省略される) のみ表示する \fB\-h\fP ; 特定のリビジョンまたはリビジョンの範囲でログを選択する \fB\-r\fP; そして特定の日時または時刻の範囲を選択する \fB\-d\fP が あります。完全な説明は .BR rlog ( 1 ) を参照して下さい。 このコマンドは .B \-l オプションが指定されていなければ、デフォルトで再帰的に働きます。 .TP \fBrdiff\fP [\fB\-\fP\fIflags\fP] [\fB\-V\fP \fIvn\fP] [\fB\-r\fP \fIt\fP|\fB\-D\fP \fId\fP [\fB\-r\fP \fIt2\fP|\fB\-D\fP \fId2\fP]] \fImodules\|.\|.\|.\fP .I 以下が必要: リポジトリ。 .br .I 以下を変更: 何も変更しません。 .br .I 同義語: .B patch .br 2 つのリリース間の .BR patch ( 1 ) ファイルを Larry Wall 氏のフォーマットで作成します。それは直接 .B patch プログラムに入力できるもので、古いリリースを新しいリリースに更新する ために使えます。 (これは直接リポジトリを参照するため、これに先立って .BR checkout する必要のない、数少ない \fBcvs\fP コマンドのうちの 1 つです。) 差分出力は標準出力デバイスに送られます。 (標準の \fB\-r\fP と \fB\-D\fP オプションを 使って) 1 つまたは 2 つのリビジョンまたは日時の任意の組み合わせを指定できます。 もしリビジョンまたは日時が 1 つしか指定されないと、 そのリビジョンまたは日時とその時点での .SM RCS ファイルの ``head'' リビジョンの差分がパッチファイルに反映されます。 .SP もしソフトウェアリリースへの影響が複数ディレクトリにわたるなら、 古いソースにパッチを当てる際、 .B patch が他のディレクトリに置かれたファイルを見つけられるように、 .B \-p オプションを .B patch コマンドに指定する必要があるかもしれません。 .SP 標準オプションの \fIflags\fP \fB\-f\fP、\fB\-l\fP が このコマンドで利用可能です。他にもいくつかの 特別なオプションフラグがあります: .SP .B \-s オプションを指定すると、パッチ出力が作られません。 代わりに、2 つのリリース間で変更または追加されたファイルの要約が 標準出力デバイスに送られます。 これは、例えば、2 つの日付またはリビジョンの間で、どのファイルが 変更されたかを調べるのに便利です。 .SP .B \-t オプションを指定すると、新しい方から 2 つのリビジョンの差分が 標準出力デバイスに送られます。これはファイルへの最後の変更が 何であったかを知るのに最適です。 .SP .B \-u オプションを指定すると、パッチ出力として新しい ``unidiff'' フォーマットを使って文脈差分とします。 .SP 希望するなら、 .B \-c を使って明示的に .` "diff \-c" 形式の文脈差分を指定できます (こちらがデフォルトです)。 .TP \fBrelease\fP [\fB\-dQq\fP] \fImodules\fP\|.\|.\|. .I 以下が必要: 作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ、ヒストリログ。 .br このコマンドは .` "cvs checkout' の効果を安全にキャンセルすることになっています。 .B cvs はファイルをロックしないので、厳密にはこのコマンドを使用する必要は ありません。 単に作業ディレクトリを削除しても構いません。 しかし忘れているかも知れない変更を失う危険があり、そして .B cvs ヒストリファイルには捨ててしまったチェックアウトの記録は残りません。 .SP .` "cvs release" を使うとこれらの問題を回避できます。 このコマンドは以下の点をチェックします: コミットされていない変更が存在しないこと、 \fBcvs\fP の作業ディレクトリの直上または内部から実行していること、 ファイルが記録されたリポジトリがモジュールデータベースに 定義されたリポジトリと同じであること、です。 .SP これらの条件が全て真なら .` "cvs release" は その実行記録 (意図的にチェックアウトを削除した証拠) を .B cvs のヒストリログに残します。 .SP \fB\-d\fP フラグを使ってソースの作業用コピーを \fBrelease\fP が 成功したら削除するように指示できます。 .TP \fBremove\fP [\fB\-lR\fP] [\fIfiles\|.\|.\|.\fP] .I 以下が必要: 作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br .I 同義語: .BR rm ", " delete .br このコマンドを使って、\fIfiles\fP をソースリポジトリから削除する つもりであることを宣言できます。大部分の .B cvs コマンドがそうであるように、 .` "cvs remove" は作業ディレクトリのファイルに作用し、リポジトリには直接には 作用しません。安全機構として、まず指定するファイルを作業ディレクトリ から削除することも必要になっています。 .SP リポジトリに .BR commit で変更を反映するまで、ファイルは実際には削除されません。 commit した時点で、ソースリポジトリの対応する .SM RCS ファイルが .` "Attic" ディレクトリ (これもソースリポジトリの中です) に .I 移動 されます。 .SP このコマンドはデフォルトで再帰的になっており、 物理的に削除された全てのファイルが次の .BR commit での削除されるようにスケジュールします。 .B \-l オプションを使うか、または実際に削除したいファイルのみを 指定することで、この再帰を抑制できます。 .TP \fBrtag\fP [\fB\-f\|alnRQq\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] \fIsymbolic_tag\fP \fImodules\|.\|.\|.\fP .I 以下が必要: リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B rfreeze .br このコマンドを使って、リポジトリ中の特定の、明示的に 指定されたソースバージョンにシンボリックタグを割り当てられます。 .` "cvs rtag" はリポジトリの内容に直接に作用します (これに先立って .BR checkout する必要はありません)。 作業ディレクトリの内容に基づいて タグを付けるバージョンを選択するには、代わりに .` "cvs tag" を使います。 .SP 一般に、タグ (しばしばソフトウェア配布物のシンボリックな 名前でもある) は削除されるべきではありません。 しかし完全に廃れてしまったシンボリックな名前を削除する場合 (例えば、 アルファリリースの場合など) の手段として、 .B \-d オプションが用意されています。 .SP .` "cvs rtag" はすでに存在するタグを移動しません。 しかしながら、\fB\-F\fP オプションが指定されると .` "cvs rtag" はそのファイルに既に存在する \fIsymbolic_tag\fP のインスタンスを 新しいリポジトリのバージョンへ移動します。 \fB\-F\fP オプションが無い場合、 .` "cvs rtag" を使ってすでにそのファイルに存在するタグを付けようとすると、 エラーメッセージが出力されます。 .SP \fB-b\fP オプションはタグを ``ブランチ'' タグにし、並行の、 独立した開発を可能にします。 これは以前にリリースしたソフトウェア配布物へのパッチを作成するのに 最も有用です。 .SP 標準の \fB\-r\fP と \fB\-D\fP オプションを使って、すでに特定の タグを含んでいるファイルのみにタグを付けることができます。 この方法はタグの名前を変えるのに使えるでしょう: 古いタグで指定されるファイルにのみタグを付け、 それから古いタグを削除すれば、確実に同じファイルで古いタグを 新しいタグで置き換えることができます。 .SP .B rtag はデフォルトで再帰的に実行し、引数で指定した \fImodules\fP の全てのサブディレクトリにタグをつけます。 この動作を トップレベルのディレクトリに制限するには標準の \fB\-l\fP オプションを 指定します。 また明示的に再帰を指定するには \fB\-R\fP を指定します。 .SP モジュールデータベースではタグが指定されたときに必ず実行される プログラムを指定できます。よくある使い方は、興味を持っている グループに電子メールを送るというものです。もしそのプログラムを バイパスしたい場合は、標準の \fB\-n\fP オプションを使います。 .SP .B \-a オプションを使うと .` "Attic" の中の指定されたタグを含む削除されたファイルを .B rtag の対象にできます。 タグはそれらのファイルから削除され、開発の進展につれての シンボリックタグの再利用に便利になります (そしてファイルは以降の 配布物から削除されます)。 .TP \fBstatus\fP [\fB\-lRqQ\fP] [\fB\-v\fP] [\fIfiles\fP\|.\|.\|.] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: 何も変更しません。 .br \fIfiles\fP の現在の状態について、``sticky'' なタグ、 日付、\fB\-k\fP オプションを含む、ソースリポジトリに関する 簡潔なレポートを表示します。(``sticky'' オプションはリセットするまで .` "cvs update" がどう働くかを規定します。 .` "cvs update \-A\|.\|.\|." の説明を参照して下さい。) .SP このコマンドを用いて、作業用ソースディレクトリでの .` "cvs update" による潜在的な影響を予測することもできます。 もし \fIfiles\fP を明示的に指定しないと、\fBcvs\fP が 作業ディレクトリに置いた全てのファイルについてレポートが 表示されます。 この検索の範囲を (そのサブディレクトリではなく) カレントディレクトリ だけに制限するには、標準の \fB\-l\fP オプションフラグを使います。 \fB\-R\fP オプションによって、明示的に再帰的なステータスレポートを 指定することもできます。 .SP .B \-v オプションを指定すると .SM RCS ファイルのシンボリックタグも表示されるようになります。 .TP \fBtag\fP [\fB\-lQqR\fP] [\fB\-F\fP] [\fB\-b\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP | \fB\-D\fP \fIdate\fP] [\fB\-f\fP] \fIsymbolic_tag\fP [\fIfiles\fP\|.\|.\|.\|] .I 以下が必要: 作業ディレクトリ、リポジトリ。 .br .I 以下を変更: リポジトリ。 .br .I 同義語: .B freeze .br このコマンドは、作業ディレクトリに最も近いリポジトリのバージョンに シンボリックタグをつけるために使います。\fBrtag\fP を 使ったときのように、タグはリポジトリに直接つけられます。 .SP タグの使い方の一つは、プロジェクトのソフトウェア凍結日が やってきたときに開発中のソースの ``snapshot'' を記録するというものです。 凍結した日の後でバグが修正されたら、それらの変更されたリリースの 一部となるソースのみに再度タグをつける必要があります。 .SP シンボリックタグはどのファイルのどのリビジョンがソフトウェア配布物を 作成する際に使われたかを恒久的に記録する意味があります。 .BR checkout , .B export , .B update コマンドは、タグをつけたリリースと全く同じものを、リリースのタグが つけられて以降にファイルが変更、追加、削除されたかどうかを気にする ことなく、将来のいつでも取り出すことを可能にします。 .SP 標準の \fB\-r\fP と \fB\-D\fP オプションを使って、すでに特定の タグを含んでいるファイルのみにタグを付けることができます。 この方法はタグの名前を変えるのに使えます。 すなわち、 古いタグで指定されるファイルにのみタグを付け、 それから古いタグを削除すれば、確実に同じファイルで古いタグを 新しいタグで置き換えることができます。 .SP \fB\-r\fP または \fB\-D\fP フラグに加えて \fB\-f\fP フラグを 指定すると、コマンドラインで指定したファイルで古いタグを 持っていないか指定された日時に存在しなかったものにもタグを 付けます。 .SP デフォルト (\fB\-r\fP または \fB\-D\fP フラグが無い場合) では、 バージョンは明示的に指定されるのではなく、暗黙のうちに作業ファイルの ヒストリの \fBcvs\fP レコードから取られます。 .SP .` "cvs tag \-d \fIsymbolic_tag\fP\|.\|.\|." とすると、指定したシンボリックタグが追加されるのではなく .I 削除 されます。\fI警告\fP: タグを削除する前にその根拠をしっかり確認して下さい。 これは効率的に一部の履歴情報を捨てますが、後になってその情報が重要だったと 判明するかも知れないからです。 .SP .` "cvs tag" はすでに存在するタグを移動しません。 しかしながら、\fB\-F\fP オプションが指定されると .` "cvs tag" はそのファイルに既に存在する \fIsymbolic_tag\fP のインスタンスを 新しいリポジトリのバージョンへ移動します。 \fB\-F\fP オプションが無い場合、 .` "cvs tag" を使って すでにそのファイルに存在するタグを付けようとすると エラーメッセージが出力されます。 .SP \fB-b\fP オプションはタグを ``ブランチ'' タグにし、並行して、 独立した開発を可能にします。 これは以前にリリースしたソフトウェア配布物へのパッチを作成するために 最も有効です。 .SP 通常、 .B tag はサブディレクトリに渡って再帰的に実行します。これは 標準の \fB\-l\fP オプションを使って抑制できます。 明示的に再帰を指定するには \fB\-R\fP を使います。 .TP -\fBupdate\fP [\fB\-Adf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP +\fBupdate\fP [\fB\-ACdf\|lPpQqR\fP] [\fB\-d\fP] [\fB\-r\fP \fItag\fP|\fB\-D\fP \fIdate\fP] \fIfiles\|.\|.\|.\fP .I 以下が必要: リポジトリ、作業ディレクトリ。 .br .I 以下を変更: 作業ディレクトリ。 .br あなたが共有のリポジトリから私的なソースのコピーを作成するために .B checkout を実行した後も、別の開発者は共有のソースへの変更を続けるでしょう。 時々、開発過程で都合のいいときに、作業ディレクトリ内から .B update コマンドを使うことで、 最後に .B checkout または .BR update してからソースリポジトリに登録された変更を、あなたの変更と 融合させることができます。 .SP .B update は進行状況をファイルごとに 1 行表示することで知らせ続けます。 各行の先頭には以下の .` "U A R M C ?" のいずれか 1 文字があり、ファイルの状態を示しています: .TP 1i \fBU\fP \fIfile\fP file はリポジトリに関して \fI最新に\fP なりました。 これはリポジトリには存在するがあなたのソースには無いもの、 およびあなたは変更していないけれどもリポジトリの 最新リビジョンでは無いものに関して行われます。 .TP 1i \fBA\fP \fIfile\fP file はソースのあなたの私的なコピーに \fI追加\fP されたもので、 file に対して .` "cvs commit" を実行したときに ソースリポジトリに追加されます。 これは当該ファイルを commit する必要があるという助言です。 .TP 1i \fBR\fP \fIfile\fP これはソースのあなたの私的なコピーから file が \fI削除\fP されており、 file に対して .` "cvs commit" を実行すると ソースリポジトリから削除されることを示します。 これは当該ファイルを commit する必要があるという助言です。 .TP 1i \fBM\fP \fIfile\fP あなたの作業ディレクトリの file は \fI変更\fP されています。 .` "M" は作業中のファイルについて 2 つの状態のうちの 1 つを示します: リポジトリ中の対応するファイルは変更されておらず、あなたのファイルは 最後に見たときのままになっている。 または、あなたのコピー同様 リポジトリのものも変更されているが、それらの変更は 衝突することなく無事にあなたの作業ディレクトリに \fI融合 (merge)\fP されました。 .TP 1i \fBC\fP \fIfile\fP \fIfile\fP へのあなたの変更とソースリポジトリからの変更との 融合を試みる間に \fI衝突 (conflict)\fP が検出されました。 現在 \fIfile\fP (あなたの作業ディレクトリのコピー) は 2 つのバージョンをマージした結果になっています。 変更されていない あなたのファイルのコピーも作業ディレクトリに、 `\fB.#\fP\fIfile\fP\fB.\fP\fIversion\fP' という名前で置かれます。 ここで .I version は あなたの変更したファイルの出発点となった リビジョンです。 (ある種のシステムでは、 \& .` ".#" で始まるファイルは何日かアクセスされないと自動的に削除されるので 注意して下さい。もし元のファイルのコピーを取っておくつもりなら、 名前を変えておくのが良いでしょう。) .TP 1i \fB?\fP \fIfile\fP \fIfile\fP が あなたの作業ディレクトリにありますが、 ソースリポジトリのどれとも対応しておらず、 \fBcvs\fP が無視するファイルのリストにもありません (\fB\-I\fP オプションの説明を参照して下さい)。 .PP .RS .5i .SP .B \-A オプションを用いて sticky なタグ、日付、 .B \-k オプションをリセットできます。(\fB\-r\fP, \fB\-D\fP, \fB\-k\fP オプションの いずれかを使って作業ファイルのコピーを得ると、 \fBcvs\fP は対応するタグ、日付、\fIkflag\fP を記憶し、 以降の update で それを使い続けます。\fB\-A\fP オプションを使って \fBcvs\fP にそれらの指定を忘れさせることで、ファイルの ``head'' バージョンを取り出します)。 .SP \fB\-j\fP\fIbranch\fP オプションは、変更結果のリビジョンと ベースにしたリビジョンの間での変更をマージします (例えば、もしタグがブランチを指しているなら、 .B cvs は、そのブランチで行われた全ての変更をあなたの作業ファイルにマージします)。 .SP 2 つの \fB-j\fP オプションを指定すると、 .B cvs は 2 つの それぞれのリビジョン間での変更をマージします。 これは特定の変更を作業ファイルから ``削除'' するのに使えます。 例えば、ファイル foo.c がリビジョン 1.6 をベースにしていて、 1.3 と 1.5 の間で行われた変更を削除したいなら、次のようにします: .SP .in +1i .ft B .nf example% cvs update -j1.5 -j1.3 foo.c # 順番に注意... .fi .ft P .in -1i .SP 加えて、各 \fB-j\fP オプションにはオプションで、ブランチと使う場合に、 日付指定を含めることが可能で、選択するリビジョンを指定した 日付の範囲内に制限できます。 オプションの日付はコロン (:) をタグに付けることで指定します。 .SP .in +1i .ft B .nf -jSymbolic_Tag:Date_Specifier .fi .ft P .in -1i .SP .B \-d オプションを使うと、もし作業ディレクトリに無いディレクトリが リポジトリにあれば作成します。(通常、update は作業ディレクトリに すでに登録されているディレクトリとファイルのみに働きます。) これは最初の \fBcheckout\fP 以降に作成されたディレクトリを 更新するのに有用です。しかし不幸にも副作用があります。 もし作業ディレクトリを作る際に慎重にリポジトリ中の特定の ディレクトリを除いた (モジュール名を使ったか明示的に必要な ファイルとディレクトリをコマンドラインで指定したかのいずれかで) とすると、 .B \-d で更新するとそれらの不要かも知れないディレクトリができてしまいます。 .SP \fB\-I\fP \fIname\fP を使うと、update の際、名前が \fIname\fP に符合する (作業ディレクトリの) ファイルを無視します。 コマンドラインで \fB\-I\fP を 2 回以上指定することで、 複数の無視するファイルを指定できます。 デフォルトで、\fBupdate\fP はあるパターンに名前がマッチするファイルを 無視します; 無視されるファイル名の最新リストについては、 (このマニュアルページの関連項目の節に記述してあるように) Cederqvist 著のマニュアルを参照して下さい。 .SP いずれのファイルも無視しないようにするには .` "\-I !" を使います。 .SP +ローカルで修正したファイルを、 +リポジトリ上のクリーンなファイルで上書きするには、 +.` "\-C" +を使います (修正されたファイルは +`\fB.#\fP\fIfile\fP\fB.\fP\fIrevision\fP' に保存されます)。 +.SP 標準の \fBcvs\fP コマンドオプション \fB\-f\fP, \fB\-k\fP, \fB\-l\fP, \fB\-P\fP, \fB\-p\fP, \fB\-r\fP も \fBupdate\fP で使用可能です。 .RE .SH "関連ファイル" より詳細な .B cvs サポートファイルの情報については .BR cvs ( 5 ) を参照して下さい。 .LP .I ホームディレクトリのファイル: .TP \&.cvsrc .B cvs の初期化ファイル。このファイルの行は各 .B cvs コマンドのデフォルトのオプションの指定に使えます。例えば .` "diff \-c" と言う行は .` "cvs diff" に対して、コマンドラインで渡されたオプションに、常に .B \-c オプションが加えられて渡されることを指定します。 .TP \&.cvswrappers リポジトリのファイル CVSROOT/cvswrappers で指定されている ものに加えて使用されるラッパを指定します。 .LP .I 作業ディレクトリのファイル: .TP CVS \fBcvs\fP 管理ファイルのディレクトリ。 .I 削除してはいけません。 .TP CVS/Entries 作業ディレクトリのファイルのリストと状態。 .TP CVS/Entries.Backup .` "CVS/Entries" のバックアップ。 .TP CVS/Entries.Static フラグ: .` "cvs update" でそれ以上エントリを追加しません。 .TP CVS/Root チェックアウトしたときのリポジトリ ( .SM CVSROOT ) 位置へのパス名。 .SM CVSROOT 環境変数が設定されていない場合、このファイルが代わりに使用されます。 このファイルの内容と .SM CVSROOT 環境変数が異なっていると警告メッセージが出されます。 .SM CVS_IGNORE_REMOTE_ROOT 環境変数が設定されていると、このファイルは上書きされることがあります。 .TP CVS/Repository ソースリポジトリ中の対応するディレクトリへのパス名。 .TP CVS/Tag ディレクトリ毎の ``sticky'' なタグまたは日付情報を保持しています。 このファイルは .B \-r か .B \-D を .B checkout または .B update コマンドに指定して、ファイルが指定されなかったときに作成/更新されます。 .TP CVS/Checkin.prog .` "cvs commit" 時に実行するプログラム名。 .TP CVS/Update.prog .` "cvs update" 時に実行するプログラム名。 .LP .I ソースリポジトリ中のファイル: .TP $CVSROOT/CVSROOT リポジトリ全体の管理ファイルのディレクトリ。 .TP CVSROOT/commitinfo,v .` "cvs commit" のリクエストを選別するプログラムを登録します。 .TP CVSROOT/cvswrappers,v ファイルをリポジトリにチェックインそしてリポジトリから チェックアウトするときに使用される .B cvs ラッパコマンドを登録します。 ラッパはファイルまたはディレクトリが CVS で入出力される際に 処理を行うことを可能にします。使い道はいろいろありますが、 その一つとして、C のファイルをチェックインする前に再フォーマットして、 リポジトリ中のコードの見た目を揃えるというものがあります。 .TP CVSROOT/editinfo,v .` "cvs commit" のログエントリの編集/確認用プログラムを登録します。 .TP CVSROOT/history \fBcvs\fP 処理のログファイル。 .TP CVSROOT/loginfo,v .` "cvs commit" のログエントリをパイプで渡すプログラムを登録します。 .TP CVSROOT/modules,v このリポジトリ中のモジュールを定義します。 .TP CVSROOT/rcsinfo,v .` "cvs commit" 操作中に使用するテンプレートへのパス名を登録します。 .TP CVSROOT/taginfo,v .` "cvs tag" と .` "cvs rtag" での確認/ログ採集のためのプログラムを登録します。 .TP MODULE/Attic 削除されたソースファイルのためのディレクトリ。 .TP #cvs.lock ソースリポジトリに微妙な変更を行っているときに .B cvs が作成するロックディレクトリ。 .TP #cvs.tfl.\fIpid\fP リポジトリの一時的なロックファイル。 .TP #cvs.rfl.\fIpid\fP 読み出しロック。 .TP #cvs.wfl.\fIpid\fP 書き込みロック。 .SH "環境変数" .TP .SM CVSROOT .B cvs ソースリポジトリのルートへのフルパス名 ( .SM RCS ファイルが保存されている場所) を指定します。 この情報は大部分のコマンドの実行で \fBcvs\fP から参照できなければなりません。 もし .SM CVSROOT が設定されていないか、それを上書き指定したい場合は、 コマンドライン上で与えることができます: .` "cvs \-d \fIcvsroot cvs_command\fP\|.\|.\|." もし \fBcvs\fP バイナリのコンパイル時に正しいパスが指定されているなら .SM CVSROOT を設定しなくて構いません。 .TP .SM CVSREAD これがセットされていると、 .B checkout と .B update は作業ディレクトリのファイルを読み出し専用にするべく努力します。 これがセットされていないときは、デフォルトでは作業ファイルの 変更が許可されます。 .TP .SM CVSREADONLYFS これがセットされていると、 .B \-R オプションが仮定され、 .B cvs の動作が読み出し専用リポジトリモードになります。 .TP .SM RCSBIN .BR co ( 1 ) や .BR ci ( 1 ) といった .SM RCS のプログラムが置かれている場所へのフルパス名を指定します (CVS 1.9 またはそれ以前)。 .TP .SM CVSEDITOR .BR commit 中にログメッセージの記録に使われるプログラムを指定します。 設定されていないと、 +.SM VISUAL +と .SM EDITOR -環境変数が代わりに使われます。 -もし -.SM EDITOR -も設定されていないなら、デフォルトは -.BR /usr/ucb/vi -です。 +の環境変数が (この順序で) 試されます。 +どちら +も設定されていないなら、システム依存のデフォルトエディタ (例えば +.BR vi ) +が使用されます。 .TP .SM CVS_IGNORE_REMOTE_ROOT この変数がセットされていると .B cvs は CVS/Root ファイル中のリモートのリポジトリへの参照を全て 無視します。 .TP .SM CVS_OPTIONS .B cvs のデフォルトオプションを指定します。 これらのオプションは、 スタートアップファイル (\fI~/.cvsrc\fP) の読み込み前に解釈されます。 また、コマンドラインパラメータにより明示的に上書き可能です。 .TP .SM CVS_RSH .B cvs サーバを開始するときに使用するリモートシェルコマンドの 名前を決定します。 この変数が設定されていない場合は .` "rsh" が使用されます。 .TP .SM CVS_SERVER .B cvs サーバコマンドの名前を指定します。 この変数が設定されていない場合は .` "cvs" が使用されます。 .TP .SM CVSWRAPPERS .` "cvswrappers" スクリプトは、 リポジトリの .SM CVSROOT/cvswrappers とユーザのホームディレクトリの ~/.cvswrappers に 含まれるデフォルトのラッパに加え、 変数 .SM CVSWRAPPERS を参照して、ラッパファイルの名前を決定します。 .SH "作者" .TP Dick Grune .B comp.sources.unix にポストされ、1986 年 12 月のリリース volume6 に収められたオリジナルの .B cvs シェルスクリプト版の作者。 .B cvs の衝突を解決するアルゴリズムの大部分を作成しました。 .TP Brian Berliner .B cvs プログラム自身のコーディングとデザインを 1989 年 4 月に、Dick によるオリジナルをベースにして行いました。 .TP Jeff Polk Brian を助けて .B cvs のモジュールとベンダブランチのサポートをデザインしました。 そして .BR checkin ( 1 ) シェルスクリプト ( .` "cvs import" の祖先) の作者でもあります。 .TP ここに書くには多くの人が他にもいます。 .SH "関連項目" CVS の最も包括的なマニュアルは Per Cederqvist らによる Version Management with CVS です。 システムによっては、 .B info cvs コマンドで閲覧できたり、 cvs.ps (postscript), cvs.texinfo (texinfo のソース), cvs.html が 利用可能かもしれません。 .SP CVS の更新、ドキュメントに関するさらなる情報、 CVS 関連のソフトウェア、CVS の開発等については、下記をご覧ください: .in +1i .B http://www.cyclic.com .B http://www.loria.fr/~molli/cvs-index.html .in -1i .SP .BR ci ( 1 ), .BR co ( 1 ), .BR cvs ( 5 ), .BR cvsbug ( 8 ), .BR diff ( 1 ), .BR grep ( 1 ), .BR patch ( 1 ), .BR rcs ( 1 ), .BR rcsdiff ( 1 ), .BR rcsmerge ( 1 ), .BR rlog ( 1 ). .SH 日本語訳 野首 寛高(h-nokubi@nmit.mt.nec.co.jp): FreeBSD 用に翻訳 .br 酒井 淳嗣(sakai@jp.freebsd.org): FreeBSD 版の校正 diff --git a/ja_JP.eucJP/man/man1/host.1 b/ja_JP.eucJP/man/man1/host.1 index 10651c83de..7985cdfa0c 100644 --- a/ja_JP.eucJP/man/man1/host.1 +++ b/ja_JP.eucJP/man/man1/host.1 @@ -1,312 +1,329 @@ .\" ++Copyright++ 1993 .\" - .\" Copyright (c) 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- -.\" %Id: host.1,v 8.2 1997/03/14 02:29:44 vixie Exp % -.\" %FreeBSD: src/contrib/bind/doc/man/host.1,v 1.3 2000/01/02 11:13:23 obrien Exp % +.\" %Id: host.1,v 8.4 2000/02/29 03:50:47 vixie Exp % +.\" %FreeBSD: src/contrib/bind/doc/man/host.1,v 1.3.2.1 2000/11/02 14:08:07 asmodai Exp % .\" .\" .\" jpman %Id: host.1,v 1.3 1997/08/20 12:10:27 horikawa Stab % .Dd December 15, 1994 .Dt HOST 1 .Os BSD 4 .Sh 名称 .Nm host .Nd ドメインサーバを使ってホスト名の検索を行なう .Sh 書式 .Nm host .Op Fl adlrwv .Op Fl c Ar class .Op Fl t Ar querytype .Ar host .Op Ar server .Sh 解説 .Ic host はインターネットホストに関する情報の検索を行ないます。 情報は世界中に広がった相互に接続されたサーバ群から得ます。 デフォルトではホスト名とインターネットアドレス間の変換のみを行ないます。 .Dq Fl t や .Dq Fl a オプションとともに使うと、そのホストに関するドメインサーバによって保守 されている情報のすべてを得ることができます。 .Pp 引数にはホスト名かホスト番号のいずれかを指定できます。 本プログラムはまず引数をホスト番号として解釈を試みます。 それがうまくいかなければ、ホスト名として扱います。 ホスト番号は 128.6.4.194 のようにドットによって区切られた 4 つの 10 進数からなります。 ホスト名は topaz.rutgers.edu のようにドットで区切られた複数の名前からなります。 名前がドットで終っていなければ、ローカルドメインが自動的に末尾に 付け加えられます。たとえば Rutgers のユーザは .Pp .D1 Ic host topaz .Pp というように使うことができ、これは実際には "topaz.rutgers.edu" が検索されます。 これがうまくいかなければ、名前は変更されずに (この例では "topaz" として) 試みられます。このやりかたはメールやその他のネットワークユーティリティ でも使うことができます。 実際に末尾に付け加えられる接尾辞は、 .Xr hostname 1 を呼び出した結果の最初のドット以降となります。(下記の .Sx ホスト名検索のカスタマイズ の節を参照してください。) .Pp 最初の引数は検索を行なうホスト名となります。これが数字の場合、 .Dq 逆引き が実行されます。すなわちドメインシステムは数字を名前に変換するための別 のデータベース群を参照します。 .Pp 2 番目の引数は省略可能です。ここでは問い合わせを行なうサーバを指定する ことができます。この引数が指定されなければ、デフォルトのサーバ (通常は ローカルマシン) が使われます。 .Pp 名前が指定された場合、3 つの異なった種類の結果が出力されます。 以下はそれらの例です。 .Pp .D1 Ic % host sun4 .Dl sun4.rutgers.edu is a nickname for ATHOS.RUTGERS.EDU .Dl ATHOS.RUTGERS.EDU has address 128.6.5.46 .Dl ATHOS.RUTGERS.EDU has address 128.6.4.4 .Dl ATHOS.RUTGERS.EDU mail is handled by ARAMIS.RUTGERS.EDU .Pp ここでユーザはコマンド .Dq Ic host sun4 を入力しています。最初の行は名前 .Dq Li sun4.rutgers.edu は実際にはニックネームであることを示しています。 正式なホスト名は .Dq Li ATHOS.RUTGERS.EDU です。続く 2 行ではアドレスが表示 されています。もし複数のネットワークインタフェースをもつシステムであ れば、その各々は別のアドレスを持ちます。最後の行では .Li ATHOS.RUTGERS.EDU は自分に対するメールは受け取らないことを示しています。このホスト宛ての メールは .Li ARAMIS.RUTGERS.EDU によって取り込まれます。いくつかのシステム ではそのメールを扱うシステムが複数存在することがあり、その場合はこの行 のような情報がさらに出力されます。技術的にはメールを受け取ることのでき るすべてのシステムがこのようなエントリを持つと考えられます。もしシステム がそのメールを自分自身で受け取る場合、 .Pp .D1 Li XXX mail is handled by XXX .Pp のように、そのシステム自身について言及したエントリがあるはずです。しかし、 メールを自分で受け取る多くのシステムではわざわざその事実について言及し ていません。もしあるシステムに .Dq Li mail is handled by のエントリがあるのにアドレスがなければ、 それは本当はインターネットの構成員ではないが、 ネットワーク上のあるシステムがメールをそこに転送してくることを示しています。 Usenet や Bitnet やその他の多くのネットワーク上のシステムではこの種の エントリを持っています。 .Sh オプション ホスト名の前に指定できるオプションは沢山あります。これらのオプションの ほとんどはドメインデータベースを保守しているスタッフにのみ意味のあるも のです。 .Bl -tag -width Fl .It Fl a .Dq all の意。 これは .Dq Fl v Fl t Cm any と同じです。 .It Fl c Ar class 非インターネットデータを検索する .Ar class 。 .It Fl d デバッグモードとなります。ネットワークトランザクションが詳細に表示されます。 .It Fl l 完全なドメインのリストを表示します。例えば .Pp .D1 Ic host -l rutgers.edu .Pp を実行すると、rutgers.edu ドメインのすべてのホストのリストを表示します。 .Dq Fl t オプションを使うことによって表示する情報にフィルタをかけることがで きます。デフォルトでは PTR と NS レコードを含んだアドレス情報が表示さ れます。 .Pp .D1 Ic host -l -v -t any rutgers.edu .Pp このコマンドでは rutgers.edu の完全なゾーンデータを正式なマスタファイル の形式でダウンロードします。(しかし不思議な理由により SOA レコードは 2 回リストされます。) .Pp .Sy 注: .Dq Fl l フラグは完全なゾーン転送を行なった後、 要求した情報をフィルタリングするように実装されています。このコマンドは 絶対に必要な時に限って使うべきです。 .It Fl r 再帰的な問い合わせを行ないません。これは ネームサーバがそのサーバ自身のデータベースに所持しているデータのみを返すこ とを意味します。サーバは他のサーバに情報の問い合わせを行ないません。 +.It Fl d +デバッグを有効にします。 +ネットワークトランザクションの詳細が表示されます。 +.It Fl s +署名から親の鍵を追跡します (DNSSEC)。 .It Fl t Ar querytype 特定の .Ar querytype の情報の検索を指定することができます。 引数は .Xr named 8 の man ページにおいて定義されています。現在サポートされ ているタイプには以下のものが含まれます: .Dq Cm a , .Dq Cm ns , .Dq Cm md , .Dq Cm mf , .Dq Cm cname , .Dq Cm soa , .Dq Cm mb , .Dq Cm mg , .Dq Cm mr , .Dq Cm null , .Dq Cm wks , .Dq Cm ptr , .Dq Cm hinfo , .Dq Cm minfo , .Dq Cm mx , .Dq Cm uinfo , .Dq Cm uid , .Dq Cm gid , .Dq Cm unspec さらに、ワイルドカード (これは .Dq Cm any か .Dq Cm * として指定されます) があり、上記のすべてのタイプを指定するためにつかいます。 タイプは小文字で指定しなければなりません。 デフォルトでは最初に .Dq Cm a が検索され、次に .Dq Cm mx が検索されます。ただし、verbose オプションが指定されていると、デフォルトでは .Dq Cm a のみの検索を行ないます。オプション .Dq Fl t は .Ic host が返す情報にフィルタをかけるのに特に有効です。 それ以上の情報は下記の .Dq Fl l オプションの説明を参照してください。 -.It Fl v -「冗長」な (verbose) 形式で表示されます。これは正式な -ドメインマスタのファイル形式となります。この形式については -.Xr named 8 -の man ページに文書化されています。このオプションがなくても出力の形式は -一般的な意味ではこの正式な形式に準拠したものとなりますが、通常のユーザに -とって分かりやすいものにされます。 -.Dq Fl v -が指定されなければ、"a", "mx", "cname" の各レコードは -それぞれ "has address", "mail is handled by", "is a nickname for" -と出力され、TTL とクラスフィールドは表示されません。 -.It Fl w -このオプションを指定すると、 -.Ic host -は応答があるまで永遠に待ち続けます。通常は -1 分程でタイムアウトになります。 +.It Fl a +.Dq すべて +。 +.Dq Fl v Fl t Cm any +と同じです。 +.It Fl l +完全なドメインを列挙します。例えば +.Pp +.D1 Ic host -l rutgers.edu +.Pp +は、rutgers.edu domain 内のすべてのホストを列挙します。 +.Dq Fl t +オプションを使用して、どの情報を表示するかを、意図通りフィルタ可能です。 +デフォルトは、アドレス情報と PTR と NS レコードです。 +コマンド +.Pp +.D1 Ic host -l -v -t any rutgers.edu +.Pp +は、rutgers.edu に対するゾーンデータの完全なダウンロードを、 +公式なマスタファイル書式で与えます +(しかしながら、不可解な理由で、SOA レコードは 2 度表示されます)。 +.Pp +.Sy 注: +.Dq Fl l +の実装は、完全なゾーン転送を行い、 +これに対して要求した情報をフィルタアウトすることで行われます。 +このコマンドの使用は、本当に必要な場合に限るべきです。 +.El .Sh ホスト名検索のカスタマイズ 一般にユーザによって指定された名前にドットが含まれていなければ、 デフォルトのドメインがその末尾に付け加えられます。このドメインは .Pa /etc/resolv.conf において定義することができますが、通常はローカルの ホスト名の最初のドット以降を取ることによって求められます。ユーザは環境変数 .Ev LOCALDOMAIN を使って異なるデフォルトドメインを指定することによって、これを オーバーライドすることができます。さらに、ユーザはホスト名の独自の略称を使うこ ともできます。略称は 1 つの略称につき 1 行からなるファイルにおいて指定 します。各行には略称、スペース、そして完全なホスト名が含まれます。この ファイルは環境変数 .Ev HOSTALIASES にてファイル名を指定します。 .Sh 環境変数 .Bl -tag -width "/etc/resolv.conf " -compress .It Ev HOSTALIASES .Pq Ar ホストの別名 , 完全なホスト名 のペアを含んでいるファイルのファイル名 .El .Sh 関連ファイル .Bl -tag -width "/etc/resolv.conf " -compress .It Pa /etc/resolv.conf .Xr resolver 5 を参照してください。 .It Ev HOSTALIASES .Pq Ar ホストの別名 , 完全なホスト名 のペアを含んでいるファイルのファイル名 .El .Sh 関連項目 .Xr named 8 、 .Xr resolver 5 .Sh バグ ローカルドメインに含まれない名前を入力すると予期できない影響が起こり得 ます。名前がドットで終っていない限り、ローカルドメイン名がすべての名前の 末尾に付加されることをいつも心に留めておいてください。 ローカルドメインの補完に失敗した時のみ、名前は変更されずに使用されます。 .Pp .Dq Fl l オプションでは要求されたドメインにおいてリストされている最初の ネームサーバにのみ問い合わせを行ないます。もしこのサーバが死んでいれば、 サーバをマニュアルで指定しなければなりません。たとえば foo.edu のリストを 得るには、 .Pp .D1 Ic host -t ns foo.edu .Pp と指定して foo.edu のすべてのネームサーバ のリストを得てから、動作するものが見つかるまでリストにあるすべての ネームサーバについて .Pp .D1 Ic host -l foo.edu xxx .Pp (ここで .Dq Ic xxx はネームサーバ) を試みれば良いでしょう。 diff --git a/ja_JP.eucJP/man/man1/kbdcontrol.1 b/ja_JP.eucJP/man/man1/kbdcontrol.1 index 2905a1b78c..1491284e63 100644 --- a/ja_JP.eucJP/man/man1/kbdcontrol.1 +++ b/ja_JP.eucJP/man/man1/kbdcontrol.1 @@ -1,230 +1,231 @@ .\" .\" kbdcontrol - a utility for manipulating the syscons keyboard driver section .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" @(#)kbdcontrol.1 -.\" %FreeBSD: src/usr.sbin/kbdcontrol/kbdcontrol.1,v 1.18.2.2 2000/07/19 19:15:09 ben Exp % +.\" %FreeBSD: src/usr.sbin/kbdcontrol/kbdcontrol.1,v 1.18.2.3 2000/10/29 17:18:09 dwmalone Exp % .\" .\" jpman %Id: kbdcontrol.1,v 1.3 1997/07/26 21:37:54 horikawa Stab % .\" .Dd June 30, 1999 .Dt KBDCONTROL 1 .Os FreeBSD .Sh 名称 .Nm kbdcontrol .Nd syscons コンソールドライバを操作するユーティリティ .Sh 書式 .Nm .Op Fl dFKix .Op Fl b Ar duration.pitch | Ar belltype .Op Fl r Ar delay.repeat | Ar speed .Op Fl l Ar keymap_file .Op Fl f Ar # Ar string .Op Fl h Ar size .Op Fl k Ar keyboard_device .Op Fl L Ar keymap_file .Sh 解説 .Nm コマンドは、 キーマップ、リピート速度/ディレイ時間、ベル といった様々なキーボード関連オプションを、 .Xr syscons 4 コンソールドライバとキーボードドライバに対して設定するのに用いられます。 .Pp キーボードオプションは、 .Pa /etc/rc.conf 中の変数を設定することにより、 システムブート時に自動設定可能です。 後述の .Sx ブート時の設定 を参照してください。 .Pp 以下のコマンドラインオプションを使用可能です: .Bl -tag -width indent .It Fl b Ar duration.pitch | Ar belltype ベルの持続時間 (duration) をミリ秒で、ピッチ (pitch) をヘルツで設定します。 代わりに .Ar belltype 引数が指定された場合、この引数は .Cm normal (サウンドパラメータを標準値に戻します) か .Cm off (完全にベルをオフにします) か .Cm visual (ベルをビジュアルモードにします、 すなわち音を鳴らす代わりに画面をフラッシュさせます) のいずれかであることが必要です。 .Ar belltype の前に語 .Cm quiet. .\" quiet. と、「.」が付くのが正しい が付いた場合、 ベルを鳴らすプロセスがバックグラウンドの vty にいるときにはベルを鳴らしません。 .It Fl r Ar delay.repeat | Ar speed キーボードの .Ar delay (250, 500, 750, 1000) と .Ar repeat (34, 38, 42, 46, 50, 55, 59, 63, 68, 76, 84, 92, 100, 110, 118, 126, 136, 152, 168, 184, 200, 220, 236, 252, 272, 304, 336, 368, 400, 440, 472, 504) レートを設定します。 代わりに .Ar speed 引数が指定された場合、この引数は .Cm slow (1000.504), .Cm fast (250.34), .Cm normal (500.126) であることが必要です。 .It Fl l Ar keymap_file キーボードマップをファイル .Ar keymap_file から読み取って設定します。 キーボードマップファイルのロードは、 メニューによるコマンド .Xw kbdmap 1 により実行可能です。 .It Fl d 現在のキーボードマップを標準出力にダンプします。 出力はファイルにリダイレクト可能であり、前述の .Fl l オプションを使用して後でカーネルにロードできます。 .It Fl f Ar # Ar string .Ar # 番のファンクションキーで文字列 .Ar string が送られるように設定します。 使用可能なファンクションキーとその番号については、 キーボードドライバのマニュアルページ .Pq 例えば Xr atkbd 4 を参照してください。 .It Fl F ファンクションキー設定を標準状態に戻します。 .It Fl x キーボードマップのダンプを 16 進数表示で行います。 .It Fl h Ar size ヒストリバッファの大きさを .Ar size 行に設定します。 .It Fl i キーボードに関する短かい情報を表示します。 .It Fl K コンソールからキーボードを切り離します。 キーボードとコンソールを再接続するためには、後述の .Fl k オプションを使用する必要があります。 .It Fl k Ar keyboard_device 指定したデバイスをコンソールキーボードとして使用します。 本オプション使用時にシステムコンソール上で作業していない場合には、 .Nm プロセスの標準入力を .Pa /dev/console からリダイレクトする必要があります ( .Sx EXAMPLES 節を参照してください)。 .It Fl L Ar keymap_file キーボードマップをファイル .Ar keymap_file から読み取り、これをコンパイルした結果の .Ft "struct keymap" を標準出力に書き出します。 このオプションは第一にプログラマ向けであり、 おそらく通常の状況下ではほとんど使用しないでしょう。 .El .Sh キーボードの設定 .Ss ブート時の設定 .Pa /etc/rc.conf または .Pa /etc/rc.conf.local の変数を設定することにより、ブート時にキーボードを設定可能です。 関連する変数を列挙します。 .Pp .Bl -tag -width foo_bar_var -compact .It Ar keymap .Fl l オプション用のキーボードマップファイルを指定します。 .It Ar keyrate .Fl r オプション用のキーボードリピートレートを指定します。 .It Ar keychange .Fl f オプション用のファンクションキー文字列を列挙します。 .El .Pp 詳細は .Xr rc.conf 5 を参照してください。 .Ss ドライバの設定 キーボードマップなどのデフォルト設定オプションの変更を、 キーボードドライバが許す場合があります。 その場合、ブート時のオプション設定の必要はなくなります。 詳細はキーボードドライバマニュアル .Pq 例えば Xr atkbd 4 , Xr ukbd 4 を参照してください。 .Sh 関連ファイル .Bl -tag -width /usr/share/syscons/keymaps/foo_bar -compact .It Pa /usr/share/syscons/keymaps/* キーボードマップファイル。 .Sh 使用例 次のコマンドでキーボードマップファイル .Pa /usr/share/syscons/keymaps/ru.koi8-r.kbd をロードします。 .Pp .Dl kbdcontrol -l /usr/share/syscons/keymaps/ru.koi8-r.kbd .Pp キーボードマップファイルが .Pa /usr/share/syscons/keymaps にある場合、ファイル名を .Pa ru.koi8-r のように短縮可能です。 .Pp .Dl kbdcontrol -l ru.koi8-r .Pp 次のコマンドはファンクションキー 10 が "telnet myhost" を出力するようにします。 .Pp .Dl kbdcontrol -f 10 \&"telnet myhost\&" .Pp ベルをビジュアルにするものの、 バックグラウンド画面でベルが鳴るときには画面がフラッシュするのを避けるには、 次のコマンドを実行します。 .Pp .Dl kbdcontrol -b quiet.visual .Pp .Pp デフォルトコンソールキーボードを別のキーボード、 例えば最初の USB キーボード ( .Xr ukbd 4 を参照してください) に切り替えるには、次のコマンドを使用します。 .Pp .Dl kbdcontrol -k /dev/kbd1 < /dev/console .Pp デフォルトキーボードに戻すには、次のコマンドを使用します。 .Pp .Dl kbdcontrol -k /dev/kbd0 .Sh バグ もし見つかったら報告してください。 .Sh 関連項目 .Xr kbdmap 1 , .Xr vidcontrol 1 , .Xr atkbd 4 , .Xr keyboard 4 , .Xr screen 4 , .Xr syscons 4 , .Xr ukbd 4 , +.Xr kbdmap 5 , .Xr rc.conf 5 . .Sh 作者 .An Soren Schmidt Aq sos@FreeBSD.org .Sh 日本語訳 酒井 淳嗣 (sakai@csl.cl.nec.co.jp): FreeBSD 向けに翻訳 diff --git a/ja_JP.eucJP/man/man1/kbdmap.1 b/ja_JP.eucJP/man/man1/kbdmap.1 index 3dadadead2..d12042b07e 100644 --- a/ja_JP.eucJP/man/man1/kbdmap.1 +++ b/ja_JP.eucJP/man/man1/kbdmap.1 @@ -1,142 +1,143 @@ .\" Copyright (c) March 1995 Wolfram Schneider . Berlin. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/kbdmap/kbdmap.1,v 1.17 2000/03/01 14:07:41 sheldonh Exp % +.\" %FreeBSD: src/usr.sbin/kbdmap/kbdmap.1,v 1.17.2.1 2000/10/29 17:18:09 dwmalone Exp % .\" jpman %Id: kbdmap.1,v 1.3 1997/08/10 18:29:41 horikawa Stab % .Dd Mar 25, 1995 .Dt KBDMAP 1 .Os FreeBSD .Sh 名称 .Nm kbdmap , .Nm vidfont .Nd syscons 用フロントエンド .Sh 書式 .Nm kbdmap .Op Fl K .Op Fl V .Op Fl d | Fl default .Op Fl h | Fl help .Op Fl l | Fl lang Ar language .Op Fl p | Fl print .Op Fl r | Fl restore .Op Fl s | Fl show .Op Fl v | Fl verbose .Sh 解説 .Nm kbdmap は有効なキーマップを容易に設定するコマンドです。 同様に .Nm vidfont はフォントを設定します。 いずれもデータベース中の記述 (description) を探します。 この記述は英語 (デフォルト) あるいは他の言語で書かれています。 両コマンドともキーマップおよびフォントのデータベースを検査します。 デフォルトでは英語で記述されていますが、他の言語でなされても構いません。 .Pp .Tn MSDOS コードページのキーマップやフォントを使用しないよう強く勧めます。 可能であれば .Tn ISO 標準バージョンを使ってください! .Tn X11 は .Tn MSDOS コードページをサポートしません。 .Pp 次のオプションが利用可能です: .Bl -tag -width Ds .It Fl K .Xr kbdmap 1 としてコマンドを実行します。 .It Fl V .Xr vidfont 1 としてコマンドを実行します。 .It Fl d , Fl default デフォルト言語を使用します。 .Ev LANG 環境変数は無視されます。 .It Fl h , Fl help オプション一覧を表示して終了します。 .It Fl l , Fl lang Ar language 記述およびメニューの表示に言語 .Ar language を用います。 .It Fl p , Fl print 標準出力に使用可能なキーマップもしくはフォントを表示し、終了します。 .It Fl r , Fl restore .Pa /etc/rc.conf からデフォルトフォントをロードします。 .It Fl s , Fl show 現在サポートしている言語を表示して終了します。 .It Fl v , Fl verbose 通常よりきめ細かく警告メッセージを出力します。 .El .Sh 環境変数 .Bl -tag -width /etc/master.passwdxx -compact .Pa LANG 希望する言語。 .El .Sh 関連ファイル .Bl -tag -width /usr/share/syscons/keymaps/INDEX.keymaps -compact .It Pa /usr/share/syscons/keymaps/INDEX.keymaps キーマップのデータベース .It Pa /usr/share/syscons/fonts/INDEX.fonts フォントのデータベース .It Pa /etc/rc.conf デフォルトのフォント .It Pa /usr/X11/lib/X11/locale/locale.alias 共通な .Ev LANG に関する記述 .Sh バグ .\" .Nm kbdmap/vidfont .\" does not know which font is in use. E.g. if the current font .\" is iso-8859-1 and you chose lang 'ru' (for Russian) .\" you get funny latin1 characters and not russkij shrift. .\" .Nm vidcontrol および .Nm kbdcontrol は (仮想) コンソールでのみ機能します。 .Tn X11 上では動作しません。 .Sh 関連項目 .Xr dialog 1 , .Xr kbdcontrol 1 , .Xr vidcontrol 1 , +.Xr kbdmap 5 , .Xr rc.conf 5 .Sh 歴史 .Nm kbdmap および .Nm vidfont コマンドは .Fx 2.1 から登場しました。 .Sh 作者 .An Wolfram Schneider .Aq wosch@FreeBSD.org , Berlin. .Sh 日本語訳 酒井 淳嗣(sakai@csl.cl.nec.co.jp): FreeBSD向けに翻訳 diff --git a/ja_JP.eucJP/man/man1/pkg_create.1 b/ja_JP.eucJP/man/man1/pkg_create.1 index 1558e69f88..5d194d5b66 100644 --- a/ja_JP.eucJP/man/man1/pkg_create.1 +++ b/ja_JP.eucJP/man/man1/pkg_create.1 @@ -1,505 +1,514 @@ .\" .\" FreeBSD install - a package for the installation and maintainance .\" of non-core utilities. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" Jordan K. Hubbard .\" .\" .\" @(#)pkg_create.1 -.\" %FreeBSD: src/usr.sbin/pkg_install/create/pkg_create.1,v 1.35 2000/03/01 14:09:01 sheldonh Exp % +.\" %FreeBSD: src/usr.sbin/pkg_install/create/pkg_create.1,v 1.35.2.1 2000/10/31 07:21:28 sobomax Exp $% .\" .\" hacked up by John Kohl for NetBSD--fixed a few bugs, extended keywords, .\" added dependency tracking, etc. .\" .\" [jkh] Took John's changes back and made some additional extensions for .\" better integration with FreeBSD's new ports collection. .\" .\" jpman %Id: pkg_create.1,v 1.3 1997/06/09 10:11:56 jsakai Stab % .Dd April 21, 1995 .Dt PKG_CREATE 1 .Os FreeBSD .Sh 名称 .Nm pkg_create .Nd ソフトウェア配布 package を作成するプログラム .Sh 書式 .Nm .Op Fl YNOhv .Op Fl P Ar pkgs .Op Fl p Ar prefix .Op Fl f Ar contents .Op Fl i Ar iscript .Op Fl I Ar piscript .Op Fl k Ar dscript .Op Fl K Ar pdscript .Op Fl r Ar rscript .Op Fl s Ar srcdir .Op Fl t Ar template .Op Fl X Ar excludefile .Op Fl D Ar displayfile .Op Fl m Ar mtreefile +.Op Fl o Ar originpath .Fl c Ar comment .Fl d Ar description .Fl f Ar packlist .Ar pkg-name .Sh 解説 この .Nm コマンドは、package 展開/情報プログラムに渡される package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) を作成します。 package 作成のために入力する説明とコマンドライン引数 は本来人間が生成することを意図していませんが、 そうすることも簡単にできます。 自力でどうにかすることも可能ですが、作成にはフロントエンドツールを 用いた方がいいでしょう。 とはいうものの、入力書式の概略はこの文書に含まれています。 .Sh オプション 以下のコマンドラインオプションが提供されています: .Bl -tag -width indent .It Fl f Ar packinglist ファイル .Ar packinglist から、もしくは .Ar packinglist が .Cm - (ダッシュ)であれば .Cm stdin から、package 用の .Dq packing list を取得します。 .It Fl c Ar [-]desc ファイル .Ar desc から、もしくは先頭が .Cm - で始まっていれば引数自身から、package の .Dq 一行説明 を取得します。 この文字列は、package が提供するもののバージョンを知る 手がかりとなるべきです。 .It Fl d Ar [-]desc ファイル .Ar desc から、もしくは先頭が .Cm - で始まっていれば引数自身から、package の長い説明を取得します。 .It Fl Y 質問に対してのデフォルトの解答を `Yes' とします。 .It Fl N 質問に対してのデフォルトの解答を `No' とします。 .It Fl O `packing list Only' モードに移行します。 これは .Em "FreeBSD Ports Collection" のための特別な修正であり、port がインストールされる時の `fake pkg_add' を行うために用いられます。 このような場合には、調整された最終的な packing list が どのようなものになるかを知る必要があるのです。 .It Fl v 饒舌な出力に切り替えます。 .It Fl h tar がシンボリックリンクをたどるようにします。 この結果、リンク自身ではなくリンク先のファイルが出力されます。 .It Fl i Ar iscript package のインストール前手続きとして .Ar iscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .Cm 注: .Cm Fl I オプションが指定されない場合、 本スクリプトは当該 package の pre-install および post-install の両方のスクリプトとして動作します。 package 名とともにキーワード .Ar PRE-INSTALL および .Ar POST-INSTALL をそれぞれ渡すことにより、機能を切り替えることになります。 .It Fl I Ar piscript package のインストール後手続きとして .Ar piscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .It Fl P Ar pkgs 初期の package 依存リストとして .Ar pkgs を用います。 これは空白で区切られた package の名前となります。 また、packing list (後述の「PACKING LIST 詳細」セクションを参照) 内の複数の .Cm @pkgdep ディレクティブを指定する手っ取り早い方法でもあります。 .It Fl p Ar prefix package のファイルを選択する際に .Dq 基準 となる初期ディレクトリとして .Ar prefix を用います。 .It Fl k Ar dscript package のアンインストール手続きとして .Ar dscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がアンインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .Cm 注: .Cm Fl K オプションが指定されない場合、 本スクリプトは当該 package の de-install および post-deinstall の両方のスクリプトとして動作します。 package 名とともにキーワード .Ar DEINSTALL および .Ar POST-DEINSTALL をそれぞれ渡すことにより、機能を切り替えることになります。 .It Fl K Ar pdscript package のアンインストール後手続きとして .Ar pdscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これは package がアンインストールされる時に自動的に起動されます。 その際、package 名が第 1 引数として渡されます。 .It Fl r Ar rscript package の .Dq requirements 手続きとして .Ar rscript を用います。 これは実行可能なプログラム (もしくはシェルスクリプト) なら なんでも構いません。 これはインストール時、アンインストール時に自動的に起動され、 インストール、アンインストールを継続するべきかどうかを決定するのに 用いられます。 インストールとアンインストールを区別するために、キーワード .Ar INSTALL と .Ar DEINSTALL がそれぞれ、package 名と共に渡されます。 .It Fl s Ar srcdir package 作成中に .Ar srcdir は、 .Cm @cwd の値に優先します。 .It Fl t Ar template .Xr mktemp 3 への入力として .Ar template を用います。 これはデフォルトでは .Pa /tmp/instmp.XXXXXX という文字列ですが、 .Pa /tmp ディレクトリの容量が制限されているような状況では 変更する必要があるかもしれません。 .Xr mktemp 3 が一意の ID を用いるために必要な `X' の文字をいくつか残しておく ことを忘れないでください。 .It Fl X Ar excludefile 最終的に package を作成する際に、 .Ar excludefile を .Cm tar に .Fl exclude-from 引数として渡します。 このオプションを使うにあたっての詳しい情報は、 .Cm tar のマニュアルページ (もしくは .Fl -help 引数を付けて .Cm tar を実行) を参照してください。 .It Fl D Ar displayfile package をインストールした後にファイルを (連結して標準出力へ) 表示します。 「ほとんど free なソフトウェア」などにおいて、 法的な通知のようなものなどに便利でしょう。 .It Fl m Ar mtreefile package がインストールされる前に、mtreefile を入力として .Xr mtree 8 を実行します。mtree は .Cm mtree .Fl u .Fl f .Ar mtreefile .Fl d .Fl e .Fl p .Pa prefix として起動されます (ただし .Pa prefix は .Cm @cwd ディレクティブにより名付けられた最初のディレクトリの名前)。 +.It Fl o Ar originpath +.Ar originpath +を、 +.Em "FreeBSD Ports Collection" +中で package が作成された場所として記録します。 +この書式は、 +.Pa MASTERCATEGORY/PORTDIR +であるべきです。 .El .Pp .Sh PACKING LIST 詳細 .Dq packing list の書式 ( .Fl f を参照) は単純で、package に含めるファイル名を一行につきひとつずつ 並べたものにすぎません。 どこにインストールされるかわからない package に対して絶対パスを 用いるのは一般的に悪い方法なので、 どこにインストールされることを想定しているのか、 そしてどんな ownership と mode を伴ってインストールされるべきなのか (こちらはオプション) を指定する方法が用意されています。 これは packing list 内に一連の特殊コマンドを 埋め込むことで実現されています。以下に簡単に示します: .Bl -tag -width indent -compact .It Cm @cwd Ar directory 内部のディレクトリポインタが .Ar directory を指すようにします。以降のファイル名はこのディレクトリへの相対パス であるとみなされます。 注: .Cm @cd はこのコマンドの別名です。 .It Cm @srcdir Ar directory 「作成時のみ」の内部ディレクトリポインタを .Ar directory に設定します。 package 作成時に .Cm @cwd に優先すると言えますが、展開時にはこれはあてはまりません。 .It Cm @exec Ar command 展開処理の一環として .Ar command を実行します。 .Ar command が以下の文字列を含んでいた場合、その場で置換されます。 以下の例では .Cm @cwd が .Pa /usr/local と設定されていて、最後に展開されたファイルが .Pa bin/emacs だったとしています。 .Bl -tag -width indent -compact .It Cm "%F" 最後に展開されたファイル名に置換されます。この例では .Pa bin/emacs となります。 .It Cm "%D" .Cm @cwd で設定されたカレントディレクトリプレフィックスに置換されます。 この例では .Pa /usr/local になります。 .It Cm "%B" 完全な (フルパスの) ファイル名の .Dq basename へ置換されます。 これはカレントディレクトリプレフィックスに最後の filespec を 加え、末尾のファイル名部分を除いたものです。 この例では、 .Pa /usr/local/bin になります。 .It Cm "%f" 完全な (フルパスを含む) ファイル名の .Dq filename 部分へ置換されます。 .Cm %B と対応していて、この例では .Pa emacs となります。 .El .It Cm @unexec Ar command アンインストール処理の一環として .Ar command を実行します。特別な .Cm % 文字列の置換は .Cm @exec と同様です。 このコマンドは .Cm @exec のように package を加える際に実行されるのではなく、package が 削除されるときに実行されます。 これは、package を加えるときに作られたリンクや他の 付随ファイル (package の内容一覧に記されているファイルは自動的に 削除されるので除く) を削除するのに便利です。 アンインストールスクリプトよりも .Cm @unexec を用いる方が有利な点は、どこにインストールされているかわからない ( .Fl p を参照) ファイルの場所を得るのに .Dq 特殊文字列置換 を用いることが 可能なことです。 .It Cm @mode Ar mode この後で展開されるすべてのファイルのデフォルトの許可属性を .Ar mode に設定します。 書式は .Cm chmod コマンドで用いられているものと同じです (というよりも、そのまま 渡されています)。 引数無しで用いると、デフォルトの (展開) 許可属性に戻します。 .It Cm @option Ar option 内部用 package オプションを設定します。 現在二つのオプションのみがサポートされています。 ひとつは .Ar extract-in-place で、これは pkg_add コマンドに package の tarball を staging area に展開せずに、目的の階層に直接展開するよう指示します (これは主に配布物や他の特殊な package などに用いられます)。 もうひとつは .Ar preserve で、存在するファイルを別の所に保存しておくよう pkg_add に指示します (これらは pkg_delete の時に復活しますが、自分の責任で行ってください)。 .It Cm @owner Ar user この後で展開されるすべてのファイルのデフォルトの ownership を .Ar user に設定します。 引数無しで用いると、デフォルトの (展開) ownership に戻します。 .It Cm @group Ar group この後で展開されるすべてのファイルのデフォルトの group ownership を .Ar group に設定します。 引数無しで用いると、デフォルトの (展開) group ownership に戻します。 .It Cm @comment Ar string packing list 内にコメントを埋め込みます。 誰かが後で間違えてしまうかもしれない特に厄介な部分を説明しようとする 場合に便利です。 .It Cm @ignore 特殊な目的に使われるファイルなどのため、展開時に次のファイルを 無視する (どこにもコピーしない) ように、内部で用いられます。 .It Cm @ignore_inst .Cm @ignore と同様ですが、次のファイルを無視するのは一評価サイクルだけ 遅らせられます。 このおかげでこのディレクティブを .Ar packinglist ファイル内で用いることが可能になるので、インストーラが 無視するような、インストールスクリプトなどのための特殊な データファイルを、配布物内に入れることができるようになります。 .It Cm @name Ar name package の名前を設定します。 これは必須項目であり、通常先頭に置かれます。 この名前は package が提供するファイルの名前とは異なる可能性があり、 後でアンインストールする時のために package の記録を残しておくのに使われます。 名前が指定されなかった場合には、 .Nm は package 名から推定し、自動的に設定することに注意してください。 .It Cm @dirrm Ar name ディレクトリ .Pa name がアンインストール時に削除されるよう宣言します。デフォルトでは、 package のインストール時に作成されたディレクトリは アンインストール時には削除されませんが、このディレクティブは明示的な ディレクトリ削除方法を提供します。 このディレクティブは package リストの最後で用いるようにしてください。 一つ以上の .Cm @dirrm ディレクティブが指定された場合、指定された順番に削除されます。 .Pa name は空きディレクトリでなければ削除されません。 .It Cm @mtree Ar name .Pa name を、インストール時に用いられる .Xr mtree 8 への入力ファイルとして宣言します (上述の .Fl m を参照)。最初にひとつだけ .Cm @mtree ディレクティブを指定することが推奨されます。 .It Cm @display Ar name .Pa name を、インストール時に表示されるファイルとして宣言します (上述の .Fl D を参照)。 .It Cm @pkgdep Ar pkgname package .Ar pkgname に依存することを宣言します。 package .Ar pkgname はこの package がインストールされる前にインストールされていなければ ならず、またこの package は package .Ar pkgname がアンインストールされる前にアンインストールされなければなりません。 package が複数の package に依存する場合には、複数の .Cm @pkgdep ディレクティブが用いられます。 .Sh 環境変数 環境変数 .Ev PKG_TMPDIR で、 .Nm が作業用ファイルの生成を試みるディレクトリの名前を指定します。 .Ev PKG_TMPDIR が設定されていない場合、 .Ev TMPDIR で指定されたディレクトリが使用されます。 .Ev PKG_TMPDIR 、 .Ev TMPDIR ともに設定されていない場合は、組み込みのデフォルトディレクトリが 使用されます。 .Sh ファイル .Bl -tag -width /usr/tmp -compact .It Pa /var/tmp 環境変数 .Ev PKG_TMPDIR 、 .Ev TMPDIR がともに設定されていない場合の作業用ディレクトリ。 .It Pa /tmp .Pa /var/tmp が存在しない場合の、その次の選択肢。 .It Pa /usr/tmp .Pa /tmp が適切でない場合の、最後の選択肢。 .El .Sh 関連項目 .Xr pkg_add 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr pkg_version 1 , .Xr sysconf 3 .Sh 歴史 .Nm コマンドは .Bx Free で最初に登場しました。 .Sh 作者 .An Jordan Hubbard ほとんどの仕事 .An John Kohl NetBSD 向け修正 .El .Sh バグ package が展開される際にハードリンクを保存しておくために、 配布物のファイル間でのハードリンクは .Cm @cwd ディレクティブで括られていなければなりません。 その上、実行時の引数の長さの制限 (これは .Fn sysconf _SC_ARG_MAX により返される値に依存します) のために、それらのハードリンクは単一の .Cm tar 実行内で行われなければなりません。 .Pp バグは他にもあるはずです。 diff --git a/ja_JP.eucJP/man/man1/pkg_info.1 b/ja_JP.eucJP/man/man1/pkg_info.1 index 845429d9c2..4471ab147f 100644 --- a/ja_JP.eucJP/man/man1/pkg_info.1 +++ b/ja_JP.eucJP/man/man1/pkg_info.1 @@ -1,185 +1,193 @@ .\" .\" FreeBSD install - a package for the installation and maintainance .\" of non-core utilities. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" Jordan K. Hubbard .\" .\" .\" @(#)pkg_info.1 -.\" %FreeBSD: src/usr.sbin/pkg_install/info/pkg_info.1,v 1.24.2.2 2000/09/25 10:56:43 marko Exp % +.\" %FreeBSD: src/usr.sbin/pkg_install/info/pkg_info.1,v 1.24.2.3 2000/10/31 07:21:28 sobomax Exp % .\" .\" jpman %Id: pkg_info.1,v 1.3 1997/06/08 14:11:48 jsakai Stab % .\" .Dd November 25, 1994 .Dt pkg_info 1 .Os FreeBSD .Sh 名称 .Nm pkg_info .Nd ソフトウェア配布 package の情報を表示するプログラム .Sh 書式 .Nm pkg_info -.Op Fl cdDfikrRpLsqImv +.Op Fl cdDfikorRpLsqImv .Op Fl e Ar package .Op Fl l Ar prefix .Op Fl t Ar template .Ar pkg-name [pkg-name ...] .Nm pkg_info .Fl a .Op Ar flags .Sh 解説 .Nm コマンドは、 .Xr pkg_create 1 によりファイルにパックされた package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) か、 .Xr pkg_add 1 によりすでにシステムにインストールされた package に関し、 情報を表示するために用いられます。 .Sh オプション 以下のコマンドラインオプションが提供されています。 .Bl -tag -width indent .It Ar pkg-name ... 指定された package が表示されます。指定されるのはイントール済みの package の名前か、package 配布ファイルへのパス、ftp 可能な package への URL のいずれかになります。 .It Fl a 現在インストールされているすべての package を表示します。 .It Fl v 饒舌な出力に切り替えます。 .It Fl p 各 package のインストール用 prefix を表示します。 .It Fl q レポートヘッダのような情報を出力する際に余分な出力を .Dq 省略 し、 生の情報のみ出力します (基本的に人が読みやすいものではありません)。 .It Fl c 各 package の (一行) コメントフィールドを表示します。 .It Fl d 各 package の長い説明フィールドを表示します。 .It Fl D 各 package のインストールメッセージファイルを表示します。 .It Fl f 各 package の packing list instructions を表示します。 .It Fl i もしあれば、各 package のインストールスクリプトを表示します。 .It Fl I 各 package のインデックス行を表示します。このオプションは他の package 書式整形オプションの全てに優先します。 .It Fl k もしあれば、各 package のアンインストールスクリプト を表示します。 .It Fl r もしあれば、各 package の requirements スクリプトを表示します。 .It Fl R (指定した) 各 package を必要とする package のうちで、インストールされて いるもののリストを表示します。 .It Fl m もしあれば、各 package の mtree ファイルを表示します。 .It Fl L 各 package に含まれるファイルを表示します。 これは packing list をただ見るのとは異なり、 生成されるすべてのフルパス名が表示されます。 .It Fl s 各 package 中のインストールされたファイルの総容量を表示します。 +.It Fl o +package 生成時に記録された +.Dq 起源 +パスを表示します。 +このパスは、 +生成された package から、 +.Em "FreeBSD Ports Collection" +における元の port の場所を与えることを意図しています。 .It Fl e Ar pkg-name .Ar pkg-name で示される package が現在インストールされている場合には 0 を 返し、そうでなければ 1 を返します。 このオプションにより、スクリプトから (おそらく必要不可欠な) 他の package の存在を簡単に確認することが可能になります。 .It Fl l Ar str 各 information category header ( .Fl q を参照) の前に .Ar str を付加します。 これは本来、package に関する多くの information fields を一度に 得たいが、そのごっちゃになった出力で混乱したくない、という フロントエンドプログラムのためにあります。 このオプションで各 field の先頭に特別な文字列を付け加えることが できます。 .It Fl t Ar template .Dq 作業場所 を作成する際に、 .Xr mktemp 3 への入力として .Ar template を用います。 これはデフォルトでは .Pa /tmp/instmp.XXXXXX という文字列ですが、 .Pa /tmp ディレクトリの容量が制限されているような状況では 変更する必要があるかもしれません。 .Xr mktemp 3 が一意の ID を用いるために必要な `X' の文字をいくつか残しておく ことを忘れないでください。 .Bd -filled -offset indent -compact Note: pkg_info は各 package からとても小さな情報しか 抽出しないので、実際にはこのオプションは必要ありません。 溢れさせるには非常に小さな .Pa /tmp でなければならないでしょう。 .Ed .Sh 技術詳細 package の情報は、コマンドラインから指定された package のファイル名か、 .Pa /var/db/pkg/ にあるすでにインストールされた package の情報から抽出されます。 .Sh 環境変数 .Ev PKG_TMPDIR で、 .Nm が作業用ファイルを生成するディレクトリを指定します。 この変数が設定されていない場合、 .Ev TMPDIR が用いられます。両方とも設定されていない場合、 組み込みのデフォルトディレクトリが用いられます。 .Pp .Ev PKG_DBDIR で、 インストールされた package についての代替的なデータベースの位置を指定します。 .Sh ファイル .Bl -tag -width /var/db/pkg -compact .It Pa /var/tmp 環境変数 .Ev PKG_TMPDIR , .Ev TMPDIR がともに設定されていない場合、もしくはこれらのディレクトリの空き領域が 十分でない場合に用いられます。 .It Pa /tmp .Pa /var/tmp が存在しないか、十分な空き領域を持たない場合に、次の選択肢として 用いられます。 .It Pa /usr/tmp .Pa /tmp が適切でない場合の最後の選択肢です。 .It Pa /var/db/pkg インストールされた package についてのデータベースのデフォルトの 位置です。 .El .Sh 関連項目 .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_version 1 , .Xr mktemp 3 , .Xr mtree 8 .Sh 作者 .An Jordan Hubbard ほとんどの仕事 .An John Kohl NetBSD 向け修正 .El .Sh バグ まだあるはずです。 diff --git a/ja_JP.eucJP/man/man1/pkg_version.1 b/ja_JP.eucJP/man/man1/pkg_version.1 index e26387b83b..7e4020a380 100644 --- a/ja_JP.eucJP/man/man1/pkg_version.1 +++ b/ja_JP.eucJP/man/man1/pkg_version.1 @@ -1,200 +1,242 @@ .\" .\" Copyright 1998 Bruce A. Mah .\" .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/pkg_install/version/pkg_version.1,v 1.5.2.4 2000/10/24 18:29:32 bmah Exp % +.\" %FreeBSD: src/usr.sbin/pkg_install/version/pkg_version.1,v 1.5.2.5 2000/10/31 20:43:30 bmah Exp % .\" jpman %Id: pkg_version.1,v 1.3 1999/12/05 08:25:39 horikawa Stab % .Dd July 17, 1998 .Dt PKG_VERSION 1 .Os FreeBSD .Sh 名称 .Nm pkg_version .Nd インストールされた package のバージョンを要約表示 .Sh 書式 .Nm pkg_version .Op Fl cdhv .Op Fl l Ar limchar .Op Fl L Ar limchar .Op Ar index .Sh 解説 .Nm コマンドは、 .Xr pkg_add 1 コマンドを使ってインストールされた、基本ソフトウェア以外の ソフトウェア package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) に関するレポートを作成するために使います。 -どの package について更新処理が必要となるのかを調べるために、 -バージョン番号をインデックスファイルに対して比較します。 +.Pp +各 package のバージョン番号は、2 個の情報源のうちの 1 つと照会され、 +この package の更新が必要が否かが判断されます。 +package 中に +.Fx +ports ツリーにおける起源情報を含み、port の +.Pa Makefile +からバージョン番号を判定可能な場合、 +.Pa Makefile +のバージョン番号を使用して、 +インストール済の package が最新であるか更新要かを判定します。 +.Pp +package の起源が無い場合か、port の +.Pa Makefile +が見付からない場合、 +.Nm +は ports collection インデックスファイル (典型的には +.Pa /usr/ports/INDEX +) から package を探します。 +マッチするバージョン番号 (複数可) を使用して、 +インストール済の package が最新であるか更新要かを判定します。 +.Pp +一般的に、port の +.Pa Makefile +のバージョン番号を使用することにより、より正確な結果となります。 +これは、インデックスファイルとは異なり、 +現在のバージョン番号を厳密に提供するためであり、 +これは複数のバージョンの port が ports collection 中にある場合でも成立します。 +更に、ports collection インデックスファイルの更新は間隔が開きますので、 +ports collection に含まれるソフトウェアのバージョン番号を +完全に反映している訳ではありません。 .Pp 各 package 名が、次に示す 1 文字のステータスフラグと一緒に表示されます: .Bl -tag -width indent .It Li = -インストールされている package のバージョンは、インデックスと一致します。 +インストールされている package のバージョンは、最新です。 .It Li < インストールされている package のバージョンは、 -インデックスに記載されるバージョンより古いものです。 +最新バージョンより古いものです。 .It Li > インストールされている package のバージョンは、 -インデックスで記載されるものよりも新しいものです。 +最新バージョンよりも新しいものです。 +この状況は、インデックスが古い場合か、新規 port をテスト中に発生します。 .It Li ? インストールされた package がインデックス中に見付かりませんでした。 原因としては、インデックスが古いことか、 コミットされていない package を PR から取得したことがあり得ます。 .It Li * ある特定のソフトウェア package で -複数バージョンがインストールされているものがあるか、 -ある特定のソフトウェア package で 複数バージョンがインデックスに列挙されているものがあります。 .Fx port コレクションを例に取ると、 Tcl ツールキットや .Tn EMACS が該当します。 .It Li ! インストールされた package がインデックス中にありますが、 なんらかの理由で、 インストールされた package のバージョン番号と インデックス中の対応するエントリとを .Nm が比較できませんでした。 .Sh オプション .Nm は、いくつかのコマンドライン引数をサポートしています: .Bl -tag -width indent .It Fl c コマンド出力を可能にします。 コマンド出力は、 インストール済み package を port システムにおいて 最新バージョンのものに更新するために、 あなたが打込む必要があるコマンドを含んでいます。 +この機能は、package を自動的に更新するシステムを構成するわけではありま +.Bf Em +せん +.Ef +。 +本コマンドの出力は、インストール済の package 間の依存関係を壊さないために、 +編集する +.Bf Em +必要 +.Ef +があります。 .It Fl d デバッグ出力を有効にします。 .It Fl h ヘルプメッセージを表示します。 .It Fl l -出力する package を、ステータスフラグが +出力する package を、ステータスフラグが文字 .Ar limchar にマッチするものに制限します。 マッチに使用する文字を、複数個 .Ar limchar に指定可能です。 ステータスフラグの文字にはシェルの特殊文字でもあるものが存在するため、 .Ar limchar をシングルクォートで括るのが最善手です。 .It Fl L 出力する package を、ステータスフラグが .Ar limchar にマッチしないものに制限します。 複数のマッチ対象の文字を .Ar limchar に指定可能です。 ステータスフラグの文字にはシェルの特殊文字でもあるものが存在するため、 .Ar limchar をシングルクォートで括るのが最善手です。 .It Fl v 冗長出力を有効にします。 冗長出力は 英文による、バージョン番号比較に関する若干の説明と、 各 package の比較に使われたバージョン番号の説明が含まれています。 スクリプトやプログラムで処理するには、 おそらく冗長でない出力の方が簡単でしょう。 .It Ar index 比較の基準として利用するインデックスを指定します。 インデックスとして、ファイル名 (ローカルなファイルシステム内) または URL を指定することができます。 .Xr fetch 1 が解釈可能な URL であれば、どのようなものでも指定することができます。 コマンドラインで .Ar index ファイルが指定されていない場合は .Pa /usr/ports/INDEX が利用されます。 .El .Sh 関連項目 .Xr fetch 1 , .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 .Sh 関連ファイル .Bl -tag -width /usr/ports/INDEX -compact .It Pa /usr/ports/INDEX デフォルトのインデックスファイル。 .El .Sh 使用例 以下は .Nm コマンドの典型的な起動方法です。 インストール済み package を ローカルの port インデックスファイルと照合します: .Pp .Dl % pkg_version -v .Pp 下のコマンドは、 オンラインの port コレクションにおける バージョン番号に対してレポートを生成します: .Pp .Dl % pkg_version ftp://ftp.FreeBSD.org/pub/FreeBSD/ports-current/INDEX .Pp 下のコマンドは、 インストールされたファイルの更新を行うために実行するコマンド群の ファイルを生成します。 -このコマンドを自動的に実行させることは推奨 +コマンドは、適切に編集することなく実行 .Bf Em -できません。 +しないでください .Ef -必ず報告を再検討してから、あなたが実行したいコマンドを、 -カットアンドペースト (あるいは再入力) で入力してください。 +。 +提案として扱うべきであり、 +インストール済 package 間の依存関係を考慮に入れるために +順序を入れ換える必要があるかもしれませんし、 +複数のインストール済 package を共存させるために +無視する必要があるかもしれません。 +本コマンドの出力を内容を確認せずに使用すると、 +システムが使えなくなることがあります。 .Pp .Dl % pkg_version -c > do_update .Sh 作者 .An Bruce A. Mah Aq bmah@FreeBSD.org .Sh 寄贈者 .An Nik Clayton Aq nik@freebsd.org , .An Dominic Mitchell Aq dom@palmerharvey.co.uk , .An Mark Ovens Aq marko@FreeBSD.org , .An Doug Barton Aq DougB@gorean.org .Sh バグ -複数のバージョンでインストールされた package について、 -うまく処理できる方法が必要です。 .Pp パッチレベルに関しては、うまく取り扱うことができません (すなわち 1.2p3 あるいは 1.2pl3 といった形式のバージョン番号) 。 .Pp -バージョン番号が変更されない (例えば、package / port 自身の -ちょっとしたバグフィックス) ような package に関しては -更新できません。 -.Pp -コマンド出力は、package 間における依存関係については関知していません。 -例えば、2 つの package が異なるバージョンを必要とするために、 -2 バージョンの Tcl をインストールする必要があるかもしれません。 -.Nm -は、古いバージョンの消去を提案します。 +コマンド出力機能は、ports/packages の自動更新システムでは +.Bf Em +ありません +.Ef +。 +インストール済の packages 間の依存関係を正しく扱おうとすらしませんし、 +システム上に複数のバージョンの package が共存する場合には +正しくない結果を出力します。 .Pp コマンド出力は、 .Xr pkg_add 1 を使うのではなく、 port システムを使って新しいソフトウェアをインストールすると 仮定しています。 diff --git a/ja_JP.eucJP/man/man1/time.1 b/ja_JP.eucJP/man/man1/time.1 index 395d760efe..c76fe8fb67 100644 --- a/ja_JP.eucJP/man/man1/time.1 +++ b/ja_JP.eucJP/man/man1/time.1 @@ -1,114 +1,118 @@ .\" Copyright (c) 1980, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)time.1 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.bin/time/time.1,v 1.13 1999/09/14 11:46:04 sheldonh Exp % +.\" %FreeBSD: src/usr.bin/time/time.1,v 1.13.2.1 2000/10/30 10:02:00 obrien Exp % .\" jpman %Id: time.1,v 1.3 1997/07/27 12:00:02 horikawa Stab % .\" .Dd June 6, 1993 .Dt TIME 1 .Os BSD 4 .Sh 名称 .Nm time .Nd コマンドの実行時間の計測 .Sh 書式 .Nm -.Op Fl alp +.Op Fl al +.Op Fl h | Fl p .Op Fl o Ar file .Ar command .Sh 解説 .Nm は タイマーを初期化して、シェルに .Ar command を実行させ、処理に要した時間を計測します。 .Ar command の実行を終えると、 実行開始から実際に経過した時間、 .Ar command の実行に要した時間、 システムのオーバヘッドに費された時間を、(秒単位で) 標準エラー出力に出力します。 .Pp 使用可能なオプション: .Bl -tag -width Ds .It Fl a .Fl o が使用されている場合、上書きするのではなく、指定されたファイルに追加します。 .Fl o が使用されていない場合には、このオプションは効果ありません。 +.It Fl h +人に優しい書式で時刻を表示します。 +時刻は、分や時間等の適切な書式で表示されます。 .It Fl l デフォルトの出力に加え、 .Em rusage 構造体の内容を表示します。 .It Fl o Ar file 出力を標準エラー出力ではなく .Ar file に対して行います。 .Ar file が存在し、 .Fl a フラグが指定されなかった場合、ファイルは上書きされます。 .It Fl p POSIX.2 に従った出力を、 .Nm にさせます (各時間が各行に表示されます)。 .El .Pp シェルによっては、本ユーティリティと似たまたは同じ、組み込みの .Nm コマンドを提供しているものがあります。 .Xr builtin 1 マニュアルページを参照してください。 .Sh 診断 .Ar command を成功裏に時間計測できた場合、コマンドの終了状態が返されます。 .Ar command が異常終了した場合、警告メッセージが標準エラー出力に出力されます。 .Ar command が見付かったものの実行できなかった場合、終了状態は 126 になります。 .Ar command が見付からなかった場合、終了状態は 127 になります。 .Nm が他のエラーとなった場合、終了状態は 1 以上 125 以下となります。 .Sh 関連項目 .Xr builtin 1 , .Xr csh 1 , .Xr getrusage 2 , .Xr wait 2 .Sh 規格 .Nm ユーティリティは、 ISO/IEC 9945-2:1993 (``POSIX'') に従っていると期待されています。 .Sh 歴史 .Nm は .At v6 から登場しました。 diff --git a/ja_JP.eucJP/man/man1/unifdef.1 b/ja_JP.eucJP/man/man1/unifdef.1 index f1ebde7733..eb2a6d1c3e 100644 --- a/ja_JP.eucJP/man/man1/unifdef.1 +++ b/ja_JP.eucJP/man/man1/unifdef.1 @@ -1,139 +1,139 @@ .\" Copyright (c) 1985, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Dave Yost. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)unifdef.1 8.2 (Berkeley) 4/1/94 -.\" %FreeBSD: src/usr.bin/unifdef/unifdef.1,v 1.4 1999/08/28 01:07:05 peter Exp % +.\" %FreeBSD: src/usr.bin/unifdef/unifdef.1,v 1.4.2.1 2000/10/30 10:30:48 obrien Exp % .\" jpman %Id: unifdef.1,v 1.2 1997/03/29 11:55:37 horikawa Stab % .\" .Dd April 1, 1994 .Dt UNIFDEF 1 .Os BSD 4.3 .Sh 名称 .Nm unifdef .Nd #ifdef 行を取り除く .Sh 書式 .Nm .Op Fl clt .Oo .Fl D Ns Ar sym .Fl U Ns Ar sym .Fl iD Ns Ar sym -.Fl iD Ns Ar sym +.Fl iU Ns Ar sym .Oc .Ar ... .Op Ar file .Sh 解説 .Nm はファイルから #ifdef された行を削除する場合に用いられます。 .Nm は #ifdef, #ifndef, #else, #endif 行を解釈します。 .Nm にはコメント、クォート(シングルクォートとダブルクォート)で 無効になるこれらのプリプロセッサマクロを 判断するために必要な最小限の C 言語の知識しかありません。 クォートの解析は非常に単純です。クォートに遭遇すると .Pq エスケープされたクォートを除いて 対応するクォートが 出現するまでの部分を全て無視します。途中でエスケープされていない 改行が存在しても警告はしません。 .Sh オプション .Bl -tag -width Ds -compact .It Fl D Ns Ar sym .It Fl U Ns Ar sym 指定したシンボルを定義する、または未定義にすることを指定します。 シンボルを定義するように指定した場合 ifdef で囲まれたブロックは 出力され、未定義を指定した場合は削除されます。 指定されたシンボル .Ar sym に対応する ifdef、ifndef、else、endif 行は削除されます。 指定しなかったシンボルに関する ifdef や if 行は、対応 する ifdef、else、endif 行とともに、そのまま出力されます。 ifdef X が別の ifdef X 中に出現した場合、内側の ifdef は指定しなかった シンボルに関する ifdef と同等に扱われます。同じシンボルを複数指定した 場合は最後の指定が有効となります。 .Pp .It Fl c .Nm の効果を逆転します。すなわち、通常削除されるべき行を残し、 残されるべき行を削除します。 .Pp .It Fl l 削除される部分を空行で置き換えます。 .It Fl t C 言語のコメントとクォートの解釈を禁止します。通 常のテキストファイル等に .Nm を適用する場合に有用です。 .Pp .It Fl iD Ns Ar sym .It Fl iU Ns Ar sym 無視すべき ifdef を指定します。C 言語コードで、ifdef を C 言語ではない 部分やコメントや作りかけのコードを区切るために用いている場合は、その内 部のクォートやコメントを無視するように指示する必要があります。無視すべき ifdef は .Fl D Ns Ar sym や .Fl U Ns Ar sym と同様の方法で指定します。 .El .Pp .Nm は標準出力に出力を行い、ファイル名が指定されなかった場合は標準 入力を使用します。 .Pp .Nm は、4.1 BSD の .Xr diff 1 の .Fl D Ns Ar sym オプションとともに使用することができます。 .Sh 関連項目 .Xr diff 1 .Sh 診断 不適切な else または endif を検出します。 .br #ifdef に対応する #endif が現れる前にファイルが終了したとき、 その #ifdef のある行番号を検出します。 .Pp 入力と出力が同一になる場合 0、そうでなければ 1、エラー時には 2 を終了ステータスとして返します。 .Sh バグ unifdef が `#if' を処理できるようにするべきです。 .Pp ヌル文字を含む入力の場合には正しく動作しません。 .Sh 歴史 .Nm は .Bx 4.3 から登場しました。 diff --git a/ja_JP.eucJP/man/man5/named.conf.5 b/ja_JP.eucJP/man/man5/named.conf.5 index 9634ba6ad5..d920a48c36 100644 --- a/ja_JP.eucJP/man/man5/named.conf.5 +++ b/ja_JP.eucJP/man/man5/named.conf.5 @@ -1,2454 +1,2459 @@ .\" Copyright (c) 1999 by Internet Software Consortium .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS .\" ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE .\" CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" jpman %Id: named.conf.5,v 1.3 2000/05/16 01:24:38 horikawa Stab % .\" WORD: inbound zone transfer 内部へのゾーン転送 [named] .\" WORD: statement ステートメント .\" WORD: listener 待機タスク .\" WORD: address match list アドレスマッチリスト [named] .\" WORD: negative answers 否定応答 .\" WORD: positive 許可 .\" WORD: prefix プレフィックス .\" WORD: forwarder フォワードを行うサーバ [named] .\" WORD: octothorpe ナンバ記号 .\" WORD: severity 重大度 .\" WORD: outstanding 未解決の 処理中の .Dd January 7, 1999 .Dt NAMED.CONF 5 .Os BSD 4 .Sh 名称 .Nm named.conf .Xr named 8 .Nd 用の設定ファイル .Sh 概要 BIND 8 は、以前のリリースと比べて遥かに設定可能なものになっています。 完全に新しい設定項目があります。例えばアクセス制御リストやカテゴリ別の ログなどです。以前はゾーンすべてに対して適用されていたオプションの多くが、 選択的に使えるようになっています。 こうした機能に加え、 将来必要とされる設定がどのようなものになるかをよく考えた結果、 新たに設定ファイルのフォーマットを作ることにしました。 .Ss 一般的な文法 BIND 8 の設定には、一般的な特徴が 2 つあります。 それは、ステートメントとコメントです。 ステートメントはすべてセミコロンで終わります。ステートメントの多くは サブステートメントを持っており、サブステートメントもセミコロンで終わります。 .Pp 次のようなステートメントをサポートしています : .Bl -tag -width 1 .It Ic logging サーバが何をログに残すか、そしてどこにログメッセージを送るのかを指定します。 .It Ic options グローバルなサーバ設定オプションを制御し、 その他のステートメントに対するデフォルトを設定します。 .It Ic zone ゾーンを定義します。 .It Ic acl 名前つきの IP アドレスマッチングリストを定義します。これは、アクセス制御や その他の用途に使われます。 .It Ic key 認証と許可に使われる鍵情報を指定します。 .It Ic trusted-keys DNSSEC 鍵を定義します。これは、事前にサーバに設定されており、暗黙のうちに 信頼します。 .It Ic server 個々のリモートサーバ用の設定オプションを設定します。 .It Ic controls .Nm ndc ユーティリティが使用する制御チャネルを宣言します。 .It Ic include 他のファイルをインクルードします。 .El .Ic logging および .Ic options ステートメントは、各設定につき 1 回のみ記述可能です。それに対し、 その他のステートメントは何回でも記述可能です。各ステートメントの 詳細については、次に個々のセクションで述べます。 コメントは、BIND 設定ファイル中でホワイトスペースが現れて良い 所ならどこでも記述可能です。いろいろなプログラマの注意を引くように、 C や C++ 、あるいは シェルや perl の形式のコメントを書くことができます。 C のスタイルのコメントは、次の 2 つの文字から始まります。 .Li /* (スラッシュと星印) そして、 .Li */ (星印とスラッシュ) で終わります。 この形式のコメントは、これらの文字で完全に区切られるものであるので、 行の一部分のみでも複数行にまたがっても使用することができます。 C のスタイルのコメントは入れ子にはできません。例えば、次の例は 不適切なものです。なぜなら、コメント全体が最初の .Li */ で終わってしまうからです。 .Bd -literal -offset indent /* この行はコメントの最初です。 この行もコメントの一部です。 /* この行は、間違えてコメントを入れ子にしようとしています。 */ この行は、もうコメント内部ではありません。 */ .Ed C++ スタイルのコメントは、次の 2 文字から始まります。 .Li // (スラッシュとスラッシュ) そして、その行の終わりまでがコメントとして 続きます。この種類のコメントは、複数行にわたって続きません。意味としては 1 つだが複数行にまたがるようなコメントを書きたい場合は、各行に .Li // を書かなくてはなりません。例えば、次のようにです : .Bd -literal -offset indent // この行は、コメントの始まりです。次の行は、 // 新しいコメントになります。たとえ、意味としては // 前の行のコメントの一部分であってもです。 .Ed シェルスタイル (あるいは、お好みなら perl スタイル) のコメントは、 次の文字で始まります。 .Li # (ハッシュとかポンドとか番号とかナンバ記号とかどう呼んでも良い) そして、 C++ スタイルのコメントと同様に、その行の最後までコメントが続きます。 例えば、次のようにです : .Bd -literal -offset indent # この行は、コメントの始まりです。次の行は、 # 新しいコメントになります。たとえ、意味としては # 前の行のコメントの一部分であってもです。 .Ed .Em 注 : ゾーンファイルで書くように、 .Li ; (セミコロン) をコメントの始まりに使用することはできません。 セミコロンは、設定ステートメントの末尾を表すものですので、 その後ろに続く文字は、何であれ次のステートメントの先頭だと 解釈されてしまいます。 .Ss BIND 4.9.x から変更する .Pp BIND 4.9.x の設定ファイルは、 .Pa src/bin/named/named-bootconf という名前の、BIND 8.2.x のソースキットに同梱されている シェルスクリプトを使用することで新しいフォーマットに変換する ことができます。 .Sh 記述方法の定義 次から述べていることは、BIND 設定ファイルを記述する間使用される要素 についてです。1 つのステートメントとしか結びつかない要素は、その ステートメントについて述べているセクションにだけ記述があります。 .Bl -tag -width 1 .It Va acl_name .Ic acl ステートメントで定義される .Va address_match_list の名称です。 .It Va address_match_list .Va ip_addr , .Va ip_prefix , .Va key_id , .Va acl_name 要素が 1 つまたはそれ以上集まったリストです。これについては、 .Sx アドレスマッチリスト の項で述べます。 .It Va dotted-decimal ドット (``.'') だけで区切られた、 1 つまたはそれ以上の数の 0 から 255 までの整数です。 例えば、 .Li 123 , .Li 45.67 , .Li 89.123.45.67 などです。 .It Va domain_name DNS 名として使用される文字列をクォーテーションで囲んだものです。 例えば、 .Qq Li my.test.domain のようにです。 .It Va path_name パス名として使用される文字列をクォーテーションで囲んだものです。 例えば、 .Qq Li zones/master/my.test.domain のようにです。 .It Va ip_addr .Va dotted-decimal 表記でちょうど 4 つの要素からなる IP アドレスです。 .It Va ip_port IP ポートを表す .Va number です。 .Va number は、 .Li 0 から .Li 65535 までの値に限定されており、そのうち 1024 以下の値は、 典型的には、所有者が root のプロセスのみに制限されています。 場合によっては、適当に大きな番号を選択するように、穴埋めとしてアスタリスク文字 (``*'') を使うことができます。 .It Va ip_prefix .Va dotted-decimal 表記で指定された IP ネットワークです。その後に、``/'' が続き、 そしてネットマスクのビット数が続きます。 例えば、 .Li 127/8 は、 ネットワーク .Li 127.0.0.0 で、ネットマスクは .Li 255.0.0.0 です。 .Li 1.2.3.0/28 はネットワーク .Li 1.2.3.0 で、ネットマスクは .Li 255.255.255.240 です。 .It Va key_name 共有鍵の名前を表した文字列です。 これはトランザクションセキュリティに使用します。 .It Va number C 言語での符号つき整数 (32 ビット整数のマシンでは 2,147,483,647) の範囲全体をとる、非負整数です。 取り得る値の範囲は、 使用されるコンテキストによってさらに制限されるかもしれません。 .It Va size_spec .Va number または単語 .Li unlimited か単語 .Li default です。 .Pp .Va size_spec の最大値は、マシンの符号なし long 型整数の最大値になります。 .Li unlimited は、値を無制限に使用できるよう要求したり、 取り得る最大の値を要求したりするために使用します。 .Li default は、サーバが始動したときに有効だった制限が使われます。 .Pp .Va number には、次のようなスケールファクタを続けることもできます : .Li K または .Li k はキロバイトを、 .Li M または .Li m はメガバイトを、そして .Li G または .Li g はギガバイトを表します。 これらはそれぞれ、 1024, 1024*1024, 1024*1024*1024 倍であることを表します。 .Pp スケールファクタの変換時に、整数値の格納場所でオーバフローが発生しても、 現状では黙って無視します。 その結果、期待した結果よりも小さな値、おそらくは負の値にさえなってしまいます。 本当に大きな値を安全に設定したいなら .Li unlimited を使うのが最良の方法です。 .It Va yes_or_no .Li yes または .Li no です。あるいは .Li true と .Li false という単語でも受け付けます。 .Li 1 と .Li 0 という番号でも同様です。 .El .Sh アドレスマッチリスト .Ss 文法 .Bd -literal \fIaddress_match_list\fR = 1\&*\fIaddress_match_element\fR \fIaddress_match_element\fR = [ \&"!\&" ] ( \fIaddress_match_list\fR / \fIip_address\fR / \fIip_prefix\fR / \fIacl_name\fR / \&"key \&" \fIkey_id\fR ) \&";\&" .Ed .Ss 定義と使用法 アドレスマッチリストは、 主にいくつかのサーバの操作でのアクセス制御を決定するために使われます。 また、アドレスマッチリストは、他のネームサーバに問い合わせる際の優先順位や、 .Nm named が問い合わせを待つアドレスを決定するためにも使われます。 アドレスマッチリストを構成する要素は、次のうちのどれでもありえます : .Bl -bullet .It .Va ip-address ( .Va dotted-decimal 表記 .It .Va ip-prefix ('/' での表記) .It .Ic key ステートメントで定義された .Va key_id .It 先に .Ic acl ステートメントで定義されたアドレスマッチリスト名 .It 別の .Va address_match_list .El .Pp 要素は、エクスクラメーションマーク (``!'') で始めると無効にできます。 また、アドレスマッチリスト名に .Li any , .Li none , .Li localhost , .Li localnets が前もって定義されています。リスト名に関してのさらなる情報は、 .Ic acl ステートメントの説明のところにあります。 .Pp .Ic key 節が追加されたことにより、この文法の構成要素名はある種の誤用 になってしまっています。なぜなら、ホストやネットワークアドレス に関係なく、アクセスの認証には認証鍵を使用することができるからです。 それでもまだ、このドキュメントを通して「アドレスマッチリスト」という 用語が使われています。 .Pp 与えられた IP アドレスまたはプレフィックスがアドレスマッチリストと 比較されるときには、要素が合致するまでリストをスキャンしていきます。 合致したことをどう解釈するかは、アクセス制御、 .Ic listen-on ポート定義、またはトポロジのいずれの用途にリストを使ったか、 またその要素が無効にされていたかで決定します。 .Pp アクセス制御リストとしてアドレスマッチリストが使われる場合、合致した要素が 無効になっていないときはアクセスを許可し、無効になっているときはアクセスを 禁止します。アドレスマッチリスト中に合致するものが 1 つもない場合には、 アクセスは禁止されます。 .Ic allow-query , .Ic allow-transfer , .Ic allow-update , .Ic allow-recursion , .Ic blackhole 節はすべてこのようにアドレスマッチリストを使用します。同様に、 .Ic listen-on オプションを使うと、リストに合致しないマシンのアドレスでの問い合わせは、 いずれもサーバが受け取らないようになります。 .Pp .Ic topology オプションと一緒にアドレスマッチリストが使用される場合、合致した要素が 無効になっていない場合、リスト中で合致した位置に基づいた距離が返されます (合致した箇所がリストの先頭に近ければそれだけ、サーバとの間の距離は 短いことになります)。合致した要素が無効になっている場合、サーバから もっとも遠い距離が割り当てられることになるでしょう。合致するものが なかった場合は、そのアドレスには、無効になっていないリスト要素よりは 遠く、無効になっている要素よりは近い距離が返されるでしょう。 .Pp ファーストマッチアルゴリズムを使用していますので、リスト中で 他の要素のサブセットを定義している要素のほうが、より広い範囲の定義を している要素よりも、先に定義すべきです。これは、どちらか一方の要素が無効 になっていようがいまいが関係ありません。例えば、 .Dl 1.2.3/24; !1.2.3.13 では、1.2.3.13 という要素は無意味です。なぜなら、 このアルゴリズムでは、1.2.3.13 の検索を 1.2.3/24 という要素に合致 してしまうからです。 .Dl !1.2.3.13; 1.2.3/24 を使うと、1.2.3.13 は要素が無効になっていることにより拒否されますが、 その他の 1.2.3.* のホストは素通りになりますので、この問題を回避できます。 .Sh logging ステートメント .Ss 文法 .Bd -literal logging { [ channel \fIchannel_name\fR { ( file \fIpath_name\fR [ versions ( \fInumber\fR | unlimited ) ] [ size \fIsize_spec\fR ] | syslog ( kern | user | mail | daemon | auth | syslog | lpr | news | uucp | cron | authpriv | ftp | local0 | local1 | local2 | local3 | local4 | local5 | local6 | local7 ) | null ); [ severity ( critical | error | warning | notice | info | debug [ \fIlevel\fR ] | dynamic ); ] [ print-category \fIyes_or_no\fR; ] [ print-severity \fIyes_or_no\fR; ] [ print-time \fIyes_or_no\fR; ] }; ] [ category \fIcategory_name\fR { \fIchannel_name\fR; [ \fIchannel_name\fR; ... ] }; ] ... }; .Ed .Ss 定義と使用法 .Ic logging ステートメントは、ネームサーバに対する様々な種類のログ用オプションを 設定します。 その中の .Ic channel フレーズでは、出力方法とフォーマットオプションと重大度を 名前と結びつけます。 この名前は後で .Ic category フレーズで使用し、様々なメッセージクラスをどのようにログに落すかを選択します。 .Pp ただ 1 つの .Ic logging ステートメントを使用して、望むだけ多くのチャネルとカテゴリを 定義できます。設定中に、複数の logging ステートメントがあった場合、 最初以外の logging ステートメントに対しては警告が出されます。 logging ステートメントが 1 個も存在しなかった場合、ログ用の設定は 次のようになるでしょう : .Bd -literal logging { category default { default_syslog; default_debug; }; category panic { default_syslog; default_stderr; }; category packet { default_debug; }; category eventlib { default_debug; }; }; .Ed ログ用の設定は、 .Ic logging ステートメントがパースされたらすぐに確立されます。もし、設定ファイル 全体の処理状況についてのメッセージをリダイレクトしたいのであれば、 .Ic logging ステートメントが最初に出てくるようにしなければなりません。たとえ、 設定ファイルのパース状況を表すメッセージをリダイレクトしたくなくても、 .Ic logging ステートメントはファイルの先頭に置くことを勧めます。そうすることによって、 パーサの出すメッセージを再度設定する必要が生じたときに、意識して このルールを思い出す必要がなくなります。 .Ss チャネルフレーズ ログの出力はすべて、1 つまたはそれ以上の「チャネル」へと渡ります。 チャネルは好きなだけ作ることができます。 .Pp それぞれのチャネルの定義には、そのチャネル用に選択したメッセージが ファイルに落されるのか、特別な syslog ファシリティに渡されるのか、 または、捨てられるのかを指定する節が含まれていなくてはなりません。 チャネルの定義では、チャネルが受け取るメッセージの重大度を制限する こともオプションでできます (デフォルトは .Li info です)。また、 .Nm named が生成するタイムスタンプと、 カテゴリ名と、重大度を含めるかどうかを制限することもできます。 デフォルトでは、この 3 つのいずれも含めないようになっています。 .Pp チャネルに対するログの送り先のオプションに .Li null という単語を使用すると、そのチャネルに送られるメッセージはすべて 捨てられるようになります。チャネルに対するその他のオプションは意味が ありません。 .Pp .Ic file 節を使用すると、ログファイルがどれだけ大きくなっても良いかということと、 ログファイルがオープンされるごとに 何個のバージョンを残すのかということに関する制限を、取り込むことができます。 .Pp ログファイルに対する .Ic size オプションは、単純にログが大きくなるのを制限する固い天井になるものです。 ログファイルが size を超えると、 ログファイルが再度オープンされるまで .Nm named はファイルに何も書き込みません。size を超えていても、自動的にはファイルは オープンされません。デフォルトでは、ログファイルのサイズ制限はありません。 .Pp ログファイルオプションに .Ic version を使用すると、 .Nm named は、ログファイルがオープンされるときにファイルのバックアップバージョンの 名前を変更して、指定した数だけ保持します。例えば、lamers.log というファイルの 古いバージョンを 3 つ保持するように選択した場合、lamer.log がオープンされる 直前に lamers.log.1 というファイルは lamers.log.2 という名前に変更され、 lamers.log.0 というファイルは lamers.log.1 という名前に変更され、そして lamers.log というファイルが lamers.log.0 という名前に変更されます。バージョン名 が巡回するものはデフォルトでは保持されません。 すでに存在しているログファイルは、 ただ単に追加して書かれます。 .Li unlimited キーワードは、現在の BIND のリリースでは .Li 99 と同義です。size および versions オプションの使用例は次の通りです : .Bd -literal channel an_example_level { file "lamers.log" versions 3 size 20m; print-time yes; print-category yes; }; .Ed .Pp .Ic syslog 節の引数は、 .Xr syslog 3 マニュアルページに記述されている syslog ファシリティを表します。 .Nm syslogd がこのファシリティに送られるメッセージをどのように扱うかについては、 .Xr syslog.conf 5 マニュアルページに記述があります。 .Fn openlog() 関数に 2 つの引数しか使用しない、とても古いバージョンの syslog を 使用しているシステムをお使いの場合は、この節は黙って無視されます。 .Pp .Ic severity 節は、syslog の「優先度」のように働きます。ただし、syslog を 使用するかわりにファイルを直接書いても使用できるところが違います。 与えられた重大度よりも低いレベルのメッセージは、 このチャネルに対しては選択されません。与えられた重大度 よりも高いレベルのメッセージが受け取られます。 .Pp syslog を使っている場合、 .Pa syslog.conf での優先度によっても最終的に何が通り抜けるかが決定されます。 例えば、チャネルのファシリティおよび重大度を .Li daemon および .Li debug に定義しているが、 .Pa syslog.conf では .Li daemon.warning しかログに落とさないようにしている場合、 .Li info および .Li notice の重大度を持ったメッセージは捨てられてしまいます。 状況が逆になり、 .Nm named が .Li warning かそれ以上の重大度を持ったメッセージしか書きださないように なっている場合、 .Nm syslogd は、そのチャネルから受け取ったメッセージをすべて書き出すことでしょう。 .Pp デバッグモードになっている場合、サーバはもっと多くのデバッグ情報を 提供できます。サーバのデバッグレベルが 0 より大きくなっていれば、 デバッグモードは有効になっています。全体でのデバッグレベルは、 .Fl d フラグに正の整数値を続けて指定して .Nm named サーバを開始するか、または、動いているサーバに .Dv SIGUSR1 シグナルを送る (例えば、 .Ic ndc trace を使って) ことによって設定します。 全体でのデバッグレベルは 0 にも設定でき、このときは、デバッグモードは 無効になります。この状態には、サーバに .Dv SIGUSR2 シグナルを送る ( .Ic ndc notrace を使って) ことによってもできます。 サーバでのデバッグメッセージにはすべてデバッグレベルがあります。 そして、デバッグレベルが高いほどより詳細な出力になっています。 例えば、特定のデバッグ重大度を次のように指定したチャネル では、サーバがデバッグモードであればいつでも、レベル 3 または それ以下のレベルのデバッグ出力が得られます。 .Bd -literal channel specific_debug_level { file \&"foo\&"; severity debug 3; }; .Ed それは、全体でのデバッグレベルには依りません。 .Li dynamic 重大度を指定したチャネルでは、どのメッセージを出力するかを 決めるためにサーバ全体のデバッグレベルを使用します。 .Pp .Ic print-time がオンになっていれば、日付および時刻がログに落とされます。 .Ic print-time は、syslog チャネルに対しても指定できますが、通常は意味のないことです。 なぜなら、syslog も日付および時刻は出力するからです。 .Ic print-category が要求されている場合、メッセージのカテゴリも同様にログに落とされます。 最後に、 .Ic print-severity がオンになっていれば、メッセージの重大度がログに落とされます。 .Ic print- オプションはどういう組合せでも使うことができ、 常に次のような順番で出力されます : それは time, category, severity の順です。 次に示す例は、3 つすべての .Ic print- オプションをオンにした例です : .Bd -literal 28-Apr-1997 15:05:32.863 default: notice: Ready to answer queries. .Ed .Pp .Nm named でのデフォルトのログ取得用に使用されるチャネルには、次のような、 事前に定義された 4 つがあります。どのようにこのチャネルを使うのかに ついては次節 .Sx category フレーズ に記述があります。 .Bd -literal channel default_syslog { syslog daemon; # syslog の daemon ファシリティに送る severity info; # 優先度が info およびそれ以上のものだけ送る }; channel default_debug { file \&"named.run\&"; # 作業ディレクトリ内の named.run ファイルに # 書き込む # 注 : サーバが -f オプションつきで開始されている # 場合は、\&"named.run\&" の代わりに標準エラー # 出力が使われます。 severity dynamic; # サーバの現在のデバッグレベルをログに落とす }; channel default_stderr { # 標準エラー出力に書き出す file \&"\&"; # ここでは、見えるように書いただけです。現在、 # 内部のファイルディスクリプタを設定ファイルの # 文中に記述する方法はありません。 severity info; # 優先度が info およびそれ以上のものだけ送る }; channel null { null; # このチャネルに送られたメッセージはみなはじく }; .Ed いったんチャネルが定義されると、再設定はできません。そのため、組み込みの チャネルは直接変更できないわけです。しかし、定義したチャネルでのカテゴリを 指し示すことによって、デフォルトのログ用機能を変更することができます。 .Ss category フレーズ カテゴリはたくさんあります。そのため、見たいと思うログをどこへでも送る ことができ、見たくないログは見ないですますことができます。カテゴリに対して チャネルのリストを指定しなかった場合は、代わりに .Li default カテゴリにログが送られます。 default カテゴリを指定しなかった場合、次のような「デフォルトの default カテゴリ」が使われます : .Bd -literal category default { default_syslog; default_debug; }; .Ed 例として、セキュリティのイベントをファイルにログとして落としたいが、 デフォルトのロギングの挙動は維持したいとしましょう。そうすると、次のように 指定することになるでしょう : .Bd -literal channel my_security_channel { file \&"my_security_file\&"; severity info; }; category security { my_security_channel; default_syslog; default_debug; }; .Ed カテゴリ内のすべてのメッセージを捨てるには、 .Li null チャネルを指定してください : .Bd -literal category lame-servers { null; }; category cname { null; }; .Ed 次のようなカテゴリが使用可能です : .Bl -tag -width 1 .It Ic default すべて捕まえます。多くのメッセージがまだカテゴリ分けされておらず、 すべてここで捕まります。さらに、カテゴリに対して何のチャネルも 指定しなかった場合、代わりに default カテゴリが使われます。default カテゴリを指定しなかった場合、次のような定義が使われます : .Dl category default { default_syslog; default_debug; }; .It Ic config ハイレベルの設定ファイル処理です。 .It Ic parser ローレベルの設定ファイル処理です。 .It Ic queries サーバが受け取った問い合わせそれぞれに対して、短いログメッセージを生成します。 .It Ic lame-servers ``Lame server on ...'' というようなメッセージです。 .It Ic statistics 統計です。 .It Ic panic サーバ内部の問題でサーバ自体がシャットダウンしなくてはならなくなると、 問題の起きた元のカテゴリとこのカテゴリの両方に、 問題をログとして書きこみます。 panic カテゴリを定義していない場合には、次のような定義が使われます : .Dl category panic { default_syslog; default_stderr; }; .It Ic update 動的な更新です。 .It Ic ncache ネガティブキャッシングです。 .It Ic xfer-in サーバが受け取っているゾーン転送です。 .It Ic xfer-out サーバが送っているゾーン転送です。 .It Ic db すべてのデータベースの操作です。 .It Ic eventlib イベントシステムからのデバッグ情報です。このカテゴリには、ただ 1 つの チャネルが指定でき、そのチャネルはファイルチャネルでなくてはなりません。 eventlib カテゴリを指定しない場合は、次のような定義が使われます : .Dl category eventlib { default_debug; }; .It Ic packet 受け取ったパケットおよび送ったパケットのダンプです。このカテゴリには、 ただ 1 つのチャネルが指定でき、そのチャネルはファイルチャネルでなくては なりません。packet カテゴリを指定しない場合は、次のような定義が使われます : .Dl category packet { default_debug; }; .It Ic notify NOTIFY プロトコルです。 .It Ic cname ``... points to a CNAME'' のようなメッセージです。 .It Ic security 許可された / 許可されなかったリクエストです。 .It Ic os オペレーティングシステムの問題です。 .It Ic insist 内部の整合性チェックの失敗です。 .It Ic maintenance 定期的に行われるメンテナンスのイベントです。 .It Ic load ゾーンへのロードメッセージです。 .It Ic response-checks 応答のチェックから発生するメッセージです。例えば、 ``Malformed response ...'', ``wrong ans. name ...'', ``unrelated additional info ...'', ``invalid RR type ...'', ``bad referral ...'' といったものです。 .El .Sh options ステートメント .Ss 文法 .Bd -literal options { [ version \fIversion_string\fR; ] [ directory \fIpath_name\fR; ] [ named-xfer \fIpath_name\fR; ] [ dump-file \fIpath_name\fR; ] [ memstatistics-file \fIpath_name\fR; ] [ pid-file \fIpath_name\fR; ] [ statistics-file \fIpath_name\fR; ] [ auth-nxdomain \fIyes_or_no\fR; ] [ deallocate-on-exit \fIyes_or_no\fR; ] [ dialup \fIyes_or_no\fR; ] [ fake-iquery \fIyes_or_no\fR; ] [ fetch-glue \fIyes_or_no\fR; ] [ has-old-clients \fIyes_or_no\fR; ] [ host-statistics \fIyes_or_no\fR; ] [ multiple-cnames \fIyes_or_no\fR; ] [ notify \fIyes_or_no\fR; ] [ recursion \fIyes_or_no\fR; ] [ rfc2308-type1 \fIyes_or_no\fR; ] [ use-id-pool \fIyes_or_no\fR; ] [ treat-cr-as-space \fIyes_or_no\fR; ] [ also-notify \fIyes_or_no\fR; ] [ forward ( only | first ); ] [ forwarders { [ \fIin_addr\fR ; [ \fIin_addr\fR ; ... ] ] }; ] [ check-names ( master | slave | response ) ( warn | fail | ignore); ] [ allow-query { \fIaddress_match_list\fR }; ] [ allow-recursion { \fIaddress_match_list\fR }; ] [ allow-transfer { \fIaddress_match_list\fR }; ] [ blackhole { \fIaddress_match_list\fR }; ] [ listen-on [ port \fIip_port\fR ] { \fIaddress_match_list\fR }; ] [ query-source [ address ( \fIip_addr\fR | * ) ] [ port ( \fIip_port\fR | * ) ] ; ] [ lame-ttl \fInumber\fR; ] [ max-transfer-time-in \fInumber\fR; ] [ max-ncache-ttl \fInumber\fR; ] [ min-roots \fInumber\fR; ] [ serial-queries \fInumber\fR; ] [ transfer-format ( one-answer | many-answers ); ] [ transfers-in \fInumber\fR; ] [ transfers-out \fInumber\fR; ] [ transfers-per-ns \fInumber\fR; ] [ transfer-source \fIip_addr\fR; ] [ maintain-ixfr-base \fIyes_or_no\fR; ] [ max-ixfr-log-size \fInumber\fR; ] [ coresize \fIsize_spec\fR ; ] [ datasize \fIsize_spec\fR ; ] [ files \fIsize_spec\fR ; ] [ stacksize \fIsize_spec\fR ; ] [ cleaning-interval \fInumber\fR; ] [ heartbeat-interval \fInumber\fR; ] [ interface-interval \fInumber\fR; ] [ statistics-interval \fInumber\fR; ] [ topology { \fIaddress_match_list\fR }; ] [ sortlist { \fIaddress_match_list|fR }; ] [ rrset-order { \fIorder_spec\fR ; [ \fIorder_spec\fR ; ... [ [ }; }; .Ed .Ss 定義および使用法 options ステートメントは BIND で使われるグローバルオプションを 設定します。このステートメントは、設定ファイル中で 1 度だけ出現できます。 もし複数のステートメントが出現した場合は、最初に出現したステートメントが 実際に使用されるオプションを決定し、警告が行われます。options ステートメントが 存在しない場合は、各オプションがデフォルトに設定された options ブロックが 使われます。 .Ss パス名 .Bl -tag -width 1 .It Ic version ndc コマンドの問い合わせや chaos クラスの .Pa version.bind 名の問い合わせを通してサーバがレポートするべきバージョンです。 デフォルトではサーバの本当のバージョン番号になっていますが、 サーバのオペレータの中にはこの文字列の方が好みという人もいます ( .Ic もちろん冗談に決まっていますが )。 .It Ic directory サーバの作業ディレクトリです。設定ファイル中の絶対パスでない パス名は、どんなものでもこのディレクトリからの相対パスと受け取られます。 大部分のサーバの出力ファイル (例えば、 .Pa named.run) のデフォルトの置き場所は、このディレクトリです。もし、ディレクトリの指定が なければ、作業ディレクトリはデフォルトで .Pa . になります。このディレクトリは、サーバが起動したディレクトリです。 指定されたディレクトリは絶対パスでなくてはいけません。 .It Ic named-xfer 内部へのゾーン転送用にサーバが使用する named-xfer プログラムへのパス名です。 指定されていない場合のデフォルトは、システム依存です (例えば、 .Pa /usr/sbin/named-xfer です)。 .It Ic dump-file .Dv SIGINT シグナルをサーバが受け取ったとき ( .Ic ndc dumpdb が送った場合のように) に、 データベースのダンプを落とすファイルへのパス名です。 指定されていない場合のデフォルトは、 .Pa named_dump.db です。 .It Ic memstatistics-file .Ic deallocate-on-exit が .Li yes になっている場合に、 サーバが終了時にメモリ使用統計を書き出すファイルへのパス名です。 指定されていない場合のデフォルトは、 .Pa named.memstats です。 .It Ic pid-file サーバが自分のプロセス ID を書き出すファイルへのパス名です。 指定されていない場合のデフォルトは、オペレーティングシステムに 依存しますが、通常は、 .Pa /var/run/named.pid あるいは .Pa /etc/named.pid です。 pid-file は、 .Nm ndc のような、動作しているネームサーバにシグナルを送りたい プログラムが使用します。 .It Ic statistics-file サーバが .Dv SIGILL シグナルを ( .Ic ndc stats から) 受け取った場合に、統計を追加書き込みするファイルへのパス名です。 指定されていない場合のデフォルトは、 .Pa named.stats です。 .El .Ss ブール値のオプション .Bl -tag -width 1 .It Ic auth-nxdomain これが .Li yes の場合、 .Li AA ビットは、常に .Dv NXDOMAIN の応答にセットされます。たとえサーバが実際には信頼できるものでは なくてもです。 デフォルトでは、 .Li yes になっています。 古くからあるソフトウェアが嫌うので、 自分のしていることに確信が持てないでいるのであれば、 .Ic auth-nxdomain をオフにしてはいけません。 .It Ic deallocate-on-exit これが .Li yes の場合には、サーバは、終了時に自分が確保したオブジェクトを 徹底して開放して、 .Ic memstatistics-file にメモリ使用レポートを書き出します。 デフォルトでは、 .Li no になっています。なぜなら、オペレーティングシステムにクリーンアップを やらせたほうが高速だからです。 .Ic deallocate-on-exit は、メモリリークを検出するために便利です。 .It Ic dialup これが .Li yes の場合には、サーバは、すべてのゾーンを、 要求時ダイヤルによるダイヤルアップリンクを通して ゾーン転送を行っているかのように扱います。 このダイヤルアップリンクは、このサーバから通信が始まった場合に 立ち上げられるものです。 これは、ゾーンの種類によって異なる効果をもたらし、ゾーンの保守に 専念できるようになります。これによって、 .Ic heartbeat-interval ごとに 1 度、願わくは、1 回の呼び出しの間という短い間隔で ゾーンの保守を行えるようになります。 このオプションはまた、通常のゾーン保守にかかるトラフィックを いくらか抑えることもできます。 デフォルトは、 .Li no です。 .Ic dialup オプションは、 .Ic zone ステートメント中でも指定することができます。この場合は、 .Ic options dialup ステートメントは上書きされます。 .Pp ゾーンが .Ic master である場合、 サーバは、すべてのスレーブに対して .Dv NOTIFY リクエストを送信するようになります。 これによって、スレーブをチェックし、呼び出しが生きている間に スレーブがゾーンを検証できるようにすることで、 ゾーンを最新のものにする契機ができます (サーバが .Dv NOTIFY をサポートする場合です)。 .Pp ゾーンが .Ic slave もしくは .Ic stub である場合、 サーバは、通常のゾーンのアップデート問い合わせを抑制し、 .Ic heartbeat-interval が時間切れになったときだけ問い合わせるようにします。 .It Ic fake-iquery これが .Li yes の場合、 サーバは、 .Dv IQUERY という、もう古くなって使われていない DNS 問い合わせをシミュレーション します。 デフォルトは .Li no です。 .It Ic fetch-glue これが .Li yes の場合 (デフォルトではそうです)、サーバは、追加の応答用データセクションを 作る際には持っていない「糊」となるリソースレコードを取得します。 サーバのキャッシュが大きくなったり、破壊されたりしないようにするため (こうなると、クライアントからもっと多くの仕事を要求されるという 代償を払うことになります)、 .Ic fetch-glue no は、 .Ic recursion no と一緒に使用できます。 .It Ic has-old-clients このオプションを .Li yes に設定することと、次の 3 つのオプションを設定することとは等価です : .Ic auth-nxdomain yes ;, .Ic maintain-ixfr-base yes ;, .Ic rfc2308-type1 no ; .Ic has-old-clients を .Ic auth-nxdomain , .Ic maintain-ixfr-base , .Ic rfc2308-type1 と一緒に使用することで起こることは、指定の順番によります。 .It Ic host-statistics これが .Li yes である場合、 ネームサーバと相互に作用する各ホストに対して統計が保持されます。 デフォルトでは .Li no です。 .Em 注 : .Ic host-statistics をオンにすると、膨大な量のメモリを消費する可能性があります。 .It Ic maintain-ixfr-base これが .Li yes の場合、 ネームサーバと相互に作用する各ホストに対して統計が保持されます。 デフォルトは .Li no です。 .Em 注 : .Li host-statistics をオンにすると、膨大な量のメモリを消費する可能性があります。 .It Ic multiple-cnames これが .Li yes である場合、 1 つのドメイン名について複数の CNAME リソースレコードか許可されます。 デフォルトは .Li no です。複数の CNAME レコードを許可するということは、標準からは 外れており、推奨されることではありません。 以前のバージョンの BIND が複数の CNAME レコードを持つことを許しており、 このレコードがいくつかのサイトでは負荷のバランスを取るために 使用されていたことから、複数の CNAME のサポートを利用できるということです。 .It Ic notify これが .Li yes である場合 (それがデフォルトです)、 変更を行うためにゾーンサーバが信頼できる場合に DNS NOTIFY メッセージを 送るようになります。 NOTIFY を使用すると、マスタサーバとそのスレーブとの間の収束が 早まります。NOTIFY メッセージを受け取り、理解するスレーブサーバは そのゾーン用にマスタサーバに接続し、ゾーン転送を行う必要があるかを 点検します。そして、必要がある場合は直ちにゾーン転送を開始します。 .Ic notify オプションは .Ic zone ステートメント内でも指定できます。この場合は、 .Ic options notify ステートメントは上書きされます。 .It Ic recursion これが .Li yes であり、 DNS の問い合わせが再帰処理を要求している場合、 サーバはその問い合わせに答えるために必要な仕事をすべて行おうとします。 recursion がオンになっていない場合、サーバが答えを 知らない場合は、サーバはクライアントに照会を返します。デフォルトでは、 .Li yes です。前述の .Ic fetch-glue も参照してください。 .It Ic rfc2308-type1 これが .Li yes であれば、サーバは、否定応答用に SOA レコードと一緒に NS レコードを 送ります。もし、古い BIND サーバを持っていて、 SOA と NS の両方を含んだ否定応答を理解しないフォワード用サーバとして使用して いる場合や、古いバージョンの sendmail を持っている場合は、この オプションを no に設定する必要があります。正しい解決策は、 そういう壊れたサーバや sendmail を使用しないことです。デフォルトでは、 このオプションは .Li no です。 .It Ic use-id-pool これが .Li yes であれば、サーバは自分自身の未解決の問い合わせ ID を追跡して、 重複を避け、ランダム性を高めるようにします。これによって、 サーバが 128 KB も多くメモリを消費するようになります。 デフォルトは .Li no です。 .It Ic treat-cr-as-space これが .Li yes の場合、 サーバは、スペースやタブを扱うのと同じ方法で CR 文字を扱うように なります。NT あるいは DOS マシンで生成したゾーンファイルを UNIX システム上にロードするときに、このオプションは必要でしょう。 デフォルトでは、このオプションは .Li no です。 .El .Ss Also-Notify .Ic also-notify ゾーンの新しいコピーがロードされるときはいつでも送信された NOTIFY メッセージも受け取る IP アドレスのグローバルリストを定義します。 このオプションは、ゾーンのコピーが素早く「内密の」サーバ上で確実に収束 する助けになります。 .Ic also-notify リストが .Ic zone ステートメントで与えられた場合、 .Ic options also-notify ステートメントは上書きされます。 .Ic zone notify ステートメントが .Ic no に設定されている場合、 グローバルの .Ic also-notify リストの IP アドレスは、このゾーンに対する NOTIFY メッセージを 送信されません。デフォルトでは、このリストは空です (グローバルな notification リストはないということです)。 .Ss フォワード .Pp フォワード機能は、少数のサーバ上で大きなサイト単位のキャッシュを作成する ために使用することができます。これによって、外部のネームサーバへの リンクを越えたトラフィックを軽減できます。フォワード機能は、直接 インターネットに接続できないが、ともかく外部のホスト名を見つけ出したい というサーバの問い合わせを許可するためにも使用できます。 フォワードが発生するのは、そうした問い合わせに対してサーバが 権限を持たず、キャッシュにその応答が入っていない場合だけです。 .Bl -tag -width 1 .It Ic forward このオプションは、 .Ic forwarders リストが空でない場合にだけ意味があります。 .Li first という値がデフォルトですが、このときサーバは、まずフォワードを行うサーバに 問い合わせを行い、フォワードを行うサーバが要求に対して応答しない場合、 自分で応答を探します。 .Li only が指定された場合、サーバは、ただフォワードを行うサーバに問い合わせを 行うだけです。 .It Ic forwarders フォワードを行うために使用される IP アドレスを指定します。デフォルトでは、 これは空のリストです (フォワードを行いません)。 .El .Pp フォワード機能は、ゾーン単位をもとにして設定することもできます。 このときは、グローバルのフォワード用オプションが、さまざまな方法で 上書きできるようになります。 特定のゾーンに対し、 別のフォワード用サーバを使用したり、別の .Ic forward only/first の振るまいをもたせたり、あるいはまったくフォワードしなかったり できます。 さらなる情報については、 .Sx ゾーンステートメント のセクションを参照してください。 .Pp BIND 8 の将来のバージョンでは、もっと強力なフォワード用システムを 提供する予定です。先に述べた文法は引き続きサポートされる予定です。 .Ss ネームチェック サーバは、期待するクライアントの関係に基づいてドメイン名をチェックできます。 例えば、ホスト名として使用されるドメイン名は、正当なホスト名を 定義している RFC に準拠するかという点でチェックされます。 .Pp チェック方法には 3 通りのやり方が利用可能です : .Bl -tag -width 1 .It Ic ignore 何のチェックも行われません。 .It Ic warn 期待するクライアントの関係から名前をチェックします。不正な名前は ログに書かれますが、処理は普通に継続します。 .It Ic fail 期待するクライアントの関係から名前をチェックします。不正な名前は ログに書かれ、ルールに合わないデータは拒否されます。 .El .Pp サーバは、名前を 3 つのエリアでチェックできます : マスタゾーンファイル、 スレーブゾーンファイル、そして、サーバが発行した問い合わせへの応答 です。 .Ic check-names response fail が指定されており、クライアントの問い合わせに対する応答が クライアントに不正な名前を送る必要のあるものであった場合、 サーバは、 .Dv REFUSED 応答コードをクライアントに送ります。 .Pp デフォルトは、次の通りです : .Bd -literal check-names master fail; check-names slave warn; check-names response ignore; .Ed .Pp .Ic check-names は、 .Ic zone ステートメントでも指定できます。この場合、 .Ic options check-names は上書きされます。 .Ic zone ステートメントで使用した場合、 エリアは指定されません (なぜなら、ゾーンの種類からエリアは推測できる からです)。 .Ss アクセス制御 .Pp サーバへのアクセスは、アクセスを要求したシステムの IP アドレス または共有秘密鍵に基づいて制限することができます。 アクセス基準をどのように指定するかについての詳細は、 .Sx アドレスマッチリスト を参照してください。 .Bl -tag -width 1 .It Ic allow-query -どのホストがもとの問いかけをすることができるかを指定します。 +どのホストが通常の問い合せをすることができるかを指定します。 .Ic allow-query は、 .Ic zone ステートメントでも指定できます。この場合、 .Ic options allow-query ステートメントを上書きします。もし、allow-query オプションが 指定されていない場合は、デフォルトは、 -.\" 何なのですか? (原文がここから先切れていてない) +すべてのホストからの問い合わせを許可します。 .Bl -tag -width 1 .It Ic allow-recursion -再帰的な問いかけをすることができるかを指定します。 +再帰的な問い合わせをすることができるかを指定します。 .Ic allow-recursion は、 .Ic zone ステートメントでも指定できます。この場合、 .Ic options allow-recursion ステートメントを上書きします。もし、allow-recursion オプションが 指定されていない場合は、 デフォルトでは全てのホストから再帰的な問い合わせができます。 .It Ic allow-transfer どのホストがゾーン転送をサーバから受け取ることを許可されるかを 指定します。 .Ic allow-transfer は、 .Ic zone ステートメントでも指定できます。その場合、 .Ic options allow-transfer ステートメントは上書きされます。もし、allow-transfer オプションが 指定されていない場合は、デフォルトでは、 すべてのホストからの転送を許可します。 .It Ic blackhole サーバが問い合わせを受け取らないようになったり、問い合わせを解決するために 使用しないようになるアドレスのリストを指定します。これらのアドレスからの 問い合わせは、応答されることはありません。 .El +.El .Ss インタフェース .Pp サーバが問い合わせに答えるインタフェースならびにポートは、 .Ic listen-on オプションを使って指定することができます。 .Ic listen-on は、オプションのポートおよびアドレスマッチリストを取ります。 サーバは、アドレスマッチリストで許可されたインタフェース全てで待機します。 ポートを指定しない場合は、53 番ポートが使われます。 .Pp .Ic listen-on ステートメントが複数あっても良いです。例えば、 .Bd -literal listen-on { 5.6.7.8; }; listen-on port 1234 { !1.2.3.4; 1.2/16; }; .Ed では、IP アドレスが 5.6.7.8 のマシン用にネームサーバに 53 番ポートの使用を 許可し、1234 番ポートを 1.2 のネットワークにいて、IPアドレスが 1.2.3.4 ではない マシンに使用を許可します。 .Pp .Ic listen-on が指定されていない場合は、サーバは、すべてのインタフェース上で 53 番ポートでの 待機をします。 .Ss 問い合わせアドレス .Pp サーバが問い合わせに対する答を知らない場合、そのサーバは、他の ネームサーバに問い合わせを行います。 .Ic query-source は、こうした問い合わせに使用されるアドレスおよびポートを指定します。 .Ic address が .Li * だったり、省略されている場合、ワイルドカード IP アドレス ( .Dv INADDR_ANY ) が使用されます。 .Va port が .Li * だったり、省略されている場合、特権のいらないポートがランダムに 使用されます。デフォルトでは .Dl query-source address * port *; です。 .Pp 注 : .Ic query-source は、現在 UDP 問い合わせのみ適用されます。 TCP 問い合わせには、常にワイルドカード IP アドレスとランダムに選ばれた 特権のいらないポートが使用されます。 .Ss ゾーン転送 .Bl -tag -width 1 .It Ic max-transfer-time-in ここで指定された時間より長く動作している内部へのゾーン転送 ( .Nm named-xfer プロセス) を終了します。 デフォルトでは、120 分 (2 時間) です。 .It Ic transfer-format サーバは 2 種類のゾーン転送方法をサポートしています。 .Li one-answer 転送されるリソースレコードそれぞれについて 1 つの DNS メッセージを使用します。 .Li many-answers できるだけ多くのリソースレコードを 1 つのメッセージに押し込みます。 .Li many-answers の方が効率的ではありますが、BIND 8.1 および、パッチの当たった BIND 4.9.5 でのみ 理解されるものです。デフォルトでは、 .Li one-answer になります。 .Ic transfer-format は、 .Ic server ステートメントを使用してサーバ単位で上書きすることができます。 .It Ic transfers-in 同時に動作させることのできる内部へのゾーン転送の最大値です。 デフォルトは 10 です。 .Ic transfers-in の数を増やすと、スレーブのゾーンの収束が早まりますが、ローカルシステムの負荷も 上がってしまう恐れがあります。 .It Ic transfers-out このオプションは、将来、 同時に動作する外部へのゾーン転送数を制限するために使用する 予定です。現在、文法はチェックしていますが、それ以上のことは無視しています。 .It Ic transfers-per-ns あるリモートのネームサーバから同時に実行できる内部へのゾーン転送 ( .Nm named-xfer プロセス) の最大値です。デフォルトは 2 です。 .Ic transfers-per-ns の数を増やすと、スレーブゾーンの収束は早まりますが、リモートのネームサーバの 負荷が上がってしまう恐れがあります。 .Ic transfers-per-ns は、 .Ic server ステートメントの .Ic transfers フレーズを使用してサーバ単位で上書きすることができます。 .It Ic transfer-source .Nm transfer-source は、サーバが内部に転送するゾーンをすべて取得するために使用される TCP コネクションと どのローカルアドレスとが結びつけられるかを決定します。 これが設定されていない場合、 システムが制御しているデフォルト値に設定されます。 この値は、通常、 リモート側の終端に「最も近い」インタフェースのアドレスになります。 このアドレスは、もし指定されているのなら、リモート側の終端の転送ゾーン用の .Nm allow-transfer オプションで登場していなくてはなりません。 このステートメントは、すべてのゾーンの .Nm transfer-source を設定しますが、設定ファイル中のゾーンブロック内に .Nm transfer-source ステートメントを含めることでゾーン単位で上書きすることができます。 .El .Ss リソースの制限 .Pp 多種のシステムリソースをサーバがどこまで使用してよいか制限可能です。 オペレーティングシステムによっては、 この制限をいくつかサポートしていないものもあります。 そうしたシステムでは、サポートされていない制限を使用すると警告が発生します。 また、オペレーティングシステムによっては、 リソース制限自体をサポートしていないものも あります。そうしたシステムでは、 .D1 cannot set resource limits on this system というメッセージがログに記録されます。 .Pp リソース制限を指定する際には、スケールを変えた値を使用することができます。 例えば、1 ギガバイトの制限を指定したい場合に、 .Li 1G を .Li 1073741824 の代わりに使用することができます。 .Li unlimited は、無制限にリソースを使用する、 つまり、利用可能な最大の量のリソースを要求します。 .Li default は、サーバが開始したときに有効だった制限値を使用します。 詳細については、 .Sx 記述方法の定義 のセクションの .Va size_spec の項を参照してください。 .Bl -tag -width 1 .It Ic coresize コアダンプの最大サイズです。デフォルト値は .Li default です。 .It Ic datasize サーバが使用できるデータメモリの最大領域です。デフォルト値は .Li default です。 .It Ic files サーバが同時にオープンできるファイルの最大数です。デフォルト値は .Li unlimited です。オペレーティングシステムによっては、unlimited という値を設定できず、 カーネルがサポートできるオープンするファイルの最大値を 決定できないものがあることに 注意してください。こうしたシステムでは、 .Li unlimited を選択すると、サーバが .Fn getrlimit RLIMIT_NOFILE から得られる .Va rlim_max の値よりも大きなファイル数を扱ってしまい、 .Fn sysconf _SC_OPEN_MAX を返してしまうことになります。 実際のカーネルの制限値がこの値よりも大きい場合は、 .Ic limit files を使用して、明示的に制限値を指定してください。 .It Ic max-ixfr-log-size .Li max-ixfr-log-size は、将来のサーバのリリースでは、インクリメンタルゾーン転送用に保持しておく トランザクションログの大きさに制限を設けるために使用する予定です。 .It Ic stacksize サーバが使用できるスタックメモリの最大量です。デフォルト値は .Li default です。 .El .Ss 定期的なタスクの間隔 .Bl -tag -width 1 .It Ic cleaning-interval サーバは、 .Ic cleaning-interval 分ごとに期限の切れたリソースレコードをキャッシュから削除します。 デフォルトは 60 分です。これが 0 に設定されているときは、 定期的にキャッシュがクリーニングされることはありません。 .It Ic heartbeat-interval サーバは、この間隔が過ぎればいつでも .Ic dialup yes の印のついたゾーンすべてに対してゾーン管理タスクを実行します。 デフォルトでは 60 分です。適切な値は 1 日 (1440 分) までです。 この値が 0 に設定されている場合、 これらのゾーンに対するゾーン管理は実行されません。 .It Ic interface-interval サーバは、 .Ic interface-interval 分ごとにネットワークインタフェースリストをスキャンします。 デフォルトでは 60 分です。 この値が 0 に設定されている場合、 インタフェースのスキャンを行うのは、設定ファイルが ロードされたときだけです。スキャンした後、待機タスク (listener) は、どの 新しいインタフェース上でも始動します (そのタスクが .Ic listen-on の設定がされていて許可されている場合です)。 取り除かれたインタフェース上で動作している待機タスクは、消去されます。 .It Ic statistics-interval ネームサーバの統計が .Ic statistics-interval 分ごとにログに記録されます。デフォルトは 60 です。 この値が 0 に設定されている場合、 何の統計も記録されません。 .El .Ss トポロジ .Pp ネームサーバのリストから問い合わせ先のネームサーバをサーバが 1 つ選ぶとき、 他の点ではすべて対等である場合、このサーバは、 自分自身からトポロジ的に最も近いものを選びます。 .Ic topology ステートメントは、アドレスマッチリストをとり、 特別な方法でそのリストを解釈します。 それぞれの一番上のリスト要素は距離が割り当てられています。 無効にされていない要素は、リスト中の位置に基づいて距離を取得します。ここで、 リストの先頭にマッチした地点が近ければ近いほど、サーバと要素との距離が 近いことになります。 無効にされているマッチには、サーバからの距離の最大が割り当てられます。 マッチするものがない場合は、そのアドレスは、無効にされていないリストの要素の どれよりも遠い距離を取得します。例えば、 .Bd -literal topology { 10/8; !1.2.3/24; { 1.2/16; 3/8; }; }; .Ed の場合では、ネットワーク 10 上のサーバが最も好ましいものになります。 次が、ネットワーク 1.2.0.0 (ネットマスクが 255.255.255.0) 上のホスト およびネットワーク 3 上のホストですが、 ネットワーク 1.2.3 (ネットマスクが 255.255.255.0) 上のホストは除外されます。 このネットワーク上のものは、どれよりも選ばれにくいものです。 .Pp デフォルトのトポロジは .Dl topology { localhost; localnets; }; です。 .Ss リソースレコードのソート .Pp 複数の RR (訳注: リソースレコード) が返ってくると、通常ネームサーバは、 .Ic ラウンドロビン でそれらを返します。 すなわち、各要求の後に、最初の RR がリストの最後に置かれます。 RR の順番が決まっていないので、これで問題ありません。 クライアントのリゾルバのコードが、これらの RR を適切に 構成しなおさなくてはなりません。すなわち、他のアドレスよりも、 ローカルネット上の任意のアドレスを優先して使用するということです。 しかしながら、すべてのリゾルバがこうすることができたり、 適切に設定されているわけではありません。 クライアントがローカルサーバを使用しているとき、サーバ内で、クライアントの アドレスに基づいたソートが実行できます。このソートのためには、 ただネームサーバを設定するだけでよく、すべてのクライアントを設定する 必要はありません。 .Ic sortlist ステートメントは、アドレスマッチリストをとり、 .Ic topology ステートメントより更に増した特別な方法でリストを解釈します。 ソートリスト中の各先頭のステートメントは、 それ自身、1 つまたは 2 つの要素を持った 明示的なアドレスマッチリストでなくてはなりません。各先頭のリストの最初の要素 (IP アドレス、IP のプレフィックス、ACL 名、 あるいはネストされたアドレスマッチリスト) に対し、マッチが見つかるまで、問い合わせ元のアドレスをチェックします。 ひとたび問い合わせ元のアドレスがマッチしたなら、 先頭のステートメントがただ 1 つの要素のみの場合、 問い合わせ元のアドレスとマッチした要素そのものが 応答のアドレスを選択するために使用され、それが応答の先頭に移動します。 ステートメントが 2 つの要素を持ったリストであった場合、2 番目の要素は、 topology ステートメントのアドレスマッチリストのように扱われます。 各先頭要素には、 距離が割り当てられており、最も短い距離を持った応答中のアドレスが、 その応答の先頭に移動されます。 次の例では、ホストそれ自身のアドレスから受け取った問い合わせは、 ローカルに接続された ネットワーク上のアドレスを優先するような応答を受け取ります。 次に優先されるのが、 192.168.1/24 ネットワーク上のアドレスで、その後に、192.168.2/24 あるいは 192.168.3/24 ネットワークがきます。 最後の 2 つのネットワーク間にはどちらが優先かは示されていません。 192.168.1/24 ネットワーク上のホストから受け取った問い合わせは、 そのネットワーク上の他のアドレスを 192.168.2/24 および 192.168.3/24 ネットワークよりも優先します。 192.168.4/24 あるいは 192.168.5/24 ネットワーク上の ホストから受け取った問い合わせは、 直接接続されたネットワーク上のアドレスを優先する だけです。 .Bd -literal sortlist { { localhost; // もし ローカルホストなら { localnets; // 次のネット上で 192.168.1/24; // 最初にフィットしたものにする { 192,168.2/24; 192.168.3/24; }; }; }; { 192.168.1/24; // もし クラス C 192.168.1 上なら { 192.168.1/24; // .1 あるいは、.2 か .3 を使用する { 192.168.2/24; 192.168.3/24; }; }; }; { 192.168.2/24; // もし クラス C 192.168.2 上なら { 192.168.2/24; // .2 あるいは、.1 か .3 を使用する { 192.168.1/24; 192.168.3/24; }; }; }; { 192.168.3/24; // もし クラス C 192.168.3 上なら { 192.168.3/24; // .3 あるいは、.1 か .2 を使用する { 192.168.1/24; 192.168.2/24; }; }; }; { { 192.168.4/24; 192.168.5/24; }; // .4 か .5 なら }; // そのネットを優先する }; .Ed 次の例は、ローカルホストおよび直接接続されたネットワーク上のホストに対する、 理にかなった振るまいを提供するものです。 これは、BIND 4.9.x でのアドレスのソートの振るまいと 似ています。ローカルホストからの問い合わせに対して送られた応答は、 直接接続された ネットワーク上のホストを優先します。 他の直接接続されたネットワーク上のホストからの 問い合わせに対して送られた応答は、 同じネットワーク上のアドレスを優先するでしょう。 その他の問い合わせに対する応答についてはソートされません。 .Bd -literal sortlist { { localhost; localnets; }; { localnets; }; }; .Ed .Ss RRset の順番付け .Pp 応答中に複数のレコードが返されている場合、 その応答中にレコードがどの順番で置かれるかを 設定するのが有益なことがあります。 例えば、あるゾーンに対するレコードは、ゾーンファイルで 定義された順番で常に返されるように設定されるかもしれません。 あるいは、 レコードが返されるときにランダムにシャッフルされるようにしたいということも あるでしょう。 rrset-order ステートメントを使用すると、 複数レコードが含まれる応答中のレコードの順番を 設定することができます。順番が定義されていない場合、デフォルトでは、巡回順 (ラウンドロビン) になります .Ic order_spec は次のように定義されています : .Bd -literal [ \fIclass class_name\fR ][ \fItype type_name\fR ][ \fIname\fR "FQDN" ] \fIorder\fR ordering .Ed クラスが指定されていない場合、デフォルトは .Ic ANY です。 .Li Ictype が指定されていない場合、デフォルトは .Ic ANY です。 名前が指定されていない場合、デフォルトは "*" です。 .Ic ordering の正当な値には、次のようなものがあります : .Bd -literal .Ic fixed レコードは、ゾーンファイルで定義された順番で返されます。 .Ic random レコードは、ある種のランダムな順番で返されます。 .Ic cyclic レコードは、ラウンドロビンに返されます。 例えば、 rrset-order { class IN type A name "rc.vix.com" order random; order cyclic; }; .Ed では、サフィックスに "rc.vix.com" を持ち、 クラス IN でタイプ A のレコードに対する 応答は、常にランダムな順番で返されます。 その他のレコードはすべて巡回順に返されます。 .Ic rrset-order ステートメントが複数現れた場合、ステートメントは連結されません。 最後のものが適用されます。 .Ic rrset-order ステートメントが指定されていない場合、デフォルトは .Bd -literal rrset-order { class ANY type ANY name "*" order cyclic ; }; .Ed が使われます。 .Ss チューニング .Bl -tag -width 1 .It Ic lame-ttl 不完全なサーバの指示をキャッシュしておく秒数を設定します。 0 の場合、キャッシュしません。 デフォルトは 600 (10 分) です。最大値は 1800 (30 分) です。 .It Ic max-ncache-ttl ネットワークの負荷を軽減しパフォーマンスを上げるために、 サーバが否定応答を蓄えます。 .Ic max-ncache-ttl は、サーバで、このような応答の最大保存時間を設定するために使います。 秒単位です。 \." for these answers in the server is seconds. のところが文になっていない。 デフォルトの .Ic max-ncache-ttl は 10800 秒 (3 時間) です。 .Ic max-ncache-ttl 通常の (肯定) 応答に対しては、最大保存時間を超えてはいけません (7 日)。 もし、この値が 7 日以上に設定されていた場合、 黙って 7 日に切り詰めてしまうでしょう。 .It Ic min-roots ルートサーバに対する要求を受け取るために必要なルートサーバの最小値です。 デフォルトは 2 です。 .El .Sh zone ステートメント .Ss 文法 .Bd -literal zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] { type master; file \fIpath_name\fR; [ check-names ( warn | fail | ignore ); ] [ allow-update { \fIaddress_match_list\fR }; ] [ allow-query { \fIaddress_match_list\fR }; ] [ allow-transfer { \fIaddress_match_list\fR }; ] + [ forward ( only | first ); ] + [ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ] [ dialup \fIyes_or_no\fR; ] [ notify \fIyes_or_no\fR; ] [ also-notify { \fIip_addr\fR; [ \fIip_addr\fR; ... ] }; [ pubkey \fInumber\fR \fInumber\fR \fInumber\fR \fIstring\fR; ] }; zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] { type ( slave | stub ); [ file \fIpath_name\fR; ] masters [ port \fIip_port\fR ] { \fIip_addr\fR; [ \fIip_addr\fR; ... ] }; [ check-names ( warn | fail | ignore ); ] [ allow-update { \fIaddress_match_list\fR }; ] [ allow-query { \fIaddress_match_list\fR }; ] [ allow-transfer { \fIaddress_match_list\fR }; ] + [ forward ( only | first ); ] + [ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ] [ transfer-source \fIip_addr\fR; ] [ max-transfer-time-in \fInumber\fR; ] [ notify \fIyes_or_no\fR; ] [ also-notify { \fIip_addr\fR; [ \fIip_addr\fR; ... ] }; [ pubkey \fInumber\fR \fInumber\fR \fInumber\fR \fIstring\fR; ] }; zone \fIdomain_name\fR [ ( in | hs | hesiod | chaos ) ] { type forward; [ forward ( only | first ); ] [ forwarders { [ \fIip_addr\fR ; [ \fIip_addr\fR ; ... ] ] }; ] [ check-names ( warn | fail | ignore ); ] }; zone \&".\&" [ ( in | hs | hesiod | chaos ) ] { type hint; file \fIpath_name\fR; [ check-names ( warn | fail | ignore ); ] }; .Ed .Ss 定義と使用法 .Ic zone ステートメントは、 特定の DNS ゾーンがサーバにどのように管理されるかを指定するために 使われます。ゾーンには 5 つの種類があります。 .Bl -tag -width 1 .It Ic master サーバは、 そのゾーン用データのマスタコピーを持っていて、ゾーンに対して信頼できる 応答を提供できます。 .It Ic slave .Ic slave ゾーンはマスタゾーンの複製です。 .Ic masters リストは、ゾーンの複製を更新するためにスレーブサーバが通信を行う 1 つ以上の IP アドレスを指定します。 .Ic port が指定されている場合、このポートに対し、 ゾーンが現在使用されているものであることの確認と、 ゾーン転送が行われます。 .Ic file が指定されている場合、 指定されたファイルへゾーンの複製が書き出されます。 .Ic file 節を使用することを強く勧めます。 なぜなら、大体においてサーバの起動を早めますし、 通信回線を無駄に使用することを防いでくれるからです。 .It Ic stub .Ic stub ゾーンは slave ゾーンのようなものですが、ゾーン全体を複製するのではなく、 マスタゾーンの NS レコードのみを複製するという点が違います。 .It Ic forward .Ic forward ゾーンは、自分に向けられた問い合わせを他のサーバに振り分けるために使用します。 このことは、 .Sx option ステートメント のセクションで説明しています。これらのゾーンでのオプション仕様は、 .Ic options ステートメントで宣言されたグローバルオプションを上書きします。 .Pp .Ic forwarders 節が zone ステートメント中に存在しないか、もしくは、 .Ic forwarders に対して空リストが与えられている場合は、 そのゾーンに対してフォワードは行われず、 .Ic options ステートメント中の .Ic forwarders は、すべて効力を失います。そのため、使用されるサーバではなく、グローバルの .Ic forward オプションの挙動を変更するためだけにこの種類のゾーンを使用したいのであれば、 グローバルの forwarders 節も指定しなおす必要があります。 .It Ic hint ルートネームサーバの初期集合は、 .Ic hint ゾーンを使用して指定されます。サーバが起動する際に、ルートヒントを使用して ルートネームサーバを見つけ、ルートネームサーバの最新リストを取得します。 .El .Pp 注 : 以前の BIND リリースでは、マスタゾーンに対しては .Ic primary という用語を使用し、スレーブゾーンに対しては、 .Ic secondary を、hint ゾーンに対しては .Ic cache という用語を使用していました。 .Ss クラス ゾーン名には、オプションでクラスを続けることができます。 もし、クラスが指定されていない場合は、 .Ic in クラス (「インターネット」用) であると仮定されます。これは、大半の場合正しいです。 .Pp .Ic hesiod クラスは、MIT の Project Athena 由来の情報サービス用のクラスです。 このクラスは、ユーザ、グループ、プリンタなどといった、 さまざまなシステムデータベースに 関する情報を共有するために使用されます。さらなる情報は、 ftp://athena-dist.mit.edu/pub/ATHENA/usenix/athena_changes.PS から入手できます。 キーワード .Ic hs は .Ic hesiod と同義語です。 .Pp MIT が開発したもう 1 つのものが、1970 年代半ばに作られた LAN プロトコルである CHAOSnet です。これは、LISP ステーションや AI コミュニティで使われている 他のハードウェアで、まだ時折見受けられます。CHAOSnet 用のゾーンデータは、 .Ic chaos クラスを使用して指定できます。 .Ss オプション .Bl -tag -width 1 .It Ic check-names .Sx options ステートメント の .Sx ネームチェック に関するサブセクションを参照してください。 .It Ic allow-query .Sx options ステートメント の .Sx アクセス制御 サブセクションの中の .Ic allow-query に関する説明を参照してください。 .It Ic allow-update どのホストが動的な DNS の更新をサーバに提出するかを指定します。デフォルトは、 どのホストからも更新を許可しないというものです。 .It Ic allow-transfer .Sx options ステートメント の .Sx アクセス制御 サブセクションの中の .Ic allow-transfer に関する説明を参照してください。 .It Ic transfer-source .Ic transfer-source どのローカルアドレスが、 このゾーンを取得するために使用される TCP 接続と結びつけられるかを 指定します。 これが設定されていない場合は、システムが制御する値がデフォルトになります。 この値は、通常は、リモート側の終端に「最も近い」インタフェースのアドレスです。 このアドレスは、 もし指定されているのであれば、このゾーンに対するリモート側の終端の .Ic allow-transfer オプション中に出てこなくてはなりません。 .It Ic max-transfer-time-in .Sx options ステートメント の .Sx ゾーン転送 サブセクション中の .Ic max-transfer-time-in の説明を参照してください。 .It Ic dialup .Sx options ステートメント の .Sx ブール値オプション サブセクション中の .Ic dialup の説明を参照してください。 .It Ic notify .Sx options ステートメント の .Sx ブール値オプション サブセクション中の .Sx notify の説明を参照してください。 .It Ic also-notify .Ic notify がこのゾーンに対してアクティブである場合のみ .Ic also-notify は意味を持ちます。 このゾーンに対する DNS NOTIFY メッセージを受け取るマシン群は、 そのゾーン用にリストされた すべてのネームサーバ (プライマリマスタを除く) と、 .Ic also-notify で指定された IP アドレスからなっています。 .Ic also-notify は .Ic stub ゾーンに対しては意味を持ちません。デフォルトでは、これは空のリストです。 .It Ic forward .Ic forward は、そのゾーンが .Ic forwarders リストを持っている場合のみ意味を持ちます。 .Ic only 値は、先に .Ic forwarders を試し、応答がなかった場合に検索を失敗させます。 それに対し、 .Ic first は、通常の検索を許可します。 .It Ic forwarders ゾーン中で .Ic forwarders オプションを使用すると、グローバルの forwarders リストが上書きされます。 .Ic forward タイプのゾーン中でこれが指定されていなかった場合は、 このゾーンに対しては .Em 何の フォワードも行いません。グローバルのオプションは使われないということです。 .It Ic pubkey DNSSEC のフラグ、プロトコル、アルゴリズムと、 base-64 でエンコードされた鍵を表す文字列を指定します。 .El .Sh acl ステートメント .Ss 文法 .Bd -literal acl \fIname\fR { \fIaddress_match_list\fR }; .Ed .Ss 定義と使用法 .Ic acl ステートメントは、名前のついたアドレスマッチリストを生成します。 このステートメントは、プライマリで使用しているアドレスマッチリスト、つまり、 アクセス制御リスト (ACL) からその名前を取得します。 .Pp アドレスマッチリスト名は、他のところで使用する前に .Ic acl を使用して定義しなくてはなりません。ファイルの前方への参照は許されていません。 .Pp 次のような組み込みの ACL があります : .Bl -tag -width 1 .It Ic any すべてのホストを許可します。 .It Ic none すべてのホストを拒否します。 .It Ic localhost システム上のすべてのインタフェースの IP アドレスを許可します。 .It Ic localnets システムがインタフェースを持ったネットワーク上のすべてのホストを許可します。 .El .Sh key ステートメント .Ss 文法 .Bd -literal key \fIkey_id\fR { algorithm \fIalgorithm_id\fR; secret \fIsecret_string\fR; }; .Ed .Ss 定義と使用法 .Ic key ステートメントは、鍵の ID を指定します。この ID は、 .Ic server ステートメントで使用され、単純な IP アドレスでのマッチングよりも厳格な 特定のネームサーバと認証方法とを関連づけます。 鍵の ID は、 .Ic server の定義やアドレスマッチリスト中で使用される前に .Ic key ステートメントを使用して作成されていなくてはなりません。 .Pp .Va algorithm_id は、セキュリティ / 認証アルゴリズムを指定する文字列です。 .Va secret_string は、指定されたアルゴリズムが使用する秘密の鍵で、 base-64 でエンコードされた文字列として扱われます。 言わずとも当然のことですが、為念指摘しておくと、 .Pa named.conf 中に .Va secret_string を入れている場合、 named.conf をスーパユーザ以外の誰にも読み込み可能にしてはいけません。 .Sh trusted-keys ステートメント .Ss 文法 .Bd -literal trusted-keys { [ \fIdomain_name\fR \fIflags\fR \fIprotocol\fR \fIalgorithm\fR \fIkey\fR; ] }; .Ed .Ss 定義と使用法 .Ic trusted-keys ステートメントは、もともと、RFC 2065 で仕様が決められている DNSSEC スタイルの セキュリティとともに使用されます。DNSSEC は、 3 つの異なったサービスを提供するものです : それは、鍵の配布、データの発生元の認証、 そして、トランザクションおよび要求の認証です。DNSSEC についての完全な説明と このドキュメントの範囲を超えた使い方を知りたい場合、 そして、読者がさらなる情報に 興味がある場合は、まず、RFC2065 を読むことから始めてください。そして、 http://www.ietf.org/ids.by.wg/dnssec.html から入手できるインターネット ドラフトへと続いてください。 .Pp 信頼された鍵はそれぞれ、ドメイン名と関連づけられています。その属性は、 非負の整数値である、 .Va flags , .Va protocol , .Va algorithm と、 .Va key を表す base-64 でエンコードされた文字列です。 .Pp 信頼された鍵の番号はすべて指定可能です。 .Sh server ステートメント .Ss 文法 .Bd -literal server \fIip_addr\fR { [ bogus \fIyes_or_no\fR; ] [ transfers \fInumber\fR; ] [ transfer-format ( one-answer | many-answers ); ] [ keys { \fIkey_id\fR [ \fIkey_id\fR ... ] }; ] }; .Ed .Ss 定義と使用法 server ステートメントは、リモートのネームサーバに関連付けられる 特徴を定義します。 .Pp サーバが間違ったデータを送っていることに気がついた場合、そのサーバを .Ic bogus にすることで、そのサーバへの問い合わせを抑止することができます。 .Ic bogus のデフォルト値は .Li no です。 .Pp サーバは、2 つのゾーン転送方式をサポートしています。1 つ目は、 .Ic one-answer であり、 これは、転送される各リソースレコードに 1 つの DNS メッセージを使用します。 .Ic many-answers は、できるだけ多くのリソースレコードを 1 つのメッセージに押し込みます。 .Ic many-answers の方が効率的ではありますが、BIND 8.1 および、 パッチの当たった BIND 4.9.5 でのみ 理解されるものです。 サーバに対してどちらの方法を使用するかは、 .Ic transfer-format オプションを使用して指定することができます。 .Ic transfer-format が指定されていない場合は、 .Ic options ステートメントで指定された .Ic transfer-format が使用されます。 .Pp .Ic transfers は、将来のリリースでのサーバで、 指定されたサーバから同時に行われる内部へのゾーン転送数を 制限するために使用される予定です。 現在は、文法はチェックしますが、その他のことは 無視されます。 .Pp .Ic keys 節は、 .Ic key ステートメントで定義された .Va key_id を識別するために使用されます。これは、リモートサーバと通信する際の トランザクションのセキュリティ用に使用されます。 .Ic key ステートメントは、それを参照する .Ic server ステートメントよりも先に現れなくてはなりません。 .Pp .Ic keys ステートメントは、将来、サーバによって使用されることを期待されています。 現在は、文法はチェックされますが、その他のことは無視されます。 .Sh controls ステートメント .Ss 文法 .Bd -literal controls { [ inet \fIip_addr\fR port \fIip_port\fR allow { \fIaddress_match_list\fR; }; ] [ unix \fIpath_name\fR perm \fInumber\fR owner \fInumber\fR group \fInumber\fR; ] }; .Ed .Ss 定義と使用法 .Ic controls ステートメントは、 システム管理者がローカルのネームサーバの操作に影響を与えるために 使用する制御チャネルを宣言します。制御チャネルは、 .Nm ndc ユーティリティが、ネームサーバにコマンドを送り、 DNS 以外の結果を受け取るために 使用します。 .Pp .Ic unix 制御チャネルは、ファイルシステムでの FIFO です。このチャネルへのアクセスは、 通常のファイルシステムのパーミッションによって制御されます。 この制御チャネルは、 指定されたファイルモードのビット ( .Xr chmod 1 を参照) とユーザおよびグループの所有者情報を使用し、 .Nm named が作成します。 注意することは、 .Nm chmod とは違い、 .Ic perm に対して指定されるモードのビットには、通常先頭に .Li 0 がついていることです。そのため、数字は 8 進数として解釈されます。 さらに注意することは、 .Ic owner および .Ic group として指定されるユーザおよびグループの所有者情報は、数字で与えなくては ならないということです。名前ではありません。 このパーミッションは、管理者のみに制限することを勧めます。 そうしないと、このシステム上のユーザなら誰でもローカルネームサーバを 操作できてしまいます。 .Pp .Ic inet 制御チャネルは、インターネット接続のできる TCP/IP ソケットです。 これは、指定された .Va ip_addr 上の指定された .Va ip_port にあります。 最近の .Nm telnet クライアントは、こうしたソケットと直接対話ができます。 このときの制御プロトコルは、ARPAnet 形式のテキストです。 127.0.0.1 だけを .Va ip_addr に使用することを勧めます。これは、ネームサーバを管理するために、 ローカルホスト上の特権を持たないユーザを皆信用している場合だけに限ります。 .Sh include ステートメント .Ss 文法 .Bd -literal include \fIpath_name\fR; .Ed .Ss 定義と使用法 .Ic include ステートメントは、そのステートメントが現れた地点に、指定された ファイルを挿入します。ただし、他のステートメント内で使用することは できません。ですので、 .Dl acl internal_hosts { include "internal_hosts.acl"; }; というようには使用できません。 .Pp .Ic include を使用して、設定ファイルを簡単に管理できるかたまりに分けるように してください。例えば、次のようにです : .Bd -literal include "/etc/security/keys.bind"; include "/etc/acls.bind"; .Ed この例は、任意の ACL または 認証鍵情報を取り込むために、 BIND 設定ファイルの先頭で使うことができるでしょう。 .Pp C 言語でのプログラムでするように ``#include'' とタイプしないでください。 ``#'' はコメントの開始として使用するものだからです。 .Sh 使用例 実際に使用する場面でも実用的で、最も単純な設定ファイルは、 ただ単にルートサーバファイルへのフルパスを持ったヒントゾーンを 定義したものです。 .Bd -literal zone \&".\&" in { type hint; file \&"/var/named/root.cache\&"; }; .Ed 次の例は、もっと実世界に即したものです。 .Bd -literal /* * 単純な BIND 8 の設定 */ logging { category lame-servers { null; }; category cname { null; }; }; options { directory \&"/var/named\&"; }; controls { inet * port 52 allow { any; }; // これは良くない unix \&"/var/run/ndc\&" perm 0600 owner 0 group 0; // デフォルト }; zone \&"isc.org\&" in { type master; file \&"master/isc.org\&"; }; zone \&"vix.com\&" in { type slave; file \&"slave/vix.com\&"; masters { 10.0.0.53; }; }; zone \&"0.0.127.in-addr.arpa\&" in { type master; file \&"master/127.0.0\&"; }; zone \&".\&" in { type hint; file \&"root.cache\&"; }; .Ed .Sh ファイル .Bl -tag -width 1 -compact .It Pa /etc/namedb/named.conf BIND 8 .Nm named 設定ファイル .El .Sh 関連項目 .Xr named 8 , .Xr ndc 8 diff --git a/ja_JP.eucJP/man/man5/rtadvd.conf.5 b/ja_JP.eucJP/man/man5/rtadvd.conf.5 index 96dfcf0a52..2aaf941035 100644 --- a/ja_JP.eucJP/man/man5/rtadvd.conf.5 +++ b/ja_JP.eucJP/man/man5/rtadvd.conf.5 @@ -1,275 +1,287 @@ -.\" %KAME: rtadvd.conf.5,v 1.5 2000/05/22 22:22:56 itojun Exp % +.\" $KAME: rtadvd.conf.5,v 1.8 2000/10/25 05:37:43 jinmei Exp $ .\" .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the project nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/rtadvd/rtadvd.conf.5,v 1.1.2.1 2000/07/15 07:36:57 kris Exp % +.\" %FreeBSD: src/usr.sbin/rtadvd/rtadvd.conf.5,v 1.1.2.2 2000/10/30 17:39:46 ume Exp % .\" jpman %Id: rtadvd.conf.5,v 1.3 2000/05/01 16:07:12 yt-kage Stab % .\" .Dd May 17, 1998 .Dt RTADVD.CONF 5 .Os .Sh 名称 .Nm rtadvd.conf .Nd ルータ通知デーモンの設定ファイル .Sh 解説 このファイルには各インタフェースに対して、 ルータ通知パケットをどのように組み立てなければならないかを記述します。 +.Xr rtadvd 8 +の記述のように、特別な設定が必要で無い限りにおいては、 +この設定ファイルを設定する必要はまったくありません。 +このファイルの作成すら、しなくてかまいません。 +この場合、 +.Nm rtadvd +デーモンは、仕様で指定されるデフォルト値を仕様して、自己を自動設定します。 .Pp 記述方法は有名な .Xr termcap 5 ファイルのフォーマットに従います。 ファイル中の各行にはネットワークインタフェースを記述します。 フィールドはコロン .Pq \&: により区切られ、 各フィールドは 1 つのケーパビリティの記述を含みます。 行は .Sq \e により次の行へ続けることができます。 コメントは .Sq \# で始まります。 .Pp .Sh ケーパビリティ ケーパビリティは ICMPv6 ルータ通知メッセージを埋めるため、また .Xr rtadvd 8 の振る舞いを制御するための値を記述します。 したがって、もしサンプルの定義ファイルを変更したいのであれば、 -IETF 近隣探索文書を読むことが推奨されます。 +前述のように IETF 近隣探索文書を読むことが推奨されます。 .Pp ほとんど全ての項目はデフォルト値を持っていることに 注意してください。 項目を省略すると、項目のデフォルト値が使用されます。 .Pp ルータ通知を送信する間隔を制御するための 2 つの項目があります。 +これらの項目は省略可能であり、この場合には +.Nm rtadvd +はデフォルト値を使用します。 .Bl -tag -width indent .It Cm \&maxinterval (数値) 要請されていないマルチキャストルータ通知を送信する間隔の 最大時間です .Pq 単位 : 秒 。デフォルト値は 600です。この値は 4 以上 1800 以下でなければなりません。 .It Cm \&mininterval (数値) 要請されていないマルチキャストルータ通知を送信する間隔の 最小時間です .Pq 単位 : 秒 。デフォルト値は .Ic maxinterval の 3 分の 1 の値です。 この値は 3 以上 .75 * .Ic maxinterval の値以下でなければなりません。 .El .Pp 以下の項目は ICMPv6 ルータ通知メッセージヘッダのためのものです。 +これらの項目は省略可能であり、この場合には +.Nm rtadvd +はデフォルト値を使用します。 .Bl -tag -width indent .It Cm \&chlim (数値) カレント中継限界数フィールドに対する値です。 デフォルト値は 64 です。 .It Cm \&raflags (数値) ルータ通知メッセージヘッダのフラグフィールドです。 7 ビット目 .Po .Li 0x80 .Pc は 管理アドレス設定フラグのビットを意味します。 そして 6 ビット目 .Po .Li 0x40 .Pc はアザーステートフル設定フラグビットを意味します。 デフォルト値は 0 です。 .It Cm \&rltime (数値) ルータ有効期間フィールドです .Pq 単位 : 秒 。この値は 3600000 以下でなければなりません。 デフォルト値は 1800 です。 .It Cm \&rtime (数値) 到達可能時間フィールドです .Pq 単位 : ミリ秒 。デフォルト値は 0 であり、これはこのルータにより 指定されないことを意味しています。 .It Cm \&retrans (数値) 再送タイマフィールドです。 .Pq 単位 : ミリ秒 。デフォルト値は 0 であり、これはこのルータにより 指定されないことを意味しています。 .El .Pp 以下は ICMPv6 プレフィックス情報オプションに対する項目であり、 ルータ通知ヘッダに付与されます。 +これらの項目は省略可能であり、この場合には +.Nm rtadvd +は自動的に適切なプレフィックスをカーネルの経路表から取得して、 +このプレフィックスをデフォルトパラメータと共に通知します。 .Bl -tag -width indent .It Cm \&addrs (数値) プレフィックスの番号です。 デフォルトは 0 であり、 もし、何かプレフィックス情報オプションを指定したいのであれば、 明示的に正の値を設定しなければなりません。 もし値が 0 であれば、 .Xr rtadvd 8 はシステムの経路表を検索し、 対応するインタフェース経路のプレフィックスを通知します。 値が 1 より大きい場合、以下の各項目に対してプレフィックスの インデックスを指定しなければなりません。 インデックスは N を .Ic addrs の値とすると、0 から N-1 までの値を取ります。 各インデックスは、 例えば .Dq prefixlen2 のように、各項目の名前に続ける必要があります。 .It Cm \&prefixlen (数値) プレフィックス長フィールドです。 デフォルト値は 64 です。 .It Cm \&pinfoflags (数値) プレフィックス情報オプション中のフラグフィールドです。 7 ビット目 .Po .Li 0x80 .Pc は オンリンクフラグビットです。そして 6 ビット目 .Po .Li 0x40 .Pc は自律アドレス設定フラグビットです。 デフォルト値は 0xc0 であり、すなわち両方のビットが設定されています。 .It Cm \&addr (文字列) プレフィックスフィールドに埋められるアドレスです。 .Xr termcap 5 ファイルフォーマットで、 IPv6 数値アドレスと同様に .Dq \&: が使われているために、フィールドはダブルクォート文字によって クォートされなければなりません。 このフィールドは .Ic addrs の値が 0 より大きい場合、省略することができません。 .It Cm \&vltime (数値) 正当な有効期間フィールドです .Pq 単位 : 秒 。デフォルト値は 2592000(30 日) です。 .It Cm \&pltime (数値) 推奨有効期間フィールドです .Pq 単位 : 秒 。デフォルト値は 604800(7 日) です。 .El .Pp 以下は ICMPv6 MTU に対する項目であり、 ルータ通知ヘッダに付与されます。 +この項目は省略可能であり、この場合には +.Nm rtadvd +はデフォルト値を使用します。 .Bl -tag -width indent .It Cm \&mtu (数値もしくは文字列) MTU (最大転送単位) フィールドです。 0 が指定された場合には、オプションは含まれません。 デフォルト値は 0 です。 もしこの項目に特別な文字列 .Dq auto -が指定された場合、 MTU オプションは含まれ、 +が指定された場合、MTU オプションは含まれ、 その値はインタフェースの MTU に自動的に設定されます。 .El .Pp 以下は ICMPv6 始点データリンク層アドレスオプションを制御するたの項目であり、 ルータ通知ヘッダに付与されます。 +前述のように、この項目は省略可能であり、この場合には +.Nm rtadvd +はデフォルト値を使用します。 .Bl -tag -width indent .It Cm \&nolladdr (ブール値) デフォルトでは .Po もし .Cm \&nolladdr が指定されない場合 .Pc 、 .Xr rtadvd 8 は、インタフェースに対するデータリンク層アドレスを カーネルから取得しようと試み、 それを始点データリンク層アドレスオプションに付与します。 もしこのケーパビリティが存在する場合、 .Xr rtadvd 8 はルータ通知パケットに、始点データリンク層アドレスオプションを付与しません。 .El .Pp -次の指定により、 -ICMPV6 ホームエージェント情報オプションを制御します。 -本オプションは、モバイル IPv6 サポートで定義されています。 -本オプションは、他のオプションと同様、ルータ通知ヘッダに取り付けられます。 -.Bl -tag -width indent -.It Cm \&hapref -(数値) ホームエージェントの好み (preference) を設定します -非 0 に設定する場合、 -.Cm \&hatime -もまた存在することが必要です。 -.It Cm \&hatime -(数値) ホームエージェントの有効期間を指定します。 -.El -.Pp -.Xr rtadvd 8 -においてモバイル IPv6 サポートが有効なときには、 -.Cm \&maxinterval -を明示的に設定することにより、 -通知間隔オプションがルータ通知パケットに取り付けられます。 -.Pp また .Cm tc ケーパビリティを用いることで、他の行を参照することができます。 このケーパビリティの詳細に関しては .Xr termcap 5 を参照してください。 .Sh 使用例 .Bd -literal -offset # # 共通の定義 # -default:\\ - :raflags#0:rltime#3600:\\ - :pinfoflags#64:vltime#360000:pltime#360000:mtu#1500: -ether:\\ - :mtu#1280:tc=default: - -# -# インタフェース +# 注: 以下のパラメータはすべて仕様で指定されるデフォルト値であり、 +# 特別な非デフォルト値を使用したいので無い限りにおいては手動 +# で設定する必要はありません。 # -ef0:\\ - :addrs#1:\\ - :addr="3ffe:501:4819:1000::":tc=ether: -ef1:\\ - :addrs#2:addr0="3ffe:501:4819:2000::":\\ - :addr1="3ffe:501:4819:3000::":tc=ether: +# 設定ファイルを作成する必要すらありません。 rtadvd は、通常、 +# 設定ファイル無しでもうまく動作します。 +# rtadvd(8) も見てください。 + +#default:\\ +# :chlim#64:raflags#0:rltime#1800:rtime#30000:retrans#1000:\\ +# :pinfoflags#192:vltime#3600000:pltime#3600000:mtu#1500: +#ether:\\ +# :mtu#1500:tc=default: + +# インタフェース毎の定義。 +# 主に IPv6 プレフィックスがこの部分で設定されます。しかしながら、 +# rtadvd は自動的に適切なプレフィックスを kernel の経路表から取得 +# してこのプレフィックスを通知しますので、この部分を設定する必要も +# ありません。 +# 自動的な通知を好まない場合には、rtadvd を -s オプション付で起動 +# して、この部分を手動で設定してください。 + +#ef0:\\ +# :addrs#1:addr="3ffe:501:4819:1000::":prefixlen#64:tc=ether: .Ed .Sh 関連項目 .Xr termcap 5 , .Xr rtadvd 8 , .Xr rtsol 8 .Pp Thomas Narten, Erik Nordmark and W. A. Simpson, .Do Neighbor Discovery for IP version 6 (IPv6) .Dc , RFC 2461 .Sh 歴史 .Xr rtadvd 8 と設定ファイル .Nm はWIDE Hydrangea IPv6 プロトコルスタックキットではじめて登場しました。 .\" .Sh BUGS .\" (to be written) diff --git a/ja_JP.eucJP/man/man5/syslog.conf.5 b/ja_JP.eucJP/man/man5/syslog.conf.5 index d3999f6509..ca75e6f988 100644 --- a/ja_JP.eucJP/man/man5/syslog.conf.5 +++ b/ja_JP.eucJP/man/man5/syslog.conf.5 @@ -1,374 +1,438 @@ .\" Copyright (c) 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93 -.\" %FreeBSD: src/usr.sbin/syslogd/syslog.conf.5,v 1.16 2000/03/01 14:08:36 sheldonh Exp % +.\" %FreeBSD: src/usr.sbin/syslogd/syslog.conf.5,v 1.16.2.1 2000/10/30 11:42:27 dwmalone Exp % .\" .\" jpman %Id: syslog.conf.5,v 1.3 1998/07/16 01:34:25 yohta Stab % .\" .Dd June 9, 1993 .Dt SYSLOG.CONF 5 .Os .Sh 名称 .Nm syslog.conf .Nd .Xr syslogd 8 設定ファイル .Sh 解説 .Nm ファイルは .Xr syslogd 8 プログラムの設定ファイルです。 このファイルは .Em program -指定によって分けられた行ブロックから構成されています。 +と +.Em hostname +の指定によって分けられた行ブロックから構成されています。 それぞれの行は 2つのフィールドを含みます。 その行が適用されるメッセージのタイプと優先度を指定する .Em selector フィールドと、 .Xr syslogd が選んだ基準とマッチしたメッセージを受けとった場合の動作を指定する .Em action フィールドです。 .Em selector フィールドと .Em action フィールドは 1 つ以上のタブ文字または空白で区切られています。 .Pp 区切りに空白を使用すると、 .Pa syslog.conf は他の Unix や Unix 的システムと互換性が無くなってしまうことに 注意してください。 この機能は、設定を容易にし (例えば .Pa syslog.conf にカットアンドペーストできるようにし)、 その際発生し得るミスを避けるため追加されました。 しかしながらこの変更は、古いスタイルの .Pa syslog.conf (すなわちタブ文字のみ) へのバックワードコンパチビリティを保っています。 .Pp .Em selector 機能は、 .Em facility とピリオド .Pq Dq \&. とオプションの比較フラグ .Pq Bq <=> そして .Em level で符号化され、間に空白は含みません。 .Em facility と .Em level の双方とも、大文字小文字の区別はありません。 .Pp .Em facility はシステムが発するメッセージの一部を表し、次にあげるキーワード群の 1 つで表されます : auth, authpriv, cron, daemon, ftp, kern, lpr, mail, mark, news, ntp, syslog, user, uucp, security と local0 から local7。 これらのキーワード (mark を除く) は .Xr openlog 3 と .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Em 比較フラグ を使用して、何を記録するのかを正確に指定できます。 比較フラグのデフォルト組は .Dq => (またはあなたが好むのなら .Do >= .Dc ) であり、 指定した .Em facility リストからの .Em level 以上のレベルのメッセージを記録することを意味します。 .Pp .Pp .Em level はメッセージの重要度を表し、以下のキーワードの順に高から低になります: emerg, alert, crit, err, warning, notice, info, debug。 これらのキーワードは .Xr syslog 3 ライブラリルーチンで指定される .Dq Dv LOG_ で始まる値と一致します。 .Pp -それぞれの行ブロックはタグによって前のブロックと区別されます。 -タグは行の先頭が +それぞれの行ブロックは +.Em program +か +.Em hostname +の指定によって前のブロックと区別されます。 +ブロックは、最新の +.Em program +指定および +.Em hostname +指定に対応するメッセージのみをログします。 +よって、 +.Ql ppp +を +.Em program +として選択するブロックに、 +.Em hostname +.Ql dialhost +からのメッセージを選択するブロックが直後に続くと、 +第 2 のブロックは、dialhost 上の +.Xr ppp 8 +プログラムからのメッセージのみをログします。 +.Pp +.Em program +指定は、行の先頭が .Em #!prog または .Em !prog (前者は以前の syslogd との互換性のためのものです。 例えば .Pa syslog.conf ファイルを共有したい時などに便利です) -で始まり、それぞれのブロックは syslog を呼び出す特定のプログラムと +で始まり、引き続くブロックは syslog を呼び出す特定のプログラムと 関連付けられています。 -また、タグ ``foo'' は、 -``foo: '' というプレフィックスを持つ -カーネルログメッセージにもマッチします。 +.Em program +指定 +.Ql foo +は、 +.Ql "foo: " +というプレフィックスを持つカーネルログメッセージにもマッチします。 +.Em hostname +指定で +.Ql #+hostname +または +.Ql +hostname +という書式のものは、これに引き続くブロックを、 +指定したホスト名からのメッセージに適用させます。 +また、 +.Em hostname +指定で +.Ql #-hostname +または +.Ql -hostname +という指定のものは、これに引き続くブロックを、 +指定したホスト名以外からのメッセージに適用させます。 +ホスト名が +.Ql @ +として与えられると、ローカルホスト名が使用されます。 +.Em program +指定または +.Em hostname +指定は、プログラム名またはホスト名に +.Ql * +を指定することによりリセット可能です。 .Pp .Em facility と .Em level の両方のキーワードとその意味のより詳細な説明を知りたい場合は .Xr syslog 3 を見てください。 選択は .Em facility で行なう方が .Em program で行なうよりも好まれています。 なぜなら、後者はネットワーク環境の中では 簡単に変化してしまう場合があるからです。しかし、適切な .Em facility が本当に存在しない場合もあります。 .Pp もし .Em facility 指定に一致したメッセージを受けとり、なおかつそれが 指定した .Em level .Em (もしくはそれ以上の level) だった場合、またはメッセージ中の日付の後ろの最初の単語が .Em program と一致した場合、 .Em action フィールドで指定された動作が選択されます。 .Pp 複数の .Em selector を、セミコロン .Pq Dq \&; によって区切ることにより、1 つの .Em action に対して指定することができます。 しかしそれぞれの .Em selector はその前にある指定を上書き修正できてしまいますので注意してください。 .Pp 複数の .Em facility は、コンマ .Pq Dq \&, によって区切ることにより 1 つの .Em level を指定することができます。 .Pp アスタリスク .Pq Dq * は、全ての .Em facility 、全ての .Em levels 、または全ての .Em programs を指定するのに使用できます。 .Pp 特別な .Em facility である .Dq mark は、20分毎に .Dq info の優先度を持つメッセージを受け取ります ( .Xr syslogd 8 を参照 )。これは アスタリスクを含む .Em facility フィールドには適用されません。 .Pp 特別な .Em level である .Dq none は、特定の .Em facility を無効にします。 .Pp それぞれの行の .Em action フィールドは、 .Em selector フィールドに指定されたメッセージを受け取った際の動作を指定します。 動作指定には次の 5つの形式があります: .Bl -bullet .It パス名 (先頭がスラッシュで始まります)。 該当するメッセージは、そのファイルに追加されます。 .It ホスト名 ( .Dq @ 文字から始まる必要があります)。 該当するメッセージは、指定されたホストの .Xr syslogd 8 プログラムに転送されます。 .It コンマで区切られたユーザのリスト。 該当するメッセージは、指定されたユーザがログインしていれば、 そのユーザの画面に出力されます。 .It 1 つのアスタリスク。 該当するメッセージは、ログイン中の全てのユーザの画面に出力されます。 .It 垂直バー .Pq Dq \&| とそれに続くコマンド。該当したメッセージをパイプを使って コマンドに渡すことができます。 このコマンドは、 .Pa /bin/sh によって評価されるので、通常のシェルメタキャラクタや入力/出力 リダイレクトを利用できます。 (しかし実行されたコマンドからの .Xr stdio 3 バッファされた出力のリダイレクトは余計な遅延を引き起こしたり、 あるいはシグナルによってロギング中のサブプロセスが終了した場合など 出力データを失うことがあるかもしれないことに注意してください) コマンドそれ自身は .Em stdout と .Em stderr を .Pa /dev/null にリダイレクトして動作します。 .Dv SIGHUP を受け取ると、 .Nm はそのプロセスとのパイプを閉じます。もしそのプロセスが自発的に終了しない 場合は、60秒の猶予期間の後 .Dv SIGTERM を送ります。 .Pp コマンドはパイプ経由で送るべきデータが到着した際に 1 度だけ起動されます。 その後、コマンドが終了した場合には必要に応じて再起動されます。 そのため、1 行の入力だけをサブプロセスに引き渡すことが望ましいのならば、 (もし多くのメッセージが速く流れる場合には、 資源を大量に消費する可能性がありますが) 1 行の入力があった後に終了する事によって達成する事ができます。 必要ならば、この効果を得るためにラッパスクリプトを書くこともできます。 .Pp そのコマンドが完全なパイプラインでない場合、コマンドを .Em exec で起動すると、起動したシェルプロセスがコマンドの完了を待たなくなるので 便利かもしれません。 警告: このプロセスは .Xr syslogd 8 の UID のもとで動きます。通常はスーパユーザです。 .El .Pp 空行、および、最初の空白でない文字がハッシュ .Pq Dq # 文字である行は無視されます。 .Sh 使用例 .Pp 設定ファイルは次のようになります: .Bd -literal # err レベル以上の全てのメッセージ、全てのレベルの kernel メッセージ、 # notice レベルの auth メッセージをコンソールに出力します。 # プライベートな認証メッセージは記録をとりません! *.err;kern.*;auth.notice;authpriv.none /dev/console # info 以上のレベルを持つ (mail を除く) 全てのメッセージを記録します。 # プライベートな認証メッセージは記録をとりません! *.info;mail.none;authpriv.none /var/log/messages # debug レベルのみの daemon メッセージを記録します daemon.=debug /var/log/daemon.debug # authpriv ファイルはアクセス制限を持ちます。 .\" /var/log/secure の read permission を限定するということ? .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 8 1998) authpriv.* /var/log/secure # 全てのレベルの mail メッセージを一箇所にまとめて記録します。 mail.* /var/log/maillog # emerg (非常事態) レベルの全てのメッセージは全員が受け取ります。 *.emerg * *.emerg @arpa.berkeley.edu # alert レベル以上のメッセージを root と eric の画面に表示されます。 .\" 原文は Root and Eric get alert and higher messages を意訳 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) *.alert root,eric # err レベル以上の mail と news の エラーを特別なファイルに保存します。 mail;news.err /var/log/spoolerr .\" 原文は uucp,news.crit / send-pr 予定 .\" 2.2.6-RELEASE 対象 .\" By yohta@bres.tsukuba.ac.jp (July 10 1998) # 全てのレベルの認証メッセージをフィルタにパイプします。 auth.* |exec /usr/local/sbin/authfilter # ftpd のトランザクションを mail と news にあわせて保存します。 !ftpd *.* /var/log/spoolerr # セキュリティメッセージを別のファイルに保存します。 security.* /var/log/security .Ed +.Sh 実装に関する注 +.Dq kern +ファシリティは、 +通常、ローカルのカーネルから生成されるメッセージ用に予約されています。 +ファシリティ +.Dq kern +でログされた他のメッセージは、通常、ファシリティ +.Dq user +に変換されます。 +この変換は無効化可能です。 +詳細は +.Xr syslogd 8 +を参照してください。 .Sh 関連ファイル .Bl -tag -width /etc/syslog.conf -compact .It Pa /etc/syslog.conf .Xr syslogd 8 設定ファイル .El .Sh バグ 複数の .Em selector 指定は、時々思ったように効果を発揮しない事があります。 例えば、 .Dq mail.crit,*.err と設定すると、 .Dq mail ファシリティのメッセージのレベルは .Dq err かそれ以上となり、 .Dq crit かそれ以上のレベルにはなりません。 .Pp ネットワーク環境においては、全てのオペレーティングシステムが 同じ facility 名のセットを実装しているわけではない点に注意してください。 authpriv, cron, ftp, ntp といったこの実装において知られた facility が、 目的のシステムには存在しないかもしれません。更に悪い事に、 DEC UNIX は AdvFS ファイルシステムのログイベントに facility 番号 10 (この実装では authpriv に該当します) を使っています。 .Sh 関連項目 .Xr syslog 3 , .Xr syslogd 8 diff --git a/ja_JP.eucJP/man/man7/mdoc.samples.7 b/ja_JP.eucJP/man/man7/mdoc.samples.7 index 4fe37bd6b5..2845bfeb6d 100644 --- a/ja_JP.eucJP/man/man7/mdoc.samples.7 +++ b/ja_JP.eucJP/man/man7/mdoc.samples.7 @@ -1,2847 +1,2849 @@ .\" Copyright (c) 1990, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)mdoc.samples.7 8.2 (Berkeley) 12/30/93 -.\" %FreeBSD: src/share/man/man7/mdoc.samples.7,v 1.28.2.5 2000/09/22 14:37:16 phantom Exp % +.\" %FreeBSD: src/share/man/man7/mdoc.samples.7,v 1.28.2.6 2000/10/30 10:32:01 obrien Exp % .\" .\" This tutorial sampler invokes every macro in the package several .\" times and is guaranteed to give a worst case performance .\" for an already extremely slow package. .\" .\" jpman %Id: mdoc.samples.7,v 1.4 1999/01/21 17:52:58 kuma Stab % .\" .\" WORD: display 表示内容 .\" WORD: angle bracket カギ括弧 <> .\" WORD: keep キープ .\" WORD: display ディスプレイ .\" WORD: literal リテラル .\" WORD: content macro コンテントマクロ .\" WORD: command modifier コマンド修飾子 .\" WORD: enclosure 囲い .\" WORD: quoting クォート .\" WORD: nest 入れ子 .\" WORD: block ragged 凹凸ブロック .\" WORD: constant width character 定幅文字 .\" .Dd December 30, 1993 .Os .Dt MDOC.SAMPLES 7 .Sh 名称 .Nm mdoc.samples .Nd .Nm \-mdoc を使って .Bx マニュアルを書くためのチュートリアルサンプル .Sh 書式 .Nm man mdoc.samples .Sh 解説 .Xr troff 1 用の .Em コンテントベース でかつ .Em 領域ベース なフォーマットパッケージである .Nm \-mdoc マクロパッケージを使って .Bx マニュアルを書くためのチュートリアルサンプルです。 前身である .Xr \-man 7 パッケージはフォントの操作や他の写植方法の詳細は個々の作者に任せた ページレイアウトベースのものでした。 .Nm \-mdoc では、ページレイアウトマクロは タイトル、セクションのヘッダ、ディスプレイ、リストのマクロからなる .Em "ページ構造領域" を形成しています。 ページ構造領域に加え、 さらにマニュアル領域および一般テキスト領域の 2 つの領域があります。 一般テキスト領域はテキストの一部をクォートしたり、強調するといったような作業を 実行するマクロとして定義されています。 マニュアル領域はコマンドやルーチン、それに .Bx の関連ファイルを記述するための日常使用されるインフォーマルな言葉の サブセットであるマクロとして定義されています。 マニュアル領域のマクロはコマンド名、コマンド行の引数とオプション、 関数名、関数のパラメータ、パス名、変数名、他のマニュアルページへの クロスリファレンスなどを扱います。 これらの領域の項目は作者とマニュアルページの将来のユーザの両者に とって価値のあるものです。 マニュアル間で一貫性を高めることによって将来のドキュメントツールへの 移行が容易になることが望まれます。 .Pp マニュアルのエントリは、実際の長さに関わらず、 また男女の区別をするような意図なしで、 .Ux のマニュアルページを通して、単純に man ページとして参照されています。 .Sh さあ、始めよう 通常チュートリアルドキュメントは、そこに示された題材をすぐに使いたい時 に読むものですので、このドキュメントのユーザはせっかちな人だと 仮定しています。 このドキュメントの残りの部分で説明されている題材は以下のような構成に なっています。 .Bl -enum -offset indent .It .Tn "TROFF に特有な表現" .Bl -tag -width flag -compact -offset indent .It "マクロの使用方法" .It "引数に空白文字を指定する" .It "行末の空白文字 (警告)" .It "特殊文字のエスケープ" .El .It .Tn "MAN ページの分析" .Bl -tag -width flag -compact -offset indent .It "マニュアルページのテンプレート" .El .It .Tn "タイトルマクロ" .It .Tn "マニュアル領域および一般テキスト領域の紹介" .Bl -tag -width flag -compact -offset indent .It "この名前には何が...?" .It "一般的な構文" .El .It .Tn "マニュアル領域" .Bl -tag -width flag -compact -offset indent .It "アドレス" .It "作者名" .It "引数" .It "コンフィギュレーション宣言 (セクション 4 のみ)" .It "コマンド修飾子" .It "定義済みの変数" .It "errno (セクション 2 のみ)" .It "環境変数" .It "関数の引数" .It "関数の宣言" .It "フラグ" .It "関数 (ライブラリルーチン)" .It "関数の型" .\" .It "ヘッダファイル (ソースコードを含む)" .It "ライブラリ名" .It "対話的なコマンド" .It "名称" .It "オプション" .It "パス名" .It "標準" .It "変数" .It "クロスリファレンス" .El .It .Tn "一般テキスト領域" .Bl -tag -width flag -compact -offset indent .It "AT&T マクロ" .It "BSD マクロ" .It "FreeBSD/NetBSD/OpenBSD マクロ" .It "UNIX マクロ" .It "囲い/クォート マクロ" .Bl -tag -width flag -compact -offset indent .It "カギ括弧 <> によるクォート/囲い" .It "角括弧 [] によるクォート/囲い" .It "二重引用符マクロ/囲い" .It "括弧 () によるクォート/囲い" .It "一重引用符によるクォート/囲い" .It "プレフィックスマクロ" .El .It "no\-op もしくは通常テキストマクロ" .It "空白なしマクロ" .It "セクションのクロスリファレンス" .It "参考文献と引用" .It "戻り値 (セクション 2 および 3 のみ)" .It "商標名 (頭字語とタイプ名)" .It "拡張引数" .El .It .Tn "ページ構造領域" .Bl -tag -width flag -compact -offset indent .It "セクションヘッダ" .It "段落と行スペース" .It "キープ" .It "例示とディスプレイ" .It "フォントモード (強調、リテラル、およびシンボリック)" .It "リストと列" .El .It .Tn "定義済みの文字列" .It .Tn "診断" .It .Tn "GROFF、TROFF、および NROFF を使用したフォーマッティング" .It .Tn "バグ" .El .ne 7 .Sh TROFF に特有な表現 .Nm \-mdoc パッケージは man ページを記述するプロセスを簡単にすることを 目的としています。 .Nm \-mdoc を使うために .Xr troff 1 のゴタゴタした詳細を学ぶ必要がないのが理想ですが、 いくつか片付けるべき避けられない制限事項があります。 また、このパッケージは高速で .Em ない ということも予め警告しておきます。 .Ss マクロの使用方法 .Xr troff 1 のように、マクロは .Ql \&\. (ドット文字) を行頭に置き、それに続けて 2 文字からなるマクロの名称を指定することによって 呼び出されます。 引数はマクロの後にスペースで区切って指定することができます。 行頭にドット文字を指定することによって .Xr troff 1 にそれに続く 2 文字をマクロ名として解釈するよう指示しています。 マクロを起動せずに、ある文脈の行の先頭に .Ql \&\. (ドット文字) を置くためには、 .Ql \&\. (ドット) の前にエスケープシーケンス .Ql \e& を指定します。 .Ql \e& は文字通りスペース幅が 0 として解釈され、出力には現れません。 .Pp 一般的に .Xr troff 1 マクロは引数を 9 つまで取ることができ、それ以上指定された引数は無視されます。 .Nm \-mdoc でのほとんどのマクロは 9 つの引数を取ることができ、 限られた場合にのみ引数は次の行に続けて指定することができます ( .Sx 拡張引数 セクションを参照)。 いくつかのマクロは引用符に囲まれた引数を扱うことができます (下の .Sx 引数に空白文字を指定する セクションを参照)。 .Pp .Nm \-mdoc での一般テキスト領域とマニュアル領域のほとんどのマクロは特別であり、 その引数のリストは呼び出し可能なマクロ名として .Em 解析 されます。 これは一般テキスト領域またはマニュアル領域のマクロ名に一致し、 呼び出し可能であると判断された引数リストの中の引数は、 実行されるか、それが処理される時に呼び出されることを意味しています。 この場合、引数はマクロ名にも関わらず、 .Ql \&\. (ドット) で前置されません。 このようにしてたくさんのマクロを入れ子にすることができます。 例えばオプションマクロ .Ql \&.Op はフラグマクロ .Ql \&Fl と引数マクロ .Ql \&Ar を .Em 呼び出して 、オプションのフラグを引数とともに指定することができます。 .Bl -tag -width "\&.Op \&Fl s \&Ar bytes" -offset indent .It Op Fl s Ar bytes は .Li \&.Op \&Fl s \&Ar bytes によって生成される .El .Pp 2 文字からなる文字列をマクロ名として解釈されないようにするには、 その文字列の前にエスケープシーケンス .Ql \e& を指定します。 .Bl -tag -width "\&.Op \&Fl s \&Ar bytes" -offset indent .It Op \&Fl s \&Ar bytes は .Li \&.Op \e&Fl s \e&Ar bytes によって生成される .El .Pp ここで文字列 .Ql \&Fl と .Ql \&Ar はマクロとして解釈されていません。 本ドキュメントと関連のクイックリファレンスマニュアル .Xr mdoc 7 を通して、 引数リストが呼び出し可能な引数として解析されるマクロは「解析される」、 引数リストから呼び出されることができるマクロは「呼び出し可能」 と表現します。 .Nm \-mdoc のほとんどすべてのマクロは解析されるのですから、これは技術的には .Em 不謹慎な ことですが、常にマクロを「呼び出し可能である」とか「他のマクロを 呼び出すことができる」と表現するのは面倒なことであるため、 「解析される」という用語が使われています。 .Ss 引数に空白文字を指定する ひとつ以上の空白文字を含む文字列をひとつの引数として指定したい場合が よくあります。 これは 9 個を越える引数を指定できないという制限に対処したり、 引数のリストにある特有な配置をおこなうことが必要なマクロに引数を指定するような 場合に必要となることがあります。 たとえば、関数マクロ .Ql \&.Fn では最初の引数は関数名であり、残りの引数が関数のパラメータであることが 必要です。 .Tn "ANSI C" の括弧で囲まれたパラメータリストにおける関数のパラメータの宣言の規定に より、各パラメータは最低でも 2 語の文字列となります。 たとえば .Fa int foo のようになります。 .Pp 空白を含む引数を指定するには 2 通りの方法があります。 .Em 実装における注 : 解析の前に個々の引数を再割り当てすることによって、 引用符の間に空白を含めて渡すのが最も便利な方法なのですが、 .Tn AT&T の .Xr troff のすべてのマクロを実装するには処理速度およびメモリ使用量の点で かなり高価な方法となります。 .Xr groff では高価な処理にはなりませんが、移植性のため、この方法は 空白を含めることが最も必要である以下のマクロだけに限っています。 .Pp .Bl -tag -width 4n -offset indent -compact .It Li \&Cd コンフィギュレーション宣言 (セクション 4 の .Sx SYNOPSIS ) .It Li \&Bl リスト開始 (幅指定用) .It Li \&Em テキスト強調 .It Li \&Fn 関数 (セクション 2 と 4) .It Li \&It リストの項目 .It Li \&Li リテラルテキスト .It Li \&Sy シンボリックテキスト .It Li \&%B 書籍のタイトル .It Li \&%J 定期刊行物のタイトル .It Li \&%O 参照の追加的な注釈 .It Li \&%R 報告書のタイトル (参照の中で) .It Li \&%T 書籍もしくは定期刊行物の中の記事のタイトル .El .Pp 空白を含む文字列を渡すのに、固定空白、すなわち詰め込まれない空白文字 .Ql \e\ を使う方法があります。すなわち、空白の前にエスケープ文字 .Ql \e を指定する方法です。 この方法はどのマクロでも使うことができますが、1 行を越える長さのテキストの 調整の邪魔になるという副作用があります。 .Xr troff では固定空白は他の印刷可能文字と同様に扱われ、通常期待されるように、 そこで文字列を空白や改行で分けることを行なわなくなります。 この方法は文字列が行の境界をまたがないであろう場合に有用です。 例えば、 .Bl -tag -width "fetch(char *str)" -offset indent .It Fn fetch char\ *str は .Ql \&.Fn fetch char\e *str によって生成される .It Fn fetch "char *str" は .Ql \&.Fn fetch "\\*qchar *str\\*q" でも生成される .El .Pp もし .Ql \e や引用符が省かれると、 .Ql \&.Fn は引数を 3 つ取り、その結果は .Pp .Dl Fn fetch char *str .Pp となります。 .Pp パラメータのリストが改行の境界をまたぐ場合に何がおこるかについては、 .Sx バグ のセクションを参照してください。 .Ss 行末の空白文字 .Xr troff は行末に空白文字があると混乱してしまうことがあります。 <空白><行末>の文字シーケンスからすべての空白文字を取り除くのは良い予防策です。 どうしても行末に空白文字をおく必要性が出てきた場合は、 詰め込まれない空白とエスケープ文字 .Ql \e& を使用することによって対応できます。 例えば、 .Ql string\e\ \e& のようにします。 .Ss 特殊文字のエスケープ 改行 .Ql \en のような特殊文字は .Ql \e を .Ql \ee で置き換える (すなわち .Ql \een とする) ことによって、バックスラッシュを残して扱うことができます。 .Sh MAN ページの分析 man ページの本文はファイル .Pa /usr/share/misc/mdoc.template の基本テンプレートを使って容易に作り上げることができます。 .Pa /usr/share/examples/mdoc にはいくつかのサンプルの man ページが収められています。 .Pp .Ss マニュアルページのテンプレート .Bd -literal -offset indent \&.\e" 以下の項目はすべての man ページで必要な項目です。 \&.Dd 月\ 日, 年 \&.Os オペレーティングシステム [バージョン/リリース] \&.Dt ドキュメントタイトル [セクション番号] [ボリューム] \&.Sh NAME \&.Nm 名称 \&.Nd 名称の 1 行での説明 \&.Sh SYNOPSIS \&.Sh DESCRIPTION \&.\e" 以下の項目については、必要に応じてコメントをはずして使用してく \&.\e" ださい。 \&.\e" .Sh IMPLEMENTATION NOTES \&.\e" この次の項目はセクション 2, 3, 9 でのみ必要な、関数の \&.\e" 戻り値です。 \&.\e" .Sh RETURN VALUES \&.\e" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。 \&.\e" .Sh ENVIRONMENT \&.\e" .Sh FILES \&.\e" .Sh EXAMPLES \&.\e" 次の項目はセクション 1, 6, 7, 8, 9 でのみ必要なものです。 \&.\e" ((シェルへの)コマンドの戻り値と fprintf/stderr の型の診断 \&.\e" です。) \&.\e" .Sh DIAGNOSTICS \&.\e" .Sh COMPATIBILITY \&.\e" 次の項目はセクション 2, 3, 9 でのみ必要な、エラーハンドリングと \&.\e" シグナルハンドリングです。 \&.\e" .Sh ERRORS \&.\e" .Sh SEE ALSO \&.\e" .Sh STANDARDS \&.\e" .Sh HISTORY \&.\e" .Sh AUTHORS \&.\e" .Sh BUGS .Ed .Pp このテンプレートにおける最初の項目はマクロ .Pq Li \&.Dd , \&.Os , \&.Dt であり、それぞれドキュメントの日付、 man ページもしくは題材となっているソースの開発や変更のベースとなった オペレーティングシステム、 .Pq Em 大文字で man ページタイトルをそのページが属するマニュアルのセクション番号とともに 指定したもの、となっています。 これらのマクロはそのページを識別するものであり、後述の .Sx タイトルマクロ で議論されています。 .Pp テンプレート中の残りの項目はセクションのヘッダ .Pq Li \&.Sh であり、それらのうち .Sx NAME と .Sx SYNOPSIS と .Sx DESCRIPTION は必須項目です。 これらのヘッダについては .Sx マニュアル領域 を説明した後、 .Sx ページ構造領域 で議論されます。 いくつかのコンテントマクロはページレイアウトマクロの説明に 使われていますので、ページレイアウトマクロの前にコンテントマクロについて 読むことを推奨します。 .Sh タイトルマクロ タイトルマクロはページ構造領域の最初の部分ですが、man ページを 前日に書き始めたいという人のために、最初に分けて記述されます。 3 つのヘッダマクロでドキュメントか man ページのタイトル、 オペレーティングシステム、および原著の日付を指定します。 これらのマクロはドキュメントの最初に一度だけ呼び出されるもので、 ヘッダとフッタを構成するためだけに使用されます。 .Bl -tag -width 6n .It Li \&.Dt ドキュメントタイトル セクション番号 [ボリューム] ドキュメントタイトルは man ページの主題であり、troff の制限により .Tn 大文字 でなければいけません。 セクション番号は 1,\ ...,\ 9 となり、これが指定されると ボリュームタイトルを省略してもかまいません。 .Pp .Tn FreeBSD では、次のセクション番号と解説について後述します: .Pp .Bl -column SMM -offset indent -compact .It Li 1 FreeBSD General Commands Manual .It Li 2 FreeBSD System Calls Manaul .It Li 3 FreeBSD Library Calls Manual .It Li 4 FreeBSD Kernel Interfaces Manual .It Li 5 FreeBSD File Formats Manual .It Li 6 FreeBSD Games Manual .It Li 7 FreeBSD Miscellaneous Information Manual .It Li 8 FreeBSD System Manager's Manual .It Li 9 FreeBSD Kernel Developers Guide .El .Pp ボリュームタイトルは任意のものか、以下のうちいずれかになります。 .\" .Cl .\" USD UNIX User's Supplementary Documents .\" .Cl .\" PS1 UNIX Programmer's Supplementary Documents .Pp .Bl -column SMM -offset indent -compact .It Li AMD UNIX Ancestral Manual Documents .It Li SMM UNIX System Manager's Manual .It Li URM UNIX Reference Manual .It Li PRM UNIX Programmer's Manual .El .Pp デフォルトのボリュームは セクション 1, 6, 7 では .Li URM 、セクション 8 では .Li SMM 、セクション 2, 3, 4, 5 では .Li PRM となっています。 .\" .Cl .\" MMI UNIX Manual Master Index .\" .Cl .\" CON UNIX Contributed Software Manual .\" .Cl .\" LOC UNIX Local Manual .It Li \&.Os オペレーティングシステム リリース番号 オペレーティングシステムの名称には一般的な頭字語 (略称) を使わなければなりません。 例えば、 .Tn BSD や .Tn FreeBSD や .Tn ATT といったものです。 リリース番号は、例えば4.3, 4.3+Tahoe, V.3, V.4 というような各システム での標準のリリースの命名法を使用します。 認識されない引数はページのフッタ中に記述された通りに表示されます。 以下にフッタの典型的な例を示します。 .Pp .Dl \&.Os BSD 4.3 .Pp や .Dl \&.Os FreeBSD 2.2 .Pp ローカルで作られたセットの例。 .Pp .Dl \&.Os CS Department .Pp Berkeley でのデフォルトである、引数なしの .Ql \&.Os はサイト固有のファイル .Pa /usr/share/tmac/mdoc/doc-common において .Tn BSD として定義されています。 これは実際には .Tn LOCAL として定義すべきです。 .Ql \&.Os マクロがない場合は、ページの左下角はみにくくなるであろうことに 注意してください。 .It Li \&.Dd 月 日, 年 日付は次のようにフォーマルな形式で記述しなければなりません。 .Pp .ne 5 .Dl January 25, 1989 .El .Sh マニュアル領域および一般テキスト領域の紹介 .Ss この名前には何が...? マニュアル領域のマクロ名はコマンドやサブルーチン、それに関連ファイルを 説明するために使われている日常のインフォーマルな言葉から取られています。 この言葉と少し違うバリエーションのものが man ページを書く上での 3 つの異なった面を記述するのに使われます。 最初のものは、 .Nm \-mdoc マクロ使用方法の説明です。 2 番目のものは .Nm \-mdoc マクロを用いた .Ux コマンドの記述です。 3 番目はコマンドを通常の言葉の感覚でユーザに示したものです。 これはすなわち、man ページのテキスト中でのコマンドの議論となります。 .Pp 最初のケースでは、 .Xr troff 1 マクロはそれ自身、一種のコマンドとなっています。 troff コマンドは一般的に以下のような形式をとります。 .Bd -filled -offset indent \&.Va argument1 argument2 ... argument9 .Ed .Pp .Ql \&.Va はマクロコマンドもしくは要求を示しており、それに続くものは すべて引数として処理されます。 2 番目のケースでは、コンテントマクロを使用する .Ux コマンドの記述がもう少し含まれます。 典型的な .Sx SYNOPSIS コマンド行はこのように表示されます。 .Bd -filled -offset indent .Nm filter .Op Fl flag .Ar infile outfile .Ed .Pp ここで .Nm filter はコマンド名であり、角括弧で囲まれた文字列 .Fl flag は .Em フラグ 引数で、これは角括弧で囲むことによってオプションであることを示しています。 .Nm \-mdoc の用語では .Ar infile と .Ar outfile は .Em 引数 と称されています。 上の例のフォーマットを行なったマクロは以下のものです。 .Bd -literal -offset indent \&.Nm filter \&.Op \&Fl flag \&.Ar infile outfile .Ed .Pp 3 番目のケースでは、コマンドの説明や構文に上記の例の両方が使われ、 さらに細かい記述が追加されるでしょう。 上の例での引数 .Ar infile と .Ar outfile は .Em オペランド もしくは .Em ファイル引数 として参照されます。 コマンド行の引数のリストはかなり長くなる場合もあります。 .Bl -tag -width make -offset indent .It Nm make .Op Fl eiknqrstv .Op Fl D Ar variable .Op Fl d Ar flags .Op Fl f Ar makefile .Bk -words .Op Fl I Ar directory .Ek .Op Fl j Ar max_jobs .Op Ar variable=value .Bk -words .Op Ar target ... .Ek .El .Pp ここではコマンド .Nm make について記述しており、 .Ar makefile をフラグ .Fl f の引数としています。 またオプションのファイルオペランド .Ar target についても議論しています。 言葉での説明では、こういった詳細な記述が混乱を防いでくれますが、 .Nm \-mdoc パッケージにはフラグ .Em への 引数のためのマクロがありません。 その代わりに .Ar target のようなオペランドやファイル引数に使われる引数マクロ .Ql \&Ar が .Ar variable のようなフラグへの引数にも使われます。 この make コマンド行は以下の指定により生成されています。 .Bd -literal -offset indent \&.Nm make \&.Op Fl eiknqrstv \&.Op Fl D Ar variable \&.Op Fl d Ar flags \&.Op Fl f Ar makefile \&.Op Fl I Ar directory \&.Op Fl j Ar max_jobs \&.Op Ar variable=value \&.Bk -words \&.Op Ar target ... \&.Ek .Ed .Pp マクロ .Ql \&.Bk と .Ql \&.Ek は .Sx キープ セクションにおいて解説されています。 .Ss 一般的な構文 マニュアル領域と一般テキスト領域のマクロはいくつかの小さな違い があるものの、同様な構文を使用しています。 .Ql \&.Ar , .Ql \&.Fl , .Ql \&.Nm , .Ql \&.Pa は引数なしで呼び出された時のみ異なります。 .Ql \&.Fn と .Ql \&.Xr は引数のリストの順番が異なります。 マクロ .Ql \&.Op と .Ql \&.Fn には入れ子の制限があります。 すべてのコンテントマクロが句読点を認識し、正しく扱うには、 各々の句読点文字が先行する空白で分離されている必要があります。 以下のように指定されている場合、 .Pp .Dl \&.Li sptr, ptr), .Pp その結果は以下のようになります。 .Pp .Dl Li sptr, ptr), .Pp ここでは句読点は認識されずすべての出力はリテラルなフォントで行なわれて います。句読点が空白文字で区切られている場合、 .Pp .Dl \&.Li "sptr , ptr ) ," .Pp 結果は以下のようになります。 .Pp .Dl Li sptr , ptr ) , .Pp 今度は句読点が認識され、出力はデフォルトのフォントで行なわれ リテラルフォントの文字列と区別されています。 .Pp .Ql \e& でエスケープすることによって句読点文字の特別な意味を取り除くことができます。 .Xr troff はマクロ言語としての限界から、数学、論理学、もしくは以下の引用符の 集合のメンバを含んだ文字列を表現するのは困難です。 .Bd -literal -offset indent-two \&{+,\-,/,*,\&%,<,>,<=,>=,=,==,&,`,',"} .Ed .Pp .Xr troff が文字によって示唆されている操作もしくは評価を実際に行なっていることが、 その問題の原因となっています。 .Ql \e& でこれらをエスケープすることによって、これらの文字が予期せずに 評価されることを防止することができます。 最初のコンテントマクロは、以下の .Ql \&.Ad において、その典型的な構文が示されています。 .Sh マニュアル領域 .Ss アドレスマクロ アドレスマクロは addr1[,addr2[,addr3]] の形式からなるアドレスを識別します。 .Pp .Dl 使い方: .Ad address ... \*(Pu .Bl -tag -width ".Ad f1 , f2 , f3 :" -compact -offset 14n .It Li \&.Ad addr1 .Ad addr1 .It Li \&.Ad addr1\ . .Ad addr1 . .It Li \&.Ad addr1\ , file2 .Ad addr1 , file2 .It Li \&.Ad f1\ , f2\ , f3\ : .Ad f1 , f2 , f3 : .It Li \&.Ad addr\ )\ )\ , .Ad addr ) ) , .El .Pp .Ql \&.Ad を引数なしで呼び出すのはエラーです。 .Ql \&.Ad は他のマクロから呼び出し可能で解析されます。 .Ss 作者名 .Ql \&.An マクロは文書化されている項目の作者の名前、もしくは実際の マニュアルページの作者の名前を指定するために使われます。 名前の情報の後のすべての引数は句読点として扱われます。 .Pp .Dl 使い方: .An author_name \*(Pu .Bl -tag -width ".An Joe Author ) ) ," -compact -offset 14n .It Li \&.An Joe\ Author .An Joe Author .It Li \&.An Joe\ Author\ , .An Joe\ Author , .It Li \&.An Joe\ Author\ \&Aq\ nobody@FreeBSD.ORG .An Joe Author Aq nobody@FreeBSD.ORG .It Li \&.An Joe\ Author\ )\ )\ , .An Joe Author ) ) , .El .Pp .Ql \&.An マクロは解析され、呼び出し可能です。 .Ql \&.An を引数なしで呼び出すのはエラーです。 .Ss 引数マクロ 引数マクロ .Ql \&.Ar はコマンド行の引数を参照する際に使用することができます。 .Pp .Dl 使い方: .Ar argument ... \*(Pu .Bl -tag -width ".Ar file1 file2" -compact -offset 15n .It Li \&.Ar .Ar .It Li \&.Ar file1 .Ar file1 .It Li \&.Ar file1\ . .Ar file1 . .It Li \&.Ar file1 file2 .Ar file1 file2 .It Li \&.Ar f1 f2 f3\ : .Ar f1 f2 f3 : .It Li \&.Ar file\ )\ )\ , .Ar file ) ) , .El .Pp .Ql \&.Ar が引数なしで呼び出されると、 .Ql Ar として扱われます。 .Ql \&.Ar マクロは解析され、呼び出し可能です。 .Ss コンフィギュレーション宣言 (セクション 4 のみ) .Ql \&.Cd マクロはセクション 4 のマニュアルにおいて、デバイスインタフェースの .Xr config 8 による宣言の説明に使われます。 このマクロは引用符 (2 重引用符のみ) で囲まれた引数を取ることができます。 .Pp .Bl -tag -width "device le0 at scode?" -offset indent .It Cd "device le0 at scode?" は .Ql ".Cd device le0 at scode?" によって生成されます。 .El .Ss コマンド修飾子 コマンド修飾子は .Ql \&.Cm マクロがすべての引数の前にダッシュ文字を付けないことを除いて、 .Ql \&.Fl (フラグ) コマンドと同じです。 伝統的にフラグはダッシュ文字に引き続いて指定されますが、 いくつかのコマンドやコマンドのサブセットはこの方法を使っていません。 コマンド修飾子はエディタコマンドのような対話的なコマンドでも 指定されることがあります。 .Sx フラグ のセクションを参照してください。 .Ss 定義済みの変数 インクルードファイルにおいて定義されている変数は .Ql \&.Dv マクロによって指定します。 .Pp .Dl 使い方: .Dv defined_variable ... \*(Pu .Bl -tag -width ".Dv MAXHOSTNAMELEN" -compact -offset 14n .It Li ".Dv MAXHOSTNAMELEN" .Dv MAXHOSTNAMELEN .It Li ".Dv TIOCGPGRP )" .Dv TIOCGPGRP ) .El .Pp .Ql \&.Dv を引数なしで呼び出すのはエラーです。 .Ql \&.Dv は解析され、呼び出し可能です。 .Ss errno (セクション 2 のみ) エラーマクロ .Ql \&.Er はセクション 2 のライブラリルーチンにおけるエラーの戻り値を指定します。 下記の 2 番目の例では .Ql \&.Er は一般テキスト領域マクロである .Ql \&.Bq (これはセクション 2 のマニュアルページで使われています) と共に使われています。 .Pp .Dl 使い方: .Er ERRNOTYPE ... \*(Pu .Bl -tag -width ".Bq Er ENOTDIR" -compact -offset 14n .It Li \&.Er ENOENT .Er ENOENT .It Li \&.Er ENOENT\ )\ ; .Er ENOENT ) ; .It Li \&.Bq \&Er ENOTDIR .Bq Er ENOTDIR .El .Pp .Ql \&.Er を引数なしで呼び出すのはエラーです。 .Ql \&.Er は解析され、呼び出し可能です。 .Ss 環境変数 .Ql \&.Ev マクロは環境変数を指定します。 .Pp .Dl 使い方: .Ev argument ... \*(Pu .Bl -tag -width ".Ev PRINTER ) ) ," -compact -offset 14n .It Li \&.Ev DISPLAY .Ev DISPLAY .It Li \&.Ev PATH\ . .Ev PATH . .It Li \&.Ev PRINTER\ )\ )\ , .Ev PRINTER ) ) , .El .Pp .Ql \&.Ev を引数なしで呼び出すのはエラーです。 .Ql \&.Ev は解析され、呼び出し可能です。 .Ss 関数の引数 .Ql \&.Fa マクロは関数の引数 (パラメータ) を マニュアルの .Sx SYNOPSIS のセクション外、もしくは .Sx SYNOPSIS のセクション内で参照する場合に使われます。 パラメータのリストが .Ql \&.Fn マクロでは長すぎる場合は、 囲って使うマクロ .Ql \&.Fo と .Ql \&.Fc を使わなければなりません。 .Ql \&.Fa は構造体のメンバを参照する場合にも使われます。 .Pp .Dl 使い方: .Fa function_argument ... \*(Pu .Bl -tag -width ".Fa d_namlen\ )\ )\ ," -compact -offset 14n .It Li \&.Fa d_namlen\ )\ )\ , .Fa d_namlen ) ) , .It Li \&.Fa iov_len .Fa iov_len .El .Pp .Ql \&.Fa を引数なしで呼び出すのはエラーです。 .Ql \&.Fa は解析され、呼び出し可能です。 .Ss 関数の宣言 .Ql \&.Fd マクロは .Sx SYNOPSIS セクションにおいて、セクション 2 または 3 の関数の説明で使われます。 .Ql \&.Fd マクロから他のマクロを呼び出すことはなく、他のマクロから呼び出すことも できません。 .Pp .Dl 使い方: .Fd include_file (or defined variable) .Pp .Sx SYNOPSIS セクションにおいて、関数がすでに示されていて改行が入っていない場合、 .Ql \&.Fd によって改行が挿入されます。 これによって前の関数呼び出しと次の関数の宣言の間に最適な行間が設定されます。 .Ss フラグ .Ql \&.Fl マクロはコマンド行のフラグを扱います。 フラグの前にはダッシュ .Ql \- が挿入されます。 対話的なコマンドのフラグでは、ダッシュがフラグの前には挿入されませんが、 .Ql \&.Cm (コマンド修飾子) マクロは、ダッシュを付けないことを除き、同じ働きをします。 .Pp .Dl 使い方: .Fl argument ... \*(Pu .Bl -tag -width ".Fl \-s \-t \-v" -compact -offset 14n .It Li \&.Fl .Fl .It Li \&.Fl cfv .Fl cfv .It Li \&.Fl cfv\ . .Fl cfv . .It Li \&.Fl s v t .Fl s v t .It Li \&.Fl -\ , .Fl - , .It Li \&.Fl xyz\ )\ , .Fl xyz ) , .El .Pp 引数なしで .Ql \&.Fl マクロを指定すると、標準入力/標準出力を意味するダッシュとなります。 ひとつのダッシュに .Ql \&.Fl マクロを使用すると、2 つダッシュとなることに注意して下さい。 .Ql \&.Fl マクロは解析され、呼び出し可能です。 .Ss 関数 (ライブラリルーチン) .Ql \&.Fn マクロは ANSI C の記法を規範としています。 .Bd -literal 使い方: .Fn [type] function [[type] parameters ... \*(Pu] .Ed .Bl -tag -width ".Fn .int align. .const * char *sptrsxx" -compact .It Li "\&.Fn getchar" .Fn getchar .It Li "\&.Fn strlen ) ," .Fn strlen ) , .It Li \&.Fn "\\*qint align\\*q" "\\*qconst * char *sptrs\\*q" , .Fn "int align" "const * char *sptrs" , .El .Pp .Ql \&.Fn を引数を指定せずに呼び出すのはエラーです。 .Ql \&.Fn マクロは解析され、呼び出し可能です。他のマクロの呼び出しは .Ql \&.Fn の呼び出しの終了を意味することに注意して下さい (閉じ括弧がその点で挿入されます)。 .Pp 9 個以上のパラメータをとる関数 (これは滅多にないことですが) では、 .Ql \&.Fo マクロ (関数オープン) と .Ql \&.Fc マクロ (関数クローズ) を .Ql \&.Fa (関数引数) と共に使って、この制限を回避することができます。 以下にその例を示します。 .Bd -literal -offset indent \&.Fo "int res_mkquery" \&.Fa "int op" \&.Fa "char *dname" \&.Fa "int class" \&.Fa "int type" \&.Fa "char *data" \&.Fa "int datalen" \&.Fa "struct rrec *newrr" \&.Fa "char *buf" \&.Fa "int buflen" \&.Fc .Ed .Pp これは以下のような結果になります。 .Bd -filled -offset indent .Fo "int res_mkquery" .Fa "int op" .Fa "char *dname" .Fa "int class" .Fa "int type" .Fa "char *data" .Fa "int datalen" .Fa "struct rrec *newrr" .Fa "char *buf" .Fa "int buflen" .Fc .Ed .Pp .Ql \&.Fo と .Ql \&.Fc マクロは解析され、呼び出し可能です。 .Sx SYNOPSIS セクションでは、関数は常に行の先頭から開始されます。 .Sx SYNOPSIS セクションにおいて、複数の関数が示されており、関数の型が示されない場合、 改行が挿入され、現在の関数名とその前の関数名の間に最適な改行量が設定されます。 現在、 .Ql \&.Fn は troff の行の長さに対して、語の境界をチェックしておらず、予期しない 場所で改行が挿入されてしまうことがあります。 これは近い将来修正されるでしょう。 .Ss 関数の型 このマクロは .Sx SYNOPSIS セクションで使うものです。 man ページ中の他の場所でも問題なく使うことができますが、 セクション 2 と 3 の .Sx SYNOPSIS セクションでカーネルの通常の形式で関数の型を示すことがこのマクロの目的です (このマクロは関数名が次の行に置かれるように改行を挿入します)。 .Pp .Dl 使い方: .Ft type ... \*(Pu .Bl -tag -width "\&.Ft struct stat" -offset 14n -compact .It Li \&.Ft struct stat .Ft struct stat .El .Pp .Ql \&.Ft は他のマクロからは呼び出せません。 .Ss 対話的なコマンド .Ql \&.Ic マクロは対話的なコマンド、もしくは内部コマンドを指定します。 .Pp .Dl 使い方: .Ic argument ... \*(Pu .Bl -tag -width ".Ic setenv , unsetenvxx" -compact -offset 14n .It Li \&.Ic :wq .Ic :wq .It Li \&.Ic do while {...} .Ic do while {...} .It Li \&.Ic setenv\ , unsetenv .Ic setenv , unsetenv .El .Pp .Ql \&.Ic を引数なしで呼び出すのはエラーです。 .Ql \&.Ic マクロは解析され、呼び出し可能です。 .Ss ライブラリ名 .Ql \&.Lb マクロは、関数がどのライブラリに組み込まれるかを指定します。 .Pp .Dl 使い方: .Lb argument ... \*(Pu .Pp .Ql \&.Lb マクロに対して使用可能な引数と結果は次の通りです: .Pp .Bl -tag -width "libnetgraph" -compact -offset indent .It Li "libc" .Lb libc .It Li "libc_r" .Lb libc_r .It Li "libcalendar" .Lb libcalendar .It Li "libcam" .Lb libcam .It Li "libcrypt" .Lb libcrypt .It Li "libdevstat" .Lb libdevstat .It Li "libdisk" .Lb libdisk .It Li "libedit" .Lb libedit .It Li "libfetch" .Lb libfetch .It Li "libipsec" .Lb libipsec .It Li "libipx" .Lb libipx .It Li "libkvm" .Lb libkvm .It Li "libm" .Lb libm .It Li "libmd" .Lb libmd .It Li "libnetgraph" .Lb libnetgraph .It Li "libposix1e" .Lb libposix1e .It Li "libskey" .Lb libskey .It Li "libusb" .Lb libusb .It Li "libutil" .Lb libutil .It Li "libvgl" .Lb libvgl .El .Ss 名称マクロ .Ql \&.Nm マクロは文書のタイトルやサブジェクト名を指定するために使われます。 このマクロは最初に呼び出された時の引数を覚えておくという特性を持っており、 それは常にそのページのサブジェクト名であるべきです。 引数なしで呼び出されると .Ql \&.Nm は作者の作業を少なくするためだけの目的で、最初の名称を出力します。 注: セクション 2 または 3 のドキュメントの関数名は .Sx NAME セクションにおいて .Ql \&.Nm で指定され、 .Sx SYNOPSIS セクションや残りのセクションでは .Ql \&.Fn で指定されます。 .Xr csh 1 での .Ql while コマンドのキーワードのような対話的なコマンドでは .Ql \&.Ic マクロを使うべきです。 .Ql \&.Ic はほとんど .Ql \&.Nm と同一ですが、 それが最初に使われたときの引数を記憶することはできません。 .Pp .Dl 使い方: .Nm argument ... \*(Pu .Bl -tag -width ".Nm mdoc.sample" -compact -offset 14n .It Li \&.Nm mdoc.sample .Nm mdoc.sample .It Li \&.Nm \e-mdoc .Nm \-mdoc . .It Li \&.Nm foo\ )\ )\ , .Nm foo ) ) , .It Li \&.Nm .Nm .El .Pp .Ql \&.Nm マクロは解析され、呼び出し可能です。 .Ss オプション .Ql \&.Op マクロはコマンド行の残りのすべての引数を オプションであることを示す角括弧で囲み、 末尾の句読点は角括弧の外に置きます。 .Ql \&.Oc マクロと .Ql \&.Oo マクロは複数行に渡って使うことができます。 .Pp .Dl 使い方: .Op options ... \*(Pu .Bl -tag -width ".Op Fl c Ar objfil Op Ar corfil ," -compact -offset indent .It Li \&.Op .Op .It Li ".Op Fl k" .Op Fl k .It Li ".Op Fl k ) ." .Op Fl k ) . .It Li ".Op Fl k Ar kookfile" .Op Fl k Ar kookfile .It Li ".Op Fl k Ar kookfile ," .Op Fl k Ar kookfile , .It Li ".Op Ar objfil Op Ar corfil" .Op Ar objfil Op Ar corfil .It Li ".Op Fl c Ar objfil Op Ar corfil ," .Op Fl c Ar objfil Op Ar corfil , .It Li \&.Op word1 word2 .Op word1 word2 .El .Pp .Ql \&.Oc マクロと .Ql \&.Oo マクロ: .Bd -literal -offset indent \&.Oo \&.Op \&Fl k \&Ar kilobytes \&.Op \&Fl i \&Ar interval \&.Op \&Fl c \&Ar count \&.Oc .Ed .Pp 出力結果: .Oo .Op Fl k Ar kilobytes .Op Fl i Ar interval .Op Fl c Ar count .Oc .Pp .Ql \&.Op と .Ql \&.Oc と .Ql \&.Oo マクロは解析され、呼び出し可能です。 .Ss パス名 .Ql \&.Pa マクロはパス名もしくはファイル名をフォーマットします。 .Pp .Dl 使い方: .Pa pathname \*(Pu .Bl -tag -width ".Pa /tmp/fooXXXXX ) ." -compact -offset 14n .It Li \&.Pa /usr/share .Pa /usr/share .It Li \&.Pa /tmp/fooXXXXX\ )\ . .Pa /tmp/fooXXXXX ) . .El .Pp .Ql \&.Pa マクロは解析され、呼び出し可能です。 .Ss 規格 .Ql \&.St マクロは、規格の短縮名称を正式名称に置換します。 .Pp .Dl 使い方: .St abbreviature .Pp 使用可能な .Dq 短縮名称/正式名称 の組は次の通りです: .Bl -tag -width "-p1003.2-92XX." -compact -offset indent .It Li "-ansiC" .St -ansiC .It Li "-ansiC-89" .St -ansiC-89 .It Li "-ieee754" .St -ieee754 .It Li "-iso8802-3" .St -iso8802-3 .It Li "-iso9899" .St -iso9899 .It Li "-iso9945-1" .St -iso9945-1 .It Li "-isoC" .St -isoC +.It Li "-isoC-99" +.St -isoC-99 .It Li "-p1003.1" .St -p1003.1 .It Li "-p1003.1-88" .St -p1003.1-88 .It Li "-p1003.1-90" .St -p1003.1-90 .It Li "-p1003.1b" .St -p1003.1b .It Li "-p1003.1b-93" .St -p1003.1b-93 .It Li "-p1003.1g" .St -p1003.1g .It Li "-p1003.2" .St -p1003.2 .It Li "-p1003.2-92" .St -p1003.2-92 .It Li "-susv2" .St -susv2 .It Li "-xpg3" .St -xpg3 .It Li "-xpg4" .St -xpg4 .It Li "-xpg4.2" .St -xpg4.2 .El .Ss 変数 一般的な変数への参照です。 .Pp .Dl 使い方: .Va variable ... \*(Pu .Bl -tag -width ".Va char s ] ) ) ," -compact -offset 14n .It Li \&.Va count .Va count .It Li \&.Va settimer , .Va settimer , .It Li \&.Va int\ *prt\ )\ : .Va int\ *prt ) : .It Li \&.Va char\ s\ ]\ )\ )\ , .Va char\ s ] ) ) , .El .Pp .Ql \&.Va を引数なしで呼び出すのはエラーです。 .Ql \&.Va マクロは解析され、呼び出し可能です。 .Ss マニュアルページのクロスリファレンス .Ql \&.Xr マクロは最初の引数にマニュアルページの名称を取り、もしあれば次の引数に セクションのページ数か句読点を取ります。 すべての残りの引数は句読点と見なされます。 .Pp .Dl 使い方: .Xr man_page [1,...,9] \*(Pu .Bl -tag -width ".Xr mdoc 7 ) ) ," -compact -offset 14n .It Li \&.Xr mdoc .Xr mdoc .It Li \&.Xr mdoc\ , .Xr mdoc , .It Li \&.Xr mdoc 7 .Xr mdoc 7 .It Li \&.Xr mdoc 7\ )\ )\ , .Xr mdoc 7 ) ) , .El .Pp .Ql \&.Xr マクロは解析され、呼び出し可能です。 .Ql \&.Xr を引数なしで呼び出すのはエラーです。 .Sh 一般テキスト領域 .Ss AT&T マクロ .Bd -literal -offset indent -compact 使い方: .At [v6 | v7 | 32v | V.1 | V.4] ... \*(Pu .Ed .Bl -tag -width ".At v6 ) ," -compact -offset 14n .It Li ".At" .At .It Li ".At v6 ." .At v6 . .El .Pp .Ql \&.At マクロは解析 .Em されず 、呼び出し .Em 不可能 です。 最大 2 つまでの引数を取ることができます。 .Ss BSD マクロ .Dl 使い方: .Bx [Version/release] ... \*(Pu .Bl -tag -width ".Bx 4.3 ) ," -compact -offset 14n .It Li ".Bx" .Bx .It Li ".Bx 4.3 ." .Bx 4.3 . .El .Pp .Ql \&.Bx マクロは解析され、呼び出し可能です。 .Ss FreeBSD/NetBSD/OpenBSD マクロ .Bd -literal -offset indent -compact 使い方: .Fx [ Version.release ] ... \*(Pu .Ed .Bl -tag -width ".Fx 2.2 ) ," -compact -offset 14n .It Li ".Fx 2.2 ." .Fx 2.2 . .El .Pp .Bd -literal -offset indent -compact 使い方: .Nx [ Version.release ] ... \*(Pu .Ed .Bl -tag -width ".Nx 1.4 ) ," -compact -offset 14n .It Li ".Nx 1.4 ." .Nx 1.4 . .El .Pp .Bd -literal -offset indent -compact 使い方: .Ox [ Version.release ] ... \*(Pu .Ed .Bl -tag -width ".Ox 2.5 ) ," -compact -offset 14n .It Li ".Ox 2.5 ." .Ox 2.5 . .El .Pp .Ql \&.Fx , .Ql \&.Nx , .Ql \&.Ox マクロは解析され、呼び出し可能です。 最大 2 つまでの引数を取ることができます。 .Ss UNIX マクロ .Dl 使い方: .Ux ... \*(Pu .Bl -tag -width ".Ux 4.3 ) ," -compact -offset 14n .It Li ".Ux" .Ux .El .Pp .Ql \&.Ux マクロは解析され、呼び出し可能です。 .Ss 囲い/クォートマクロ 囲いの概念はクォートと似たものです。 1 つ以上の文字列が引用符や括弧のような文字のペアで囲まれている オブジェクトを指します。 クォートと囲いという用語はこの文書を通して同じ意味で使われます。 ほとんどの 1 行の囲いマクロはクォート (quote) のヒントとするために、小文字の .Ql q で終了しますが、いくつかの例外があります。 各々の囲いマクロに対し、開始マクロと終了マクロのペアもあり、それぞれ小文字の .Ql o と .Ql c で終了します。 これらは 1 行以上のテキストに渡って使うことができますが、 入れ子にする場合に制限があります。 その中では 1 行形式のクォートマクロのみ使用することができます。 .Pp .ne 5 .Bd -filled -offset indent .Bl -column "クォート " "終了 " "開始 " "クォートされたリテラル " XX文字列XX .Em " クォート 終了 開始 機能 結果" \&.Aq .Ac .Ao カギ括弧による囲い <文字列> \&.Bq .Bc .Bo 角括弧による囲い [文字列] \&.Dq .Dc .Do 2 重引用符 ``文字列'' .Ec .Eo 囲い文字列 (XXによる) XX文字列XX \&.Pq .Pc .Po 括弧による囲い (文字列) \&.Ql クォートされたリテラル `st' または文字列 \&.Qq .Qc .Qo まっすぐな 2 重引用符 "文字列" \&.Sq .Sc .So 1 重引用符 `文字列' .El .Ed .Pp 下記の不正なマクロを除き、すべてのクォートマクロは解析され、呼び出し可能です。 句読点がひとつずつ置かれていて、スペースで区切られていれば、 すべてのクォートマクロは句読点を適切に扱います。 クォートマクロは開く句読点、閉じる句読点 (訳注: 句読点には括弧なども含みます) を調べ、 それが囲む文字列より前か後かを決めます。 これによって、ある程度の入れ子が可能になっています。 .Bl -tag -width xxx,xxxx .It Li \&.Ec , \&.Eo これらのマクロは各々開始および終了の文字列を最初の引数に取ります。 .It Li \&.Ql リテラルをクォートするマクロは .Xr troff では .Xr nroff と異なった処理を行ないます。 .Xr nroff でフォーマットされた場合、クォート指定されたリテラルは常にクォートされます。 .Xr troff でフォーマットされた場合は、アイテムの幅が固定幅文字 3 つ分より 狭い場合にのみクォートされます。 これはリテラル (固定幅) のフォントの変更があまり気づかれないものであるため、 短い文字列を良く見えるようにするためです。 .It Li \&.Pf プレフィックスマクロは呼び出し可能ではありませんが、解析されます。 .Bl -tag -width "(namexx" -offset indent .It Li ".Pf ( Fa name2" は .Pf ( Fa name2 となります。 .El .Pp .Ql \&.Ns (空白なし) マクロはサフィックス機能と同様の作用があります。 .El .Pp .ne 4 クォートの例: .Bl -tag -width ".Aq Pa ctype.h ) ,xxxxxxxx" -compact -offset indent .It Li \&.Aq .Aq .It Li \&.Aq \&Ar ctype.h\ )\ , .Aq Ar ctype.h ) , .It Li \&.Bq .Bq .It Li \&.Bq \&Em Greek \&, French \&. .Bq Em Greek , French . .It Li \&.Dq .Dq .It Li ".Dq string abc ." .Dq string abc . .It Li ".Dq \'^[A-Z]\'" .Dq \'^[A-Z]\' .It Li "\&.Ql man mdoc" .Ql man mdoc .It Li \&.Qq .Qq .It Li "\&.Qq string ) ," .Qq string ) , .It Li "\&.Qq string Ns )," .Qq string Ns ), .It Li \&.Sq .Sq .It Li "\&.Sq string .Sq string .El .Pp 囲いマクロの入れ子についての良い例については、 オプションマクロ .Ql \&.Op を参照してください。 このマクロは上でリストされているような囲いマクロと同じベースの上に 作られています。 拡張引数リストマクロ .Ql \&.Xo と .Ql \&.Xc もまた同じルーチンをベースに作られており、 .Nm \-mdoc マクロの使い方の非常に良い例となっています。 .Ss no\-op もしくは通常テキストマクロ .Ql \&.No マクロはマクロコマンド行において、コンテントマクロの構文形式に従うが、 フォーマットされては .Em ならない 単語をハックするものです。 .Ss 空白なしマクロ .Ql \&.Ns マクロはマクロ間での不要な空白を除去します。 これはフラグと引数の間に空白を含まない古いスタイルの引数リストを使う場合に 便利です。 .Bl -tag -width ".Op Fl I Ns Ar directoryxx" -offset indent .It Li ".Op Fl I Ns Ar directory" これは以下の結果になります。 .Op Fl I Ns Ar directory .El .Pp 注: .Ql \&.Ns マクロは他のマクロ名が続かなければ、スペースを除去したあとに .Ql \&.No マクロを常に起動します。 .Ql \&.Ns マクロは解析され、呼び出し可能です。 .Ss セクションのクロスリファレンス .Ql \&.Sx マクロは同一文書内でのセクションのヘッダへの参照を指定します。 これは解析され、呼び出し可能です。 .Pp .Bl -tag -width "Li \&.Sx FILES" -offset 14n .It Li \&.Sx FILES .Sx FILES .El .Ss 参考文献と引用 以下のマクロは多少なりとも参考文献を扱えるようにと意図したものです。 これらのマクロは、せいぜい参照スタイルの参考文献のサブセットを手動で 作成しやすくする程度です。 .Pp .Bl -tag -width 6n -offset indent -compact .It Li ".Rs" 参考文献の開始。 改行を挿入してから、参考文献の終了マクロが読み込まれるまで 参考文献の情報を収集する。 .It Li ".Re" 参考文献の終了。 参考文献が表示される。 .It Li ".%A" 参考文献の作者名。1 回の呼び出しにつき、作者名をひとつ指定する。 .It Li ".%B" 書籍のタイトル。 .It Li ".\&%C" 市 / 場所。 .It Li ".\&%D" 日付。 .It Li ".%J" 定期刊行物の名称。 .It Li ".%N" 発行番号。 .It Li ".%O" 追加情報。 .It Li ".%P" ページ番号。 .It Li ".%R" 報告書の名称。 .It Li ".%T" 記事のタイトル。 .It Li ".%V" 巻数。 .El .Pp .Ql % で始まるマクロは呼び出し不可能ですが、 呼び出し側に戻る商標名マクロだけは解析されます。 (現時点では予期できないことです。) 商標名のみ解析されるのは .Xr troff Ns / Ns Xr ditroff の出力をきれいにするためです。 .Ss 戻り値 .Ql \&.Rv マクロは .Sx RETURN VALUES のセクションで使うテキストを生成します。 .Pp .Dl 使い方: .Rv [-std function] .Pp .Ql \&.Rv -std atexit これは以下のテキストを生成します。 .Pp .Rv -std atexit .Pp .Fl std オプションはセクション 2 と 3 のマニュアルページでのみ有効です。 .Ss 商標名 (頭字語とタイプ名) 商標名マクロは一般的に長さが 2 文字を越えるすべてが大文字の単語用 に使われる小さな大文字のマクロです。 .Pp .Dl 使い方: .Tn symbol ... \*(Pu .Bl -tag -width ".Tn ASCII" -compact -offset 14n .It Li \&.Tn DEC .Tn DEC .It Li \&.Tn ASCII .Tn ASCII .El .Pp .Ql \&.Tn マクロは解析され、他のマクロから呼び出し可能です。 .Ss 拡張引数 .Ql \&.Xo と .Ql \&.Xc マクロでマクロの境界における引数リストを拡張することができます。 引数リストは .Ql \&.Op のようなすべての引数が 1 行中に指定されていることを前提としている マクロの中では行に渡って拡張することができません。 .Pp 以下に空白モードマクロをスペーシングをオフにするために使った .Ql \&.Xo での例を示します。 .Bd -literal -offset indent \&.Sm off \&.It Xo Sy I Ar operation \&.No \een Ar count No \een \&.Xc \&.Sm on .Ed .Pp これは以下のような結果になります。 .Bd -filled -offset indent .Bl -tag -width flag -compact .Sm off .It Xo Sy I Ar operation .No \en Ar count No \en .Xc .Sm on .El .Ed .Pp 例をもうひとつ: .Bd -literal -offset indent \&.Sm off \&.It Cm S No \&/ Ar old_pattern Xo \&.No \&/ Ar new_pattern \&.No \&/ Op Cm g \&.Xc \&.Sm on .Ed .Pp これは以下のような結果になります。 .Bd -filled -offset indent .Bl -tag -width flag -compact .Sm off .It Cm S No \&/ Ar old_pattern Xo .No \&/ Ar new_pattern .No \&/ Op Cm g .Xc .Sm on .El .Ed .Pp 囲いマクロを使った .Ql \&.Xo の他の例: 変数の値をテストして下さい。 .Bd -literal -offset indent \&.It Xo \&.Ic .ifndef \&.Oo \e&! Oc Ns Ar variable \&.Op Ar operator variable ... \&.Xc .Ed .Pp 結果は以下の通りです。 .Bd -filled -offset indent .Bl -tag -width flag -compact .It Xo .Ic .ifndef .Oo \&! Oc Ns Ar variable .Op Ar operator variable ... .Xc .El .Ed .Pp 上のすべての例では .Ql \&.It (リスト項目) マクロの引数リストに .Ql \&.Xo マクロを使用しています。 拡張マクロが使われることはあまりありません。 使われるとすれば、リスト項目の引数リストを拡張する場合です。 残念なことに、これが拡張マクロが最も懲り性であるところでもあります。 最初の 2 つの例では、スペーシングはオフになっています。 3 番目では、ある箇所にはスペーシングを入れることが望ましいのですが、 出力全体に入れたいわけではありません。 そのような状況でこれらのマクロが適切に動作するためには、 .Ql \&.Xo と .Ql \&.Xc マクロが 3 番目の例にあるように指定されていることを確認してください。 .Ql \&.Xo マクロが置かれた .Ql \&.It の引数リストに他のものが置かれると、スペーシングがどうなるかは予測不可能です。 この場合、 .Ql \&.Ns (空白なしマクロ) は行中の最初もしくは最後のマクロに指定してはいけません。 現在 .Bx でリリースされている 900 のマニュアルページ (実際のページでは約 1500 ページ) のうち 15 のマニュアルページでのみしか .Ql \&.Xo が使われていません。 .Sh ページ構造領域 .Ss セクションヘッダ 以下にリストされている、最初の 3 つのセクションヘッダマクロ .Ql \&.Sh はすべての man ページで必須のものです。 残りのセクションヘッダはマニュアルページの作者の裁量において、 推奨されているものです。 .Ql \&.Sh マクロは 9 つまでの引数を取ることができます。 これは解析されますが、呼び出し不可能です。 .Bl -tag -width ".Sh SYNOPSIS" .It \&.Sh NAME .Ql \&.Sh NAME (訳注: 名称) マクロは必須のものです。 これが指定されていないと、ヘッダとフッタ、それにデフォルトの ページレイアウトが設定されず、結果はかなり好ましくないものになるでしょう。 .Sx NAME セクションは最低 3 つの項目からなります。 最初のものは名称マクロ .Ql \&.Nm であり、man ページのサブジェクトとなります。 2 番目のものは名称説明マクロ .Ql \&.Nd であり、サブジェクト名を 3 つめの項目、 すなわちその名称の説明と分離します。 説明に割り当てられるスペースは小さいものですので、 できるだけ簡潔で分かりやすいものでなければなりません。 .It \&.Sh SYNOPSIS .Sx SYNOPSIS (訳注: 書式) セクションはその man ページのサブジェクトとなっている項目の 典型的な使用法を説明します。 必須のマクロは .Ql ".Nm" , .Ql ".Cd" , .Ql ".Fn" のいずれかです。 (他には .Ql ".Fo" , .Ql ".Fc" , .Ql ".Fd" , .Ql ".Ft" のマクロも必要な場合があります。) 関数名マクロ .Ql ".Fn" はセクション 2 と 3 のマニュアルページにおいて必須のもので、 コマンドと一般名称マクロ .Ql \&.Nm はセクション 1, 5, 6, 7, 8 で必須の項目です。 セクション 4 のマニュアルでは .Ql ".Nm" か .Ql ".Fd" 、もしくはコンフィギュレーションデバイス使用法マクロ .Ql ".Cd" が必要です。 その他のいくつかのマクロが下に示すような書式行を生成するために必要なこと があります。 .Pp .Bd -filled -offset indent .Nm cat .Op Fl benstuv .Op Fl .Ar .Ed .Pp 以下のマクロが使われています。 .Pp .Dl \&.Nm cat .Dl \&.Op \&Fl benstuv .Dl \&.Op \&Fl .Dl \&.Ar .Pp .Sy 注 : マクロ .Ql \&.Op , .Ql \&.Fl , .Ql \&.Ar はパイプの文字 .Ql \*(Ba を認識し、下記のようなコマンド行 .Pp .Dl ".Op Fl a | Fl b" .Pp はうまくいきません。 .Xr troff は通常 \*(Ba を特別のオペレータとして解釈します。 この他で \*(Ba が使える場合については .Sx 定義済みの文字列 セクションを参照して下さい。 .It \&.Sh DESCRIPTION .Sx DESCRIPTION (訳注: 解説) セクションでの最初のテキストは、ほとんどの場合ではそのコマンド、 関数もしくはファイルについての短い段落で、オプションの構文リストと それぞれの説明がそれに続きます。 そのようなリストを作成するには リスト開始マクロ .Ql \&.Bl 、リスト項目マクロ .Ql \&.It 、リスト終了マクロ .Ql \&.El を使います (後述の .Sx リストと列 セクションを参照)。 .El .Pp 以下の .Ql \&.Sh のセクションヘッダはマニュアルページの好ましいレイアウトの一部であり、 一貫性を保つために適切に使われなければなりません。 これらは使われる順番にリストされています。 .Bl -tag -width 書式 .It \&.Sh ENVIRONMENT (訳注: 環境変数) .Sx ENVIRONMENT セクションは関連する環境変数を明らかにし、 それらの振舞や使用方法を示します。 .It \&.Sh EXAMPLES (訳注: 使用例、実行例) 使用例、実行例を作成するには様々な方法があります。 詳細については、下の .Sx 例示とディスプレイ のセクションを参照してください。 .It \&.Sh FILES (訳注: 関連ファイル) man ページのサブジェクトによって使用されるか生成されるファイルで、 .Sx FILES のセクション中でマクロ .Ql \&.Pa によってリストされます。 .It \&.Sh SEE ALSO (訳注: 関連項目) .Sx SEE ALSO セクションには、その man ページの題材に関する資料への参照と 他の関連する man ページへのクロスリファレンスが記載されます。 クロスリファレンスは .Ql \&.Xr マクロによって指定されます。 .Sx SEE ALSO セクションでのクロスリファレンスはセクション番号順に並べ、 セクション中ではカンマで区切ってアルファベット順に並べなければなりません。 以下に例を示します。 .Pp .Xr ls 1 , .Xr ps 1 , .Xr group 5 , .Xr passwd 5 . .Pp ここで参考スタイルである .Xr refer 1 は適応されていません。 .It \&.Sh STANDARDS (訳注: 規格) コマンドやライブラリ関数やファイルが、 .St -p1003.2 や .St -ansiC のような特定の実装によるものであれば、ここで記述します。 もしコマンドがどの規格にも基づいていなければ、その歴史は .Sx HISTORY のセクションで説明されなければなりません。 .It \&.Sh HISTORY (訳注: 歴史) 特定の規格に基づいていないコマンドは、 このセクションでその歴史の概要が説明されるべきです。 .It \&.Sh AUTHORS (訳注: 作者) クレジットが必要であれば、ここで入れます。 人物名を指定するには .Ql \&.An マクロを使用すべきです。 .It \&.Sh DIAGNOSTICS (訳注: 診断) コマンドからの診断はこのセクションに入れます。 .It \&.Sh ERRORS (訳注: エラー) 特定のエラーハンドリング、特にライブラリ関数 (man ページのセクション 2, 3, 9) でのエラーハンドリングは、ここで説明します。 .Ql \&.Er マクロが errno を記述するために使われます。 .It \&.Sh BUGS (訳注: バグ) あきらかな問題はここで記述します。 .El .Pp ユーザ指定の .Ql \&.Sh セクションを追加することができます。 たとえば、このセクションは以下のように設定されています。 .Bd -literal -offset 14n \&.Sh ページ構造領域 .Ed .Ss 段落と行スペース .Bl -tag -width 6n .It \&.Pp .Ql \&.Pp 段落コマンド は必要な場合に行スペースを指定するために使われます。 このマクロは .Ql \&.Sh マクロや .Ql \&.Ss マクロのあと、それに .Ql \&.Bl マクロの前では必要ありません。 ( .Ql \&.Bl マクロは -compact フラグが指定されていなければ、縦方向の距離を宣言します )。 .El .\" This worked with version one, need to redo for version three .\" .Pp .\" .Ds I .\" .Cw (ax+bx+c) \ is\ produced\ by\ \& .\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\& .\" .Cl Cx \t\t .\" .Li \&.Cx\ ( .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va ax .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy \+ .\" .Cx .\" .Cl Cx \&(\& .\" .Va ax .\" .Cx + .\" .Va by .\" .Cx + .\" .Va c ) .\" .Cx \t .\" .Em is produced by .\" .Cx \t .\" .Li \&.Va by .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy \+ .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va c ) .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx .\" .Cx .\" .Cw .\" .De .\" .Pp .\" This example shows the same equation in a different format. .\" The spaces .\" around the .\" .Li \&+ .\" signs were forced with .\" .Li \e : .\" .Pp .\" .Ds I .\" .Cw (ax\ +\ bx\ +\ c) \ is\ produced\ by\ \& .\" .\".Cw (ax+bx+c) \&.Va_by_) \&_and_\& \&[?/]m_b1_e1_f1[?/]\& .\" .Cl Cx \t\t .\" .Li \&.Cx\ ( .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va a .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy x .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx \e\ +\e\ \e& .\" .Cx .\" .Cl Cx \&(\& .\" .Va a .\" .Sy x .\" .Cx \ +\ \& .\" .Va b .\" .Sy y .\" .Cx \ +\ \& .\" .Va c ) .\" .Cx \t .\" .Em is produced by .\" .Cl Cx \t\t .\" .Li \&.Va b .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Sy y .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx \e\ +\e\ \e& .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Va c ) .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx .\" .Cx .\" .Cw .\" .De .\" .Pp .\" The incantation below was .\" lifted from the .\" .Xr adb 1 .\" manual page: .\" .Pp .\" .Ds I .\" .Cw \&[?/]m_b1_e1_f1[?/]\& is\ produced\ by .\" .Cl Cx \t\t .\" .Li \&.Cx Op Sy ?/ .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Nm m .\" .Cx .\" .Cl Cx Op Sy ?/ .\" .Nm m .\" .Ad \ b1 e1 f1 .\" .Op Sy ?/ .\" .Cx \t .\" .Em is produced by .\" .Cx \t .\" .Li \&.Ar \e\ b1 e1 f1 .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Op Sy ?/ .\" .Cx .\" .Cl Cx \t\t .\" .Li \&.Cx .\" .Cx .\" .Cw .\" .De .\" .Pp .Ss キープ 現在実装されているキープは単語に対するものだけです。 それらは .Ql \&.Bk (キープ開始) マクロと .Ql \&.Ek (キープ終了) マクロです。 .Ql \&.Bk に指定できるオプションは .Fl words のみであり、これはオプションの途中で改行が入らないようにするのに便利です。 コマンド行の引数を生成する例 ( .Sx この名前には何が...? セクションを参照) において、キープは .Xr nroff がフラグと引数を別の行に分けないように使われています。 (実際には、オプションマクロがこの目的で使われていましたが、 オプションが行中にわたって散らばってしまうと 一般的に見栄えが悪くなるという理由により .Xr troff で右揃えのマージンを強制的に行なう (宗教的な) 決定がなされてから、 オプションマクロをこの目的で使わないようになりました。 キープマクロについてはもっと機能を向上する作業が必要であり、 .Fl line オプションを追加していく必要があります。) .Ss 例示とディスプレイ ディスプレイには 5 つのタイプがあります。 即席 1 行インデントディスプレイ .Ql \&.D1 、即席 1 行リテラルディスプレイ .Ql \&.Dl 、それに ディスプレイ開始マクロ .Ql \&.Bd とディスプレイ終了マクロ .Ql \&.Ed を使用するリテラルブロック、フィルブロックおよび凸凹ブロックです。 .Pp .Bl -tag -width \&.Dlxx .It Li \&.D1 (D-いち) インデントされたテキストを 1 行表示します。 このマクロは解析されますが、呼び出し不可能です。 .Pp .D1 Fl ldghfstru .Pp これは次の指定で生成されたものです。 .Li \&.D1 \&Fl ldghfstru .It Li \&.Dl (D-エル) インデントされた .Em リテラル テキストを 1 行表示します。 .Ql \&.Dl マクロの例は本ファイルの中に渡って使われています。 これによって 1 行のテキストのインデント (表示) が可能になります。 このマクロは解析され、他のマクロを認識することができますが、 デフォルトのフォントは固定幅 (リテラル) にセットされています。 しかしながら、呼び出しは不可能です。 .Pp .Dl % ls -ldg /usr/local/bin .Pp これは .Li \&.Dl % ls -ldg /usr/local/bin から生成されています。 .It Li \&.Bd ディスプレイ開始です。 .Ql \&.Bd によるディスプレイは .Ql \&.Ed マクロによって終了しなければなりません。 ディスプレイはディスプレイ内およびリスト内で入れ子にすることができます。 .Ql \&.Bd は以下の書式をとります。 .Pp .Dl ".Bd ディスプレイタイプ [-offset オフセット値] [-compact]" .Pp ディスプレイタイプは以下の 4 つのタイプの内の 1 つでなければならず、 インデント .Ql \&.Bd のオフセット値を指定することができます。 .Pp .Bl -tag -width "file ファイル名 " -compact .It Fl ragged テキストのブロックをタイプされた通りに表示します。 右マージン (と左マージン) のエッジは左に不揃いに寄せられます。 .It Fl filled フィル (フォーマット) されたブロックを表示します。 テキストのブロックがフォーマットされます (エッジは左非揃えではなく、フィルされます)。 .It Fl literal リテラルなブロックを表示します。 ソースコードや、単純にタブもしくはスペースで整えられたテキストで便利です。 .It Fl file Ar ファイル名 .Fl file フラグに続く名称のファイルが読み込まれ、表示されます。 表示はリテラルなモードで行われ、タブは定幅文字 8 つ分に固定されますが、 ファイル中のすべての .Xr troff/ Ns Nm \-mdoc コマンドは解釈されます。 .It Fl offset Ar 文字列 .Fl offset が以下の文字列のいずれかとともに指定されていると、 その文字列は次のテキストのブロックのインデントのレベルを示すものとして 解釈されます。 .Pp .Bl -tag -width "indent-two" -compact .It Ar left ブロックを現在の左マージンに揃えます。 これは .Ql \&.Bd のデフォルトのモードです。 .It Ar center ブロックを中央揃えにします。 残念ながら現時点では、 単にブロックの左側を仮想的な中央マージンに揃えるだけです。 .It Ar indent デフォルトのインデント値もしくはタブの分だけインデントします。 デフォルトのインデント値はディスプレイ .Ql \&.D1 でも使われ、これら 2 つのタイプのディスプレイを使った場合、 行が揃うことが保証されています。 このインデントは通常 6n か約 2/3 インチ (定幅文字 6 つ分) です。 .It Ar indent-two デフォルトのインデント値の 2 倍分インデントします。 .It Ar right これはブロックをページの右端から約 2 インチ離して .Em 左 揃えします。 このマクロはちゃんと動作する必要があるのですが、 .Xr troff ではまったくちゃんと動作してくれていません。 .El .El .It ".Ed" ディスプレイ終了。 .El .Ss フォントモード マニュアルページのテキストの見栄えを変更するマクロは 5 つあります。 .Bl -tag -width \&.Emxx .It \&.Em テキストは .Ql \&.Em マクロで強調することができます。 強調の場合、通常イタリック体のフォントが使われます。 .Pp .Dl 使い方: .Em argument ... \*(Pu .Bl -tag -width ".Em vide infra ) ) ," -compact -offset 14n .It Li ".Em does not" .Em does not .It Li ".Em exceed 1024 ." .Em exceed 1024 . .It Li ".Em vide infra ) ) ," .Em vide infra ) ) , .El .Pp .Ql \&.Em マクロは解析され、呼び出し可能です。 .Ql \&.Em を引数なしで呼び出すのはエラーです。 .It \&.Li リテラルマクロ .Ql \&.Li は特殊文字や変数定数、その他タイプされた通りに表示する必要があるものに 使用することができます。 .Pp .Dl 使い方: .Li argument ... \*(Pu .Bl -tag -width ".Li cntrl-D ) ," -compact -offset 14n .It Li \&.Li \een .Li \en .It Li \&.Li M1 M2 M3\ ; .Li M1 M2 M3 ; .It Li \&.Li cntrl-D\ )\ , .Li cntrl-D ) , .It Li \&.Li 1024\ ... .Li 1024 ... .El .Pp .Ql \&.Li マクロは解析され、呼び出し可能です。 .It \&.Sy シンボリック体強調マクロはシンボリックの意味でも 伝統的な英語の使いかたにおいても、 通常はボールドマクロとなっています。 .Pp .Dl 使い方: .Sy symbol ... \*(Pu .Bl -tag -width ".Sy Important Noticex" -compact -offset 14n .It Li \&.Sy Important Notice .Sy Important Notice .El .Pp .Ql \&.Sy マクロは解析され、呼び出し可能です。 .Ql \&.Sy の引数は引用符で囲むことができます。 .It Li \&.Bf フォントモード開始。 フォントモード .Ql \&.Bf は .Ql \&.Ef マクロで終了しなければなりません。 フォントモードは他のフォントモードと入れ子にすることができます。 .Ql \&.Bf は次の構文を取ります。 .Pp .Dl ".Bf フォントモード" .Pp フォントモードは以下の 3 つのタイプのうちのいずれかでなければなりません。 .Pp .Bl -tag -width "file file_name " -compact .It Sy \&Em | Fl emphasis 強調モード。 .Ql \&.Em マクロがテキストブロック全体に使われているのと同様です。 .It Sy \&Li | Fl literal リテラルモード。 .Ql \&.Li マクロがテキストブロック全体に使われているのと同様です。 .It Sy \&Sy | Fl symbolic シンボリックモード。 .Ql \&.Sy マクロがテキストブロック全体に使われているのと同様です。 .El .It ".Ef" フォントモードの終了。 .El .Ss タグつきリストと列 リスト開始マクロ .Ql ".Bl" で開始されるリストにはいくつかのタイプがあります。 リスト中の項目は項目マクロ .Ql ".It" で指定され、各リストは .Ql ".El" マクロで終了しなければなりません。 リストはリスト自身やディスプレイの中で入れ子にすることができます。 列はリストの中で使うことができますが、 リストが列の中で使えるかどうかは検証されていません。 .Pp さらに、タグの幅、リストのオフセット、コンパクトさ (項目間の空白行が許されているかどうか) のような、 いくつかのリストの属性を指定することができます。 本ドキュメントのほとんどはタグ .Pq Fl tag スタイルリストでフォーマットされています。 各種リストタイプは、調子を変えるためにオーバーハング .Pq Fl ohang でリストしました。 このリストのタイプは .Tn TeX のユーザに非常に人気のあるものですが、tag リストで構成されたページを 何ページも読んだ後には幾分変に見えるでしょう。 以下のリストタイプを .Ql ".Bl" で使うことができます。 .Pp .Bl -ohang -compact .It Fl bullet .It Fl item .It Fl enum これら 3 つは最も単純なリストのタイプです。 一旦 .Ql ".Bl" マクロが与えられると、リスト中の項目は単に .Ql ".It" マクロによってのみ構成される行で指定されます。 例として、簡単な列挙リストのソーステキストは、このようになります。 .Bd -literal -offset indent-two \&.Bl -enum -compact \&.It \&ひとつめはここ。 \&.It \&そしてふたつめ。 \&.It \&最後にみっつめはここ。 \&.El .Ed .Pp これらの結果は以下のようになります。 .Pp .Bl -enum -offset indent-two -compact .It ひとつめはここ。 .It そしてふたつめ。 .It 最後にみっつめはここ。 .El .Pp 簡単な bullet リスト構成の例を示します。 .Bd -literal -offset indent-two \&.Bl -bullet -compact \&.It \&ひとつめの bullet。 \&.It \&これはふたつめの bullet。 \&.El .Ed .Pp その結果はこうなります。 .Bl -bullet -offset indent-two -compact .It ひとつめの bullet。 .It これはふたつめの bullet。 .El .Pp .It Fl tag .It Fl diag .It Fl hang .It Fl ohang .It Fl inset これらのリストタイプは .Ql \&.It マクロによって指定されている引数からラベルを生成します。 そして、 .Em inset では、次のテキストへそのラベルを挿入します。 .Em hang では、次のテキストをラベルの位置へインデントします。 .Em ohang (オーバーハング) では、次のテキストをラベルの位置にぶら下げ、インデントしません。 .Em tag では、タグつきテキストの形式にします。 ちなみに上のリストは .Ql Fl ohang リストタイプで構成されています。 .Ql \&.It マクロは inset, hang, tag のリストタイプでのみ解析され、 呼び出し不可能です。 以下に inset ラベルの例を示します。 .Bl -inset -offset indent .It Em tag tag リスト (tag 段落とも呼ばれる) は、 Berkely マニュアルで使われているリストのうち最も一般的なタイプです。 .It Em diag (診断) 診断リストはセクション 4 の診断リストを生成するもので、 呼び出し可能なマクロが無視されることを除き、inset リストと似ています。 .It Em hang hang ラベルは好みの問題です。 .It Em ohang ohang ラベルはスペースに制限がある時に便利です。 .It Em inset inset ラベルは段落のブロックを制御するのに便利で、 .Nm \-mdoc マニュアルを他の形式に変換する時に役立ちます。 .El .Pp 上の例を生成したソーステキストはこうなっています。 .Bd -literal -offset indent \&.Bl -inset -offset indent \&.It Em tag \&tag リスト (tag 段落とも呼ばれる) は、 \&Berkely マニュアルで使われているリストのうち最も一般的なタイプです。 \&.It Em diag (診断) \&診断リストはセクション 4 の診断リストを生成するもので、 \&呼び出し可能なマクロが無視されることを除き、inset リストと似ています。 \&.It Em hang \&hang ラベルは好みの問題です。 \&.It Em ohang \&ohang ラベルはスペースに制限がある時に便利です。 \&.It Em inset \&inset ラベルは段落のブロックを制御するのに便利で、 \&.Nm \-mdoc \&マニュアルを他の形式に変換する時に役立ちます。 \&.El .Ed .Pp 以下は 2 つの項目を持つ hang リストです。 .Bl -hang -offset indent .It Em hang ラベルがラベルの幅より小さいときには、 ラベルは tag リストと同じようになります。 .It Em 長い hang リストラベル は、tag 段落のラベルとは異なり、 段落の中に埋め込まれます。 .El .Pp これを生成している元のテキストは以下の通りです。 .Bd -literal -offset indent \&.Bl -hang -offset indent \&.It Em hang \&ラベルがラベルの幅より小さいときには、 \&ラベルは tag リストと同じようになります。 \&.It Em 長い hang リストラベル \&は、tag 段落のラベルとは異なり、 \&段落の中に埋め込まれます。 \&.El .Ed .Pp タグ幅を制御するためのオプションの幅指定を使ったタグつきリストは 以下の通りです。 .Pp .Bl -tag -width "PAGEIN" -compact -offset indent .It SL プロセスが sleep している時間 (ブロックされた秒数) .It PAGEIN そのプロセスによるコアにロードされていないページへの参照によるディスク .Tn I/O の回数 .It UID プロセスの所有者の数字表記によるユーザID .It PPID 親プロセスの数字表記によるID、プロセスの優先度 (割り込み不可のウエイトであるときには非正値) .El .Pp 元のテキストは以下の通りです。 .Bd -literal -offset indent \&.Bl -tag -width "PAGEIN" -compact -offset indent \&.It SL \&プロセスが sleep している時間 (ブロックされた秒数) \&.It PAGEIN \&そのプロセスによるコアにロードされていないページへの参照によるディスク \&.Tn I/O \&の回数 \&.It UID \&プロセスの所有者の数字表記によるユーザID \&.It PPID \&親プロセスの数字表記によるID、プロセスの優先度 \&(割り込み不可のウエイトであるときには非正値) \&.El .Ed .Pp 幅指定として以下のものを使うことができます。 .Bl -tag -width Ar -offset indent .It Fl width Ar "\&Fl" そのフラグでのデフォルトの幅を指定します。 すべての呼び出し可能なマクロは各々デフォルトの幅の値を持っています。 現在、 .Ql \&.Fl の値は定幅文字 10 個分、もしくは約 5/6 インチとなっています。 .It Fl width Ar "24n" 定幅文字 24 個分の幅、もしくは約 2 インチの幅をセットします。 これが正しく動作するには .Ql n が必ず必要となります。 .It Fl width Ar "ENAMETOOLONG" 指定された文字列の固定長に幅をセットします。 .It Fl width Ar "\\*qint mkfifo\\*q" これも、指定された文字列の固定長に幅をセットします。 .El .Pp タグつきリストタイプで幅が指定されていないと、 .Ql \&.It が最初に起動された時に適した幅を決定することが試みられます。 .Ql ".It" の最初の引数が呼び出し可能なマクロであれば、そのマクロのデフォルトの幅が そのマクロ名が幅として指定されたように使用されます。 しかしながら、そのリスト中に他の項目が別の呼び出し可能なマクロ名で 与えられていると、新しく入れ子となったリストとして処理されます。 .Sh 定義済みの文字列 以下の文字列はあらかじめ定義されているものであり、 troff の文字列解釈シーケンス .Ql \&\e*(xx もしくは .Ql \&\e*x を前に伴って使われます。 ここで、 .Em xx もしくは .Em x は定義されている文字列の名称です。 解釈シーケンスはテキストのどこでも使うことができます。 .Pp .Bl -column "文字列 " "Nroff " "Troff " -offset indent .It Sy "文字列 Nroff Troff" .It Li "<=" Ta \&<\&= Ta \*(<= .It Li ">=" Ta \&>\&= Ta \*(>= .It Li "Rq" Ta "''" Ta \*(Rq .It Li "Lq" Ta "``" Ta \*(Lq .It Li "ua" Ta ^ Ta \*(ua .It Li "aa" Ta ' Ta \*(aa .It Li "ga" Ta \` Ta \*(ga .\" .It Li "sL" Ta ` Ta \*(sL .\" .It Li "sR" Ta ' Ta \*(sR .It Li "q" Ta \&" Ta \*q .It Li "Pi" Ta pi Ta \*(Pi .It Li "Ne" Ta != Ta \*(Ne .It Li "Le" Ta <= Ta \*(Le .It Li "Ge" Ta >= Ta \*(Ge .It Li "Lt" Ta < Ta \*(Gt .It Li "Gt" Ta > Ta \*(Lt .It Li "Pm" Ta +- Ta \*(Pm .It Li "If" Ta infinity Ta \*(If .It Li "Na" Ta \fINaN\fP Ta \*(Na .It Li "Ba" Ta \fR\&|\fP Ta \*(Ba .El .Pp .Sy 注 : .Ql q の名称がつけられている文字列は、1 文字であるため .Ql \e*q と書かなければなりません。 .Sh 診断 .Nm \-mdoc は限られたデバッグ機能しか持っていませんが、 引数名と内部レジスタやマクロ名との衝突のような 潜在的なエラーを検出するのに役立ちます。 (A って何?) レジスタは .Xr troff での演算用記憶クラスであり、1 文字か 2 文字の名称がついています。 .Xr troff と .Xr ditroff での .Nm \-mdoc のすべての内部レジスタは .Ql \&Ar のように2 文字からなる <大文字><小文字> の形式か、 .Ql \&aR のように <小文字><大文字> の形式か、 .Ql \&C\&1 のように <大文字もしくは小文字><数字> の形式を取ります。 さらに混乱することに、 .Xr troff はそれ自身の内部レジスタを持ち、 それらすべては小文字 2 文字か、ドットに文字もしくはメタ文字が続く形式を取ります。 紹介例の 1 つに、 エスケープシーケンス .Ql \e& でマクロ名を解釈させない方法がありました。 これは内部レジスタ名にも有効です。 .Pp .\" Every callable macro name has a corresponding register .\" of the same name (). .\" There are also specific registers which have .\" been used for stacks and arrays and are listed in the .\" .Sx Appendix . .\" .Bd -ragged -offset 4n .\" [A-Z][a-z] registers corresponding to macro names (example ``Ar'') .\" [a-z][A-Z] registers corresponding to macro names (example ``aR'') .\" C[0-9] argument types (example C1) .\" O[0-9] offset stack (displays) .\" h[0-9] horizontal spacing stack (lists) .\" o[0-9] offset (stack) (lists) .\" t[0-9] tag stack (lists) .\" v[0-9] vertical spacing stack (lists) .\" w[0-9] width tag/label stack .\" .Ed .\" .Pp エスケープされていないレジスタ名が引数リストに指定されると、 予期できない振舞いとなります。 一般的には、テキストのかなり大きな部分が出力されるべきところに 出力されないとか、リストのタグのような小さな文字列が消えてしまうとか、 引数リストの中の引数のタイプが間違って解釈されるとかいうことが、起こり得ます。 きっとあなたのお母さんは、あなたにこんな面倒なことを覚えるようにとは 考えていないでしょう。 そこで、与えられた引数が有効か無効かを判断する方法があります。 そんなときには、 .Ql \&.Db (デバッグ) マクロによってほとんどのマクロの引数リストがどう解釈されるか を表示することができます。 .Ql \&.Pp (段落) マクロのようなマクロはデバッグ情報を含んでいません。 呼び出し可能なマクロはすべてデバッグ情報を含んでおり、 疑いがある場合はいつでも .Ql \&.Db マクロをオンにすることを強くお勧めします。 .Pp .Dl 使い方: \&.Db [on | off] .Pp 以下の例では、 問題が故意に発生するようにされた部分の上と下で デバッグマクロが指定されています (フラグ引数 .Ql \&aC は正しく動作するためには .Ql \e&aC でなければなりません)。 .Bd -literal -offset indent \&.Db on \&.Op Fl aC Ar file ) \&.Db off .Ed .Pp この結果の出力は以下の通りです。 .Bd -literal -offset indent DEBUGGING ON DEBUG(argv) MACRO: `.Op' Line #: 2 Argc: 1 Argv: `Fl' Length: 2 Space: `' Class: Executable Argc: 2 Argv: `aC' Length: 2 Space: `' Class: Executable Argc: 3 Argv: `Ar' Length: 2 Space: `' Class: Executable Argc: 4 Argv: `file' Length: 4 Space: ` ' Class: String Argc: 5 Argv: `)' Length: 1 Space: ` ' Class: Closing Punctuation or suffix MACRO REQUEST: .Op Fl aC Ar file ) DEBUGGING OFF .Ed .Pp この情報の最初の行では呼び出されているマクロの名称が出力されています。 ここでは .Ql \&.Op とそれが現れた行番号が表示されています。 複数のファイルが処理されている場合 (特にテキストが他のファイルからインクルードされている場合)、 行番号は正しくないでしょう。 ファイルが 1 つだけの場合には正しい行番号が出力されます。 2 番目の行では引数の個数と引数 .Pq Ql \&Fl とその長さが出力されています。 引数の長さが 2 文字であれば、 その引数が実行可能 (ゼロでない値を含むすべてのレジスタは実行可能なように見えます) かどうかテストされます。 3 番目の行ではそのクラスで指定されているスペースとクラスタイプが 出力されています。 ここでの問題は引数 aC が実行不可能でなければならないことです。 クラスの 4 つのタイプは文字列、実行可能、閉じる句読点、開く句読点です。 最後の行では引数リスト全体が読み込まれた通りに表示されています。 次の例では問題の原因となっている .Ql \&aC がエスケープされています。 .Bd -literal -offset indent \&.Db on \&.Em An escaped \e&aC \&.Db off .Ed .Bd -literal -offset indent DEBUGGING ON DEBUG(fargv) MACRO: `.Em' Line #: 2 Argc: 1 Argv: `An' Length: 2 Space: ` ' Class: String Argc: 2 Argv: `escaped' Length: 7 Space: ` ' Class: String Argc: 3 Argv: `aC' Length: 2 Space: ` ' Class: String MACRO REQUEST: .Em An escaped &aC DEBUGGING OFF .Ed .Pp .Ql \e& シーケンスは長さが 0 となるために 引数 .Ql \e&aC は先の例と同様に長さ 2 と表示されています。 しかし、 .Ql \e&aC という名称のレジスタが見つからず、タイプは文字列と判断されています。 .Pp この他の診断は使用方法を報告するものであり、 それ自身が説明を含んでいます。 .Sh GROFF, TROFF, NROFF .Nm \-mdoc パッケージは .Xr groff との互換モードは必要ではありません。 .Pp このパッケージでは改ページと、 .Xr nroff で改ページ時に通常挿入されるヘッダとフッタは禁止されており、 マニュアルをオンラインで効率良く見ることができるようになっています。 現在の所、 .Fl T Ns Ar ascii が指定された .Xr groff はページ内容の無いファイル末の残りの部分まで出力します。 改ページを禁止することによって .Xr nroff による出力はハードコピーには適さないものとなっています。 サイト依存のスタイルファイル .Pa /usr/src/share/tmac/doc-nroff において 0 にセットすることができる .Ql \&cR の名称を持つレジスタが古いスタイルの振る舞いを実現するために用意されています。 .Sh 関連ファイル .Bl -tag -width /usr/share/man0/template.doc -compact .It Pa /usr/share/tmac/tmac.doc マニュアルマクロパッケージ .It Pa /usr/share/misc/mdoc.template man ページを書くためのテンプレート .It Pa /usr/share/examples/mdoc/* man ページのいくつかの例 .El .Sh 関連項目 .Xr man 1 , .Xr troff 1 , .Xr mdoc 7 .Sh バグ フラグ引数のダッシュにおいて好ましくないハイフンが挿入される問題は、 まだ解決されておらず、 .Sx DESCRIPTION セクションにおいて災いをおこすことがあります (ハイフンにおいて改行が挿入される)。 .Pp あらかじめ定義されている文字列は文書において宣言されていません。 .Pp セクション 3f はヘッダルーチンには追加されていません。 .Pp .Ql \&.Nm フォントは .Sx NAME セクションにおいて変更されるべきです。 .Pp .Ql \&.Fn は分割されるのを防止するために、 行の長さが短すぎないかどうかをチェックする必要があります。 ときどき、最後の括弧が分割されることがあり、 行がフィルモードであるときには全くおかしな結果になることがあります。 .Pp nroff を使用している時に、 ヘッダとフッタで改ページを防止 (最初のヘッダとフッタ以外) している方法は、 時々おそらくページの下端に一部見苦しくフィルされた行 (空白行) を挿入する ことがあります。 .Pp リストマクロとディスプレイマクロはキープを行いませんが、 これはキープを行うべきです。 .\" Note what happens if the parameter list overlaps a newline .\" boundary. .\" to make sure a line boundary is crossed: .\" .Bd -literal .\" \&.Fn struct\e\ dictionarytable\e\ *dictionarylookup struct\e\ dictionarytable\e\ *tab[] .\" .Ed .\" .Pp .\" produces, nudge nudge, .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] , .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] , .\" nudge .\" .Fn struct\ dictionarytable\ *dictionarylookup char\ *h struct\ dictionarytable\ *tab[] . .\" .Pp .\" If double quotes are used, for example: .\" .Bd -literal .\" \&.Fn \*qstruct dictionarytable *dictionarylookup\*q \*qchar *h\*q \*qstruct dictionarytable *tab[]\*q .\" .Ed .\" .Pp .\" produces, nudge nudge, .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" , .\" nudge .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" , .\" nudge .\" .Fn "struct dictionarytable *dictionarylookup" "char *h" "struct dictionarytable *tab[]" . .\" .Pp .\" Not a pretty sight... .\" In a paragraph, a long parameter containing unpaddable spaces as .\" in the former example will cause .\" .Xr troff .\" to break the line and spread .\" the remaining words out. .\" The latter example will adjust nicely to .\" justified margins, but may break in between an argument and its .\" declaration. .\" In .\" .Xr nroff .\" the right margin adjustment is normally ragged and the problem is .\" not as severe. diff --git a/ja_JP.eucJP/man/man8/amd.8 b/ja_JP.eucJP/man/man8/amd.8 index 3685bfc4ce..cbec1b5d93 100644 --- a/ja_JP.eucJP/man/man8/amd.8 +++ b/ja_JP.eucJP/man/man8/amd.8 @@ -1,343 +1,343 @@ .\" .\" Copyright (c) 1997-1999 Erez Zadok .\" Copyright (c) 1989 Jan-Simon Pendry .\" Copyright (c) 1989 Imperial College of Science, Technology & Medicine .\" Copyright (c) 1989 The Regents of the University of California. .\" All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Jan-Simon Pendry at Imperial College, London. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %W% (Berkeley) %G% .\" .\" %Id: amd.8,v 1.3 1999/09/30 21:01:29 ezk Exp % -.\" %FreeBSD: src/contrib/amd/amd/amd.8,v 1.6.2.4 2000/09/20 02:17:04 jkh Exp % +.\" %FreeBSD: src/contrib/amd/amd/amd.8,v 1.6.2.5 2000/10/30 10:45:18 obrien Exp % .\" .\" jpman %Id: amd.8,v 1.2 1997/04/15 00:24:08 mutoh Stab % .\" .Dd April 19, 1994 .Dt AMD 8 .Os .Sh 名称 .Nm amd .Nd 自動マウントファイルシステム .Sh 書式 .Nm amd .Fl H .Nm amd .Op Fl F Ar conf_file .Nm amd .Op Fl nprvHS .Op Fl a Ar mount_point .Op Fl c Ar duration .Op Fl d Ar domain .Bk -words .Op Fl k Ar kernel-arch .Ek .Op Fl l Ar logfile .Op Fl o Ar op_sys_ver .Op Fl t Ar timeout.retransmit .Bk -words .Op Fl w Ar interval .Ek .Op Fl x Ar log-option .Op Fl y Ar YP-domain .Bk -words .Op Fl C Ar cluster-name .Ek .Op Fl D Ar option .Op Fl F Ar conf_file .Op Fl O Ar op_sys_name .Op Fl T Ar tag .Oo .Ar directory mapname .Op Fl map-options .Oc .Ar ... .Sh 解説 .Nm は、ファイルシステムがアクセスされたときに自動的にそのファイルシステムを マウントするデーモンです。マウントされたファイルシステムは、アクセスがな ければ自動的にアンマウントされます。 .Pp .Nm は、自分自身をNFSサーバとして、指定された .Ar directory に結び付けます。 その指定ディレクトリ内でのファイルアクセスは .Nm によって処理されます。 .Nm は、 .Ar mapname で定義されたマップを使って、あるディレクトリ にどのファイルシステムを割り当てるかを決定します。 一般に .Ar mapname は、ホスト名やファイルシステムの情報、 マウントオプションから構成されます。 .Pp 前述の最初の形式では、 .Nm は短いヘルプ文字列を表示します。 第 2 の形式では、オプションを指定しないか、 .Fl F が使用されると、 .Nm は設定パラメータをファイル .Ar conf_file から読み込みます。設定ファイルのデフォルトは .Pa /etc/amd.conf です。 最後の形式についてはここから記述します。 .Sh オプション .Bl -tag -width Ds .It Fl a Ar temporary-directory 実際にファイルシステムをマウントする位置を指定します。 デフォルトは .Pa /.amd_mnt です。 .It Fl c Ar duration ディレクトリが使われないときに、探索に使われた名前をキャッシュ して保持する秒数を指定します。デフォルトは5分です。 .It Fl d Ar domain ローカルドメイン名を指定します。もしこのオプションが与 えられなければ、ドメイン名はホスト名から決定されます。 .It Fl k Ar kernel-arch カーネルアーキテクチャを指定します。これは単に ${karch} セレクタ を指定するだけです。 .It Fl l Ar logfile マウントおよびアンマウントのイベントを記録するログファイル を指定します。 もし、 .Ar logfile が ``syslog'' という文字列なら、ログメッセージは .Xr syslog 3 によってシステムログデーモンに送られます。 デフォルトの syslog ファシリティは LOG_DAEMON です。 変更したい場合は、ログファイル名の後にコロンで区切って、 その名前を付けてください。 例えば、 .Ar logfile が文字列 .Nm syslog:local7 である場合、 .Nm は、 .Xr syslog 3 の LOG_LOCAL7 ファシリティを使用してログを取ります (ただしシステムに本ファイシリティが存在する場合)。 .It Fl n ホスト名を正規化します。${rhost}で参照される名前は、使わ れる前にホストデータベースに関連づけて正規化されます。 これは、エイリアスを ``公式 (official)'' ホスト名に変換する効果があります。 .It Fl o Ar op_sys_ver 組み込まれているオペレーティングシステムバージョン番号を上書きします。 後方互換性のために、 組み込みのバージョン番号が望ましくない場合に有用です。 例えば、組み込みのバージョン番号が .Dq 2.5.1 の場合、 .Dq 5.5.1 で上書きして、後者を意識して書いた古いマップを使用することができます。 .It Fl p プロセスIDを表示します。 .Nm のプロセス ID を標準出力に出力して、ファイルに保存することができます。 .It Fl r 存在するマウントをリスタートします。 .Nm はマウントファイルテーブルをスキャンして、 現在マウントされているファイルシステムを判断します。 ファイルシステムが自動マウントされたものであれば、 .Nm は、その情報を継承します。 .It Fl t Ar timeout.retransmit NFS/RPC のリトライの間隔、すなわち NFS タイムアウト間隔を、 10 分の 1 秒単位で指定します (UDP のみ)。 デフォルト値は 0.8 秒です。2 番目の値は再送カウンタを変更します。 デフォルト値では 11 回の再送です。 カーネルは、両方の値を使用して amd と通信します。 どちらか一方か、両方の値が設定されていなければ、 適当なデフォルト値が設定されます。 .Pp amd は、 カーネルの RPC 再送機構がマウントリトライの引き金となることに依存しています。 これらのパラメータ値は、総合的なリトライ間隔を変更します。 間隔が長くなり過ぎると、対話応答が劣化します。 間隔が短くなり過ぎると、リトライが増え過ぎます。 .It Fl v バージョンを表示します。標準エラー出力に設定情報を表示します。 .It Fl w Ar interval キャッシュする時間を超えたファイルシステムのマウントを解除する時間を 秒単位で指定します。デフォルト値は2分です。 .It Fl x Ar options 実行時に何をログに記録するかを指定します。 .Ar options には次のものをコンマで区切って使用できます: fatal, error, user, warn, info, map, stats, all。 .It Fl y Ar domain NIS マップをとってくる際に用いる NIS ドメインを指定します。 デフォルトはシステムのドメイン名です。このオプションは、NIS を動かしていないときには無視されます。 .It Fl C Ar cluster-name 代わりの HP-UX クラスタ名を指定します。 .It Fl D Ar option デバッグオプションの種類を選択することができます。 .Ar option の頭に .Ar no をつけると、そのオプションの逆の影響を与えます。 オプションは並べて指定することができます。もっとも役に立つのは .Ar all です。 .Pp .Fl D はデバッグのときにだけ使うものであるため、ここでは他のオプションに ついては説明しません。サポートされているオプションは .Fl v オプションで表示されますが、詳細はソースコードに記述されています。 .It Fl F Ar conf_file 使用する .Nm 設定ファイルを指定します。 ファイル形式については .Xr amd.conf 5 を参照してください。 この設定ファイルの用途は、 コマンドラインにて多くのオプションをタイプする代りに、 これらのオプションを指定することです。 .Nm amd.conf ファイルは、 amd が持つすべてのコマンドラインオプションに対するディレクティブと、 設定ファイルによってのみ利用可能な多くの設定を含みます。 本オプションで指定された設定ファイルは、 他のオプションすべてが処理された後で処理されます。 本オプションがコマンドラインのどこに置かれていたかは無関係です。 .It Fl H ヘルプと使用方法の文字列を表示します。 .It Fl O Ar op_sys_name 組み込まれているオペレーティングシステム名を上書きします。 後方互換性のために、 組み込みの名前が望ましくない場合に有用です。 例えば、組み込みの名前が .Dq sunos5 の場合、 .Dq sos5 で上書きして、後者を意識して書いた古いマップを使用することができます。 .It Fl S .Nm の走行中の実行可能ページをメモリにロックしません。 .Nm の性能向上のために、 .Xr plock 3 コールをサポートするシステムでは .Nm プロセスをメモリにロック可能です。 この場合、オペレーティングシステムが必要に応じて .Nm プロセスをスケジュールしたり、ページアウトしたり、スワップする 機会が減ります。 .Nm の性能は向上する傾向がありますが、 .Nm プロセスが使用するメモリを .Pq 他のプロセスが使えないようにして 予約してしまうというコストとなります。 この動作が望ましくない場合、 .Fl S を使用します。 .It Fl T Ar tag .Xr amd.conf 5 が使用するタグを指定します。 タグが付いている全マップエントリが処理されます。 タグが付いていないマップエントリは常に処理されます。 .Ar tag 以外のタグが付いているマップエントリは処理されません。 .Sh 関連ファイル .Bl -tag -width /axx -.It Pa /a +.It Pa /.amd_mnt 動的にファイルシステムがマウントされるディレクトリ .It Pa /etc/amd.conf デフォルトの設定ファイル .El .Pp .Sh 注意 マウントマップを作成する場合には注意が必要です。 .Pp .Tn NFS ファイルシステム上のシンボリックリンクは、信じられないほど 非効率的です。 .Tn NFS を実装した多くのシステムでは、 シンボリックリンクの展開結果はカーネルがキャッシュせずに、 .Em lookuppn (パス名変換)時にシンボリックリンクに出会うたびに NFSサーバに対してRPCコールを行うようになっています。 キャッシュをどこかに加えることによって、かなり大きな性能の向上が 得られるはずです。 上手に実現したオートマウントシステムで .Xr symlink 2 を置き換えれば大きくスピードアップすることができますが、 同時に多くのコンテキストスイッチも起こします。 .Pp .Nm のすべての機能を駆使できれば非常に便利ですが、 それにはかなりの想像力が必要になります。 .Pp .Sh 関連項目 .Xr domainname 1 , .Xr hostname 1 , .Xr syslog 3 , .Xr amd.conf 5 , .Xr mtab 5 , .Xr amq 8 , .Xr mount 8 , .Xr umount 8 .Rs .%T Amd \- The 4.4 BSD Automounter. .Re .Pp .Sh 作者 .An Jan-Simon Pendry Aq jsp@doc.ic.ac.uk , Department of Computing, Imperial College, London, UK. .Pp .An Erez Zadok Aq ezk@cs.columbia.edu , Department of Computer Science, Columbia University, New York, USA. .Pp am-utils の、他の作者および貢献者は、 am-utils とともに配布されている .Nm AUTHORS ファイルに記述されています。 .Sh 歴史 .Nm amd は 4.4BSD にはじめて導入されました。 diff --git a/ja_JP.eucJP/man/man8/ancontrol.8 b/ja_JP.eucJP/man/man8/ancontrol.8 index 01d0c3f0e6..a7f446d048 100644 --- a/ja_JP.eucJP/man/man8/ancontrol.8 +++ b/ja_JP.eucJP/man/man8/ancontrol.8 @@ -1,337 +1,338 @@ .\" Copyright (c) 1997, 1998, 1999 .\" Bill Paul All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Bill Paul. .\" 4. Neither the name of the author nor the names of any co-contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/ancontrol/ancontrol.8,v 1.3.2.1 2000/04/23 16:43:17 mpp Exp % +.\" %FreeBSD: src/usr.sbin/ancontrol/ancontrol.8,v 1.3.2.2 2000/10/30 02:16:04 joe Exp % .\" .\" jpman %Id: ancontrol.8,v 1.3 2000/04/28 05:37:56 takaha Stab % .Dd September 10, 1999 .Dt ANCONTROL 8 .Os FreeBSD 4.0 .Sh 名称 .Nm ancontrol .Nd Aironet 4500/4800 デバイスの設定 .Sh 書式 .Nm ancontrol .Fl i Ar iface Fl A .Nm ancontrol .Fl i Ar iface Fl N .Nm ancontrol .Fl i Ar iface Fl S .Nm ancontrol .Fl i Ar iface Fl I .Nm ancontrol .Fl i Ar iface Fl T .Nm ancontrol .Fl i Ar iface Fl C .Nm ancontrol .Fl i Ar iface Fl t Ar 0|1|2|3|4 .Nm ancontrol .Fl i Ar iface Fl s Ar 0|1|2|3 .Nm ancontrol .Fl i Ar iface Fl a Ar AP .Op Fl v Ar 1|2|3|4 .Nm ancontrol .Fl i Ar iface Fl b Ar beacon period .Nm ancontrol .Fl i Ar iface Fl d Ar 0|1|2|3 .Op v Ar 0|1 .Nm ancontrol .Fl i Ar iface Fl j Ar netjoin timeout .Nm ancontrol .Fl i Ar iface Fl l Ar station name .Nm ancontrol .Fl i Ar iface Fl m Ar mac address .Nm ancontrol .Fl i Ar iface Fl n Ar SSID .Op Fl v Ar 1|2|3 .Nm ancontrol .Fl i Ar iface Fl o Ar 0|1 .Nm ancontrol .Fl i Ar iface Fl p Ar tx power .Nm ancontrol .Fl i Ar iface Fl c Ar channel number .Nm ancontrol .Fl i Ar iface Fl f Ar fragmentation threshold .Nm ancontrol .Fl i Ar iface Fl r Ar RTS threshold .Nm ancontrol .Fl h .Sh 解説 .Nm コマンドは、 .Xr an 4 ドライバを介し、Aironet ワイヤレスネットワークデバイスの動作を制御します。 変更可能なほとんどのパラメータは、 Aironet カードが実装している IEEE 802.11 プロトコルに関連するものです。 これに含まれるのは、 ステーション名、 動作がアドホックモード (ポイントツーポイント) と インフラストラクチャモードのどちらであるか、 加入するサービスセットのネットワーク名です。 .Nm コマンドを使用して、現在の NIC の状態や設定を閲覧できますし、 カードの統計カウンタの値をダンプできます。 .Pp .Nm に与えられる .Ar iface 引数は、Aironet デバイスに関連付けられる論理インタフェース名 (an0, an1 等) であることが必要です。 +指定しない場合には an0 がデフォルトとして使用されます。 .Sh オプション オプションは次の通りです: .Bl -tag -width Fl .It Fl i Ar iface Fl A 希望するアクセスポイントリストを表示します。 接続を希望するアクセスポイントの MAC アドレスを指定するために、 ステーションは AP リストを使用可能です。 AP リストを指定しないと (デフォルト)、 SSID リストで指定した SSID (複数可) にサービスするアクセスポイントで 最初に発見したものに、 ステーションは接続します。 AP リストは .Fl a オプションで変更可能です。 .It Fl i Ar iface Fl N SSID リストを表示します。 これは、サービス集合 ID (つまりネットワーク名) であり、 これに対してステーションは接続を希望します。 リスト中には最大 3 個の SSID まで存在可能です: ステーションはリストを昇順に見て、 最初にマッチを見付けた SSID に接続します。 .It Fl i Ar iface Fl S NIC の状態情報を表示します。 これには、現在の動作状態、現在の BSSID、SSID、チャネル、ビーコン周期、 現在接続中のアクセスポイントを含みます。 動作モードは、NIC の状態と、MAC の状態と、受信器の状態を含みます。 キーワード "synced" が表示されたときには、 NIC はアクセスポイントへの接続に成功したか、 アドホック「マスタ」ステーションへの接続に成功したか、「マスタ」自身 になったかを意味します。 ビーコン周期は 20 ミリ秒から 976 ミリ秒の範囲です。 デフォルトは 100 です。 .It Fl i Ar iface Fl I NIC のケーパビリティ情報を表示します。 デバイスタイプ、周波数、速度とパワーレベルケーパビリティ、 ファームウェアリビジョンレベルが表示されます。 .It Fl i Ar iface Fl T NIC 内部の統計カウンタを表示します。 .It Fl i Ar iface Fl C 現在の NIC の設定を表示します。 現在の動作モード、受信モード、MAC アドレス、パワーセーブ設定、 様々なタイミング設定、チャネル選択、ダイバシティ、送信パワー、 送信速度が表示されます。 .It Fl i Ar iface Fl t Ar 0|1|2|3|4 送信速度を選択します。使用可能な設定は次の通りです: .Bd -filled -offset indent .Bl -column "TX rate " "NIC speed " .Em "TX レート NIC 速度" 0 自動 -- NIC が最適速度を選択 1 1Mbps 固定 2 2Mbps 固定 3 5.5Mbps 固定 4 11Mbps 固定 .El .Ed .Pp 5.5Mbps と 11Mbps の設定は、 4800 シリーズアダプタでのみサポートされていることに注意してください: 4500 シリーズアダプタの最大速度は 2Mbps です。 .It Fl i Ar iface Fl s Ar 0|1|2|3 パワーセーブモードの設定をします。正当な選択肢は次の通りです: .Bd -filled -offset indent .Bl -column "Selection " "Power save mode " .Em "選択肢 パワーセーブモード" 0 無し - パワーセーブ無効 1 常にアウェイクモード (CAM) 2 パワーセーブポーリング (PSP) 3 高速パワーセーブポーリング (PSP-CAM) .El .Ed .Pp IBSS (アドホック) モードでは、 PSP モードのみがサポートされることに注意してください。 しかも、ATIM ウィンドウが非 0 の場合に限ります。 .It Fl i Ar iface Fl a Ar AP "[-v 1|2|3|4]" 希望するアクセスポイントを設定します。 .Ar AP は、コロンで区切った 6 個の 16 進数から成る MAC アドレスで指定します。 デフォルトでは、 .Fl a オプションは AP リストの最初のエントリのみを設定します。 .Fl v 修飾子を使用して、どの AP リストエントリを修正するかを正確に指定可能です。 .Fl v フラグを使用しないと、最初の AP リストエントリが変更されます。 .It Fl i Ar iface Fl b Ar beacon period アドホックモードのビーコン周期を指定します。 ビーコン周期はミリ秒単位で指定します。 デフォルトは 100ms です。 .It Fl i Ar iface Fl d Ar 0|1|2|3 "-v 0|1" アンテナダイバシティを選択します。 Aironet デバイスは、最大 2 個のアンテナで設定可能であり、 送受信それぞれに対してダイバシティを設定可能です。 有効な選択肢は次の通りです: .Bd -filled -offset indent .Bl -column "選択肢 " "ダイバシティ " .Em "選択肢 ダイバシティ" 0 工場出荷デフォルトのダイバシティの選択 1 アンテナ 1 のみ 2 アンテナ 2 のみ 3 アンテナ 1 と 2 .El .Ed .Pp 受信と送信のダイバシティは独立に設定可能です。 どちらのダイバシティ設定を修正するかを示す必要があり、 .Fl v オプションを使用します: 選択肢 .Ar 0 は受信ダイバシティを設定し、 .Ar 1 は送信ダイバシティを設定します。 .It Fl i Ar iface Fl j Ar netjoin timeout アドホックネットワークへの加入タイムアウトを設定します。 ステーションが最初にアドホックモードで活動開始したときには、 ステーションは希望する SSID を持つ「マスタ」ステーションを探し、 これに接続します。 適切なタイムアウトが経過しても、 同じ SSID を持つ他のステーションを見付けられない場合、 ステーションは自己を「マスタ」として設定しますので、 他のステーションが接続できるようになります。 このタイムアウトのデフォルトは 10000 ミリ秒 (10 秒) ですが、 本オプションで変更可能です。 タイムアウトはミリ秒で設定します。 .It i Ar iface Fl l Ar station name NIC 内部で使用するステーション名を設定します。 .Ar station name は 16 文字までの長さの任意のテキストです。 デフォルトの名前は、ドライバが "FreeBSD" に設定します。 .It Fl i Ar iface Fl m Ar mac address 指定したインタフェースのステーションアドレスを設定します。 .Ar mac address は、コロンで区切られた 6 個の連続する 16 進数で指定し、 例えば 00:60:1d:12:34:56 です。 これにより、新しいアドレスをカードにプログラムし、 インタフェースもまた更新します。 .It Fl i Ar iface Fl n Ar SSID "[-v 1|2|3]" 希望する SSID (ネットワーク名) を設定します。 SSID は 3 個ありますので、 設定を修正することなく様々な場所で NIC がアクセスポイントへ接続可能です。 マッチを探すとき、NIC は各 SSID を順番にチェックします。 変更する SSID は .Fl v 修正子オプションで指定します。 .Fl v フラグが使用されないと、リストの最初の SSID が設定されます。 .It Fl i Ar iface Fl o Ar 0|1 Aironet インタフェースの動作モードを設定します。 正当な選択肢は .Ar 0 がアドホックモードで、 .Ar 1 がインフラストラクチャモードです。 デフォルトのドライバ設定はアドホックモードです。 .It Fl i Ar iface Fl p Ar tx power 送信パワーレベルをミリワット単位で設定します。 正当なパワー設定は実際の NIC に依存して変わり、 .Fl I フラグでデバイスケーパビリティをダンプすることで閲覧可能です。 典型的な値は 1, 5, 20, 50, 100mW です。 0 を選択すると、工場出荷デフォルトを選択します。 .It Fl i Ar iface Fl c Ar channel 指定したインタフェースの電波周波数を設定します。 .Ar frequency は、下表に示すチャネル ID で指定します。 使用可能な周波数一覧は、地域当局が指定する電波規制に依存します。 既知の規制当局には、FCC (米国)、ETSI (欧州)、フランス、日本があります。 表中の周波数は MHz 単位です。 .Bd -filled -offset indent .Bl -column "チャネル ID " "FCC " "ETSI " "仏 " "日 " .Em "チャネル ID FCC ETSI 仏 日" 1 2412 2412 - - 2 2417 2417 - - 3 2422 2422 - - 4 2427 2427 - - 5 2432 2432 - - 6 2437 2437 - - 7 2442 2442 - - 8 2447 2447 - - 9 2452 2452 - - 10 2457 2457 2457 - 11 2462 2462 2462 - 12 - 2467 2467 - 13 - 2472 2472 - 14 - - - 2484 .El .Ed .Pp 不正なチャネルが指定された場合、NIC はデフォルトチャネルに戻します。 米国および欧州で販売されている NIC では、デフォルトチャネルは 3 です。 フランスで売られている NIC では、デフォルトチャネルは 11 です。 日本で売られている NIC では、使用可能なチャネルは 14 だけです。 通信するには、2 つのステーションを同じチャネルに設定する必要があることに 注意してください。 .It Fl i Ar iface Fl f Ar fragmentation threshold 断片化の閾値をバイト単位で設定します。 この閾値は、出力パケットが複数の断片に分割される点を制御します。 単一の断片の送信に失敗した場合、 パケット全体ではなく、その断片のみの再送が必要です。 断片化の閾値は 64 から 2312 バイトの任意です。 デフォルト値は 2312 です。 .It Fl i Ar iface Fl r Ar RTS threshold 指定したインタフェースの RTS/CTS 閾値を設定します。 これは、RTS/CTS ハンドシェイク境界に使用されるバイト数を制御します。 .Ar RTS threshold は 0 から 2312 の任意の値です。デフォルト値は 2312 です。 .It Fl h 使用可能なオプションと、サンプルの使用方法を表示します。 .El .Sh 関連項目 .Xr an 4 , .Xr ifconfig 8 .Sh 歴史 .Nm コマンドは .Fx 4.0 ではじめて登場しました。 .Sh バグ 統計カウンタは、送受信フレームの合計を、増加するように表示しないようです。 おそらく、 .Xr an 4 が、NIC 自身に 802.11/イーサネットカプセル化を行わせずに、 無修正パケットモードを使用しているためです。 .Pp チャネルの設定は効果が無いようです。 .Sh 作者 .Nm コマンドは .An Bill Paul Aq wpaul@ee.columbia.edu が記述しました。 diff --git a/ja_JP.eucJP/man/man8/cvsbug.8 b/ja_JP.eucJP/man/man8/cvsbug.8 index 2b9e6dcfef..ef10cf435f 100644 --- a/ja_JP.eucJP/man/man8/cvsbug.8 +++ b/ja_JP.eucJP/man/man8/cvsbug.8 @@ -1,250 +1,246 @@ .\" -*- nroff -*- .\" --------------------------------------------------------------------------- .\" man page for send-pr (by Heinz G. Seidl, hgs@cygnus.com) .\" updated Feb 1993 for GNATS 3.00 by Jeffrey Osier, jeffrey@cygnus.com .\" .\" This file is part of the Problem Report Management System (GNATS) .\" Copyright 1992 Cygnus Support .\" .\" This program is free software; you can redistribute it and/or .\" modify it under the terms of the GNU General Public .\" License as published by the Free Software Foundation; either .\" version 2 of the License, or (at your option) any later version. .\" .\" This program is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU .\" General Public License for more details. .\" .\" --------------------------------------------------------------------------- +.\" %FreeBSD: src/contrib/cvs/man/cvsbug.8,v 1.2.6.1 2000/10/31 09:37:50 obrien Exp % .\" jpman %Id: cvsbug.8,v 1.2 1997/06/16 09:32:04 jsakai Stab % .nh .TH CVSBUG 8 xVERSIONx "February 1993" -.\" ここが↑ -.\" 英語版では 1 となっていたが、cvsbug は 8 章のはず。 -.\" この nroff ソースの 3 行目が send-pr となっていることからしても、 -.\" send-pr.1 のマニュアルからコピーして修正し忘れ?? -.\" sakai@jp.freebsd.org 1997.6.16 .SH 名称 cvsbug \- CVS に関する Problem Report (PR) をサポートサイトに送る .SH 書式 .B cvsbug [ .I site ] [ .B \-f .I problem-report ] [ .B \-t .I mail-address ] .br .in +0.8i [ .B \-P ] [ .B \-L ] [ .B \-\-request-id ] [ .B \-v ] .SH 解説 .\" .\" 以下の日本語訳は、同じく FreeBSD jpman にて既に訳されていた .\" send-pr.1 から かなりの部分を流用している。sakai@jp.freebsd.org 1997.6.16 .\" .B cvsbug は、サポートサイトに対して .I problem reports .\" SITE ADMINISTRATORS - change this if you use a local default (PR) を送るために使うツールです。大抵の場合は正しい .I site がデフォルトとなっているはずです。この引数は、問題を引き起こした事象 のカテゴリに対して責任をもつサポートサイトを指し示します。いくつかの サイトはデフォルトとしてローカルアドレスを使っていることでしょう。 .I site は、 .BR aliases (5) を使って定義されます。 .LP .B cvsbug を実行すると、エディタが起動されて用意されているテンプレートを (いくつ かのフィールドにもっともらしいデフォルトの値をあてはめてから) 読み込ま れます。エディタを終了すると、 .B cvsbug はサポートサイトの .I Problem Report Management System (\fBGNATS\fR) に完了した形式のレポートをメールで送ります。サポートサイトで は、PR は問題のカテゴリと \fIsubmitter-id\fR とに従って唯一の番号が 割り当てられ、\fBGNATS\fR データベースに保存されています。 \fBGNATS\fR はメールを受け取ったことを知らせるために、 問題のカテゴリの引用と PR 番号とを自動的に返送します。 .LP PR が速やかに処理されるようにするためには、 あなた(独自)の \fIsubmitter-id\fR と、 問題分野を識別する有効なカテゴリを記入する必要があります。(カテゴリは .B `cvsbug -L' で見ることができます。) .LP あなたのサイトにある .B cvsbug テンプレートは、あらかじめ submitter-id をカスタマイズしておく 必要があります (そのために `\|\fBinstall-sid\fP \fIsubmitter-id\fP\|' を 実行することは .B cvsbug のインストール手順の一部になっています )。 もしこれがまだ設定されていなければ、 あなたのシステム管理者に submitter-id 設定をお願いするか、次のコマンド .B `cvsbug \-\-request\-id' を実行してあなたのサポートサイトに submitter-id を要求して下さい。 あなたのサイトがユーザサイト間で区別できない、あるいは あなたがサポートサイトと結び付きを持っていない場合は、このフィールドに .B `net' と指定して下さい。 .LP より正確な問題の記述やより完全な情報があればあるほど、 サポートチームは問題をより早く解決することができます。 .SH オプション .TP .BI \-f " problem-report" すでに記入した PR ファイルを \fIproblem-report\fR に指定できます。 .B cvsbug はエディタを起動せずにファイルを送ります。 .I problem-report が .BR `\|\-\|' のときは .B cvsbug は、標準入力から読み込みます。 .TP .BI \-t " mail-address" PR を送るサイトのメールアドレスを変更します。 デフォルトのメールアドレスは、 デフォルトサイトのものが使われます。特殊な状況を除き、このオプションではなく、 .I site を使って下さい。 .TP .B \-P 環境変数 .B PR_FORM で指定されたテンプレートを標準出力に出力します。 .B PR_FORM が定義されていないときは、標準のブランク PR テンプレートが使われます。 メールは送られません。 .TP .B -L 使用できるカテゴリが表示されます。メールは送られません。 .TP .B \-\-request\-id デフォルトサイトか、 .I site が指定されればそのサイトに .IR submitter-id を要求します。もしユーザがそのサイトと関係なければ、 .I submitter-id として .BR net を使って下さい。 .TP .B \-v .B cvsbug のバージョンを表示します。 .LP 注: PR を提出するためには、PR を直接メールするのではなく、 .B cvsbug を使いましょう。テンプレートと .B cvsbug の両方を使うことによって、すべての必要な情報がサポートサイトに確実に届きます。 .SH 環境変数 .B EDITOR テンプレートに対して起動するエディタ .br デフォルト: .B vi .sp もし .B PR_FORM が設定されていれば、編集する PR のテンプレートのファイル名として 使われます。 部分的に完成したテンプレートから始めるために これを使うことができます (たとえば、すでに identification フィールドを 埋めてあるテンプレートなどです)。 .SH PR の記入方法 PR が形式に従っていれば、 プログラムは簡単に PR を扱うことができます。 以下のガイドラインを覚えておきましょう: .IP \(bu 3m それぞれの PR には .B 一つの問題 だけを記述しましょう。 .IP \(bu 3m フォローアップメールには、 自動返送されて来るメールと同じサブジェクトを使いましょう。サブジェクトは、 カテゴリ、PR 番号、元の概要の行から構成されています。 これによってサポートサイト は、特定の PR を複数のメールメッセージと結びつけ、またそれらを自動的に 記録することができます。 .IP \(bu 3m サブジェクトや、概要の行はできるだけ正確するようにしましょう。 .IP \(bu 3m サブジェクトや概要の行は機密扱いではありません。 公開されるバグリストはサブジェクトと概要の行から編集するので、 機密情報はここに書かないでください。 .LP 詳しくは、GNU .B Info ファイルの .B cvsbug.info か、RP について詳しく書かれている \fIReporting Problems With cvsbug\fR\ のドキュメントなどを参照してください。 .SH テストケース、コード、その他の記入方法 小さなサンプルコードを送りましょう。 大きなテストケースや問題となっているソースコードを送りたい場合にには、 サポートサイトに連絡を取り、指示を受けて下さい。 .SH 関連ファイル .ta \w'/tmp/pbad$$ 'u /tmp/p$$ 編集しているときに使う PR のコピー .br /tmp/pf$$ テスト目的で使う、空の PR テンプレートコピー .br /tmp/pbad$$ 捨てられた PR のファイル .SH インストールとコンフィギュレーション .B INSTALL インストールガイドを参照してください。 .SH 関連項目 .BR gnats (l), .BR query-pr (1), .BR edit-pr (1), .BR gnats (8), .BR queue-pr (8), .BR at-pr (8), .BR mkcat (8), .BR mkdist (8). .SH 作者 Jeffrey Osier, Brendan Kehoe, Jason Merrill, Heinz G. Seidl (Cygnus Support) .SH COPYING Copyright (c) 1992, 1993 Free Software Foundation, Inc. .PP Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. .PP Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. .PP Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English. diff --git a/ja_JP.eucJP/man/man8/disklabel.8 b/ja_JP.eucJP/man/man8/disklabel.8 index 43b38bdec8..95958c623e 100644 --- a/ja_JP.eucJP/man/man8/disklabel.8 +++ b/ja_JP.eucJP/man/man8/disklabel.8 @@ -1,784 +1,658 @@ .\" Copyright (c) 1987, 1988, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Symmetric Computer Systems. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgment: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)disklabel.8 8.2 (Berkeley) 4/19/94 -.\" %FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.2 2000/10/29 01:58:55 dillon Exp % +.\" %FreeBSD: src/sbin/disklabel/disklabel.8,v 1.15.2.3 2000/10/31 01:32:23 jkh Exp % .\" .\" jpman %Id: disklabel.8,v 1.2 1997/03/31 14:09:16 horikawa Stab % .\" .Dd July 30, 1999 .Dt DISKLABEL 8 .Os FreeBSD .Sh 名称 .Nm disklabel .Nd ディスクラベルの読み書きを行う .Sh 書式 .Nm disklabel .Op Fl r .Ar disk .br .Nm disklabel .Fl w .Op Fl r -.Ar disk Ar disktype/auto +.Ar disk Ar disktype .Oo Ar packid Oc .br .Nm disklabel .Fl e .Op Fl r .Ar disk .br .Nm disklabel .Fl R .Op Fl r .Ar disk Ar protofile .br .Nm disklabel .Op Fl NW .Ar disk .sp .br .Nm disklabel .Fl B .Oo .Fl b Ar boot1 .Fl s Ar boot2 .Oc .Ar disk -.Oo Ar disktype/auto Oc +.Oo Ar disktype Oc .br .Nm disklabel .Fl w .Fl B .Oo .Fl b Ar boot1 .Fl s Ar boot2 .Oc -.Ar disk Ar disktype/auto +.Ar disk Ar disktype .Oo Ar packid Oc .br .Nm disklabel .Fl R .Fl B .Oo .Fl b Ar boot1 .Fl s Ar boot2 .Oc .Ar disk Ar protofile -.Oo Ar disktype/auto Oc +.Oo Ar disktype Oc .\" 注: 上記 .br は改行動作のために挿入 .\" By horikawa@jp.freebsd.org (30 Mar 1997) .Sh 解説 .Nm はディスクドライブやディスクパックにラベルを書き込んだり、 確認したり、修正したりするために使われます。 ラベルを書き込む際には、ドライブの識別子を変更したり、 ディスクのパーティションを変更したり、 異常のあるラベルを置き換えたりすることができます。 コマンドには、ディスク上のラベルを読んだり (表示したり)、書き込んだり、 編集したりするいくつかの書式があります。 また .Nm は同時にブートストラップコードを インストールすることもできます。 .Ss メモリ内のラベルとディスク上のラベル .Pp ディスクラベルは各ディスクパーティションの先頭、 もしくは先頭付近に存在します。 より速くアクセスするために、カーネルは 常にメモリ内にコピーを保持します。 デフォルトでは、 .Nm による操作のほとんどは メモリ内にあるラベルのコピーに対してアクセスします。 -(ディスク上に存在する) ラベルにアクセスするためには +(ディスク上に存在する)ラベルにアクセスするためには .Fl r オプションを使用します。 このオプションにより、 カーネルのサポート無しでラベルがディスクにインストール することが可能になります。 例えばラベルがはじめてシステムにインストールされる時など、 ディスクにはじめてラベルを書き込む際に指定されなければなりません。 .Fl r オプションによる固有の効果は以下の 各コマンドの説明で示します。 .Pp .Ss ディスクデバイス名 .Pp 全ての .Nm disklabel の書式で、ディスクのデバイス名が必要です。 -ディスクのデバイス名は必ずローデバイスで、 -ディスクまたはスライスを表す必要があります。 -例えば -.Pa da0 -は、DOS のパーティショニングに関係無く、ディスク全体を表し、 -.Pa da0s1 -はスライスを表します。 -デバイスによっては、特に -.Ar ccd -は、 -.if t ``ディスク全体'' を表すパーティション (または ``c'') -.if n "ディスク全体" を表すパーティション (または ``c'') -を指定する必要があります。 -例えば -.Pa ccd0c +ディスクのデバイス名は必ずローデバイスで +.if t 「全体」を表すパーティション (すなわち ``c'') +.if n 「全体」を表すパーティション (すなわち "c") +でなければなりません。 +.if t 「全体」を表すパーティション (すなわち ``c'') +.if n 「全体」を表すパーティション (すなわち "c") +とは、例えば +.Pa /dev/da0c です。 -デバイス指定時には、 -.Pa /dev/ -のパスプレフィックスを付ける必要はありません。 .Nm -は自動的にこれを前に付けます。 +は +.Pa da0 +といった省略形を内部で +.Pa /dev/da0c +に変換するため、省略形も使用できます。 .Ss ディスクラベルの読み込み .Pp ラベルをディスクドライブに保存したり確認するためには オプションを指定せずに .Nm を使用します。 .Pp .Nm disklabel .Op Fl r .Ar disk .Pp .Ar disk は対象とするローディスクを示します。 また .Pa da0 や .Pa /dev/da0c のような書式でも指定することができます。 これによってドライブに関するすべてのパラメータとパーティションのレイアウトを 表示します。 .Fl r フラグを指定しない場合には、カーネルのメモリ内にあるラベルのコピーが 表示されます。 もしディスクにラベルが書き込まれていなかったり、ディスクのパーティション形式が 正しくない場合には、カーネルが作り直したり、修正するかもしれません。 .Fl r フラグが与えられると、 ディスク上の実際のラベルが表示されます。 -通常は、どちらでも同じ結果となりますが、 -ラベルが未初期化の場合と壊れている場合には、違う結果となります。 .Ss 標準的なラベルの書き込み .Pp 標準的なラベルを書き込むには、 以下の書式を使います。 .Pp .Nm disklabel .Fl w .Op Fl r -.Ar disk Ar disktype/auto +.Ar disk Ar disktype .Oo Ar packid Oc .Pp -.Nm disklabel -.Fl w -.Op Fl r -.Ar disk -auto -.Pp コマンドには引数として、ラベルを書き込むドライブ名および .Pa disktab(5) に書かれているドライブタイプが必要です。 ドライブのパラメータとパーティション情報は、このファイルから得られたもの が使われます。 もし、同じ型のディスクに異なるパーティション情報を持たせたい場合には、 disktab にそれぞれ別々のエントリを書いておくか、ラベルを書き込んだあとで 後述する方法でそれを編集する必要があります。 オプションの引数として、16 文字までのパック識別用文字列を指定します。 パック名に空白を含める場合にはそれをクォートする必要があります。 .Fl r フラグが与えられると、ディスクのラベルとブートストラップが 直接書き換えられます。 この副作用として、すでにあるブートストラップ用コードが上書きされてしまうため、 ディスクがブート不能にされてしまいます。 ラベルとブートストラップを同時に書き込む方法は 後述のブートオプションを参照してください。 .Fl r が指定されない場合には、ラベルはメモリ内のコピーを通して書き換えられる ため、ブートストラップコードは影響されません。 もしまだディスクがラベル付けされていなければ、 .Fl r フラグをつけなければなりません。 どちらの方法でも、カーネルのメモリ内コピーは変更されます。 .Pp .Xr disktab 5 に記載されていない未使用のディスクに対しては、 .Ar disktype として .Dq auto を指定できます。 この場合、ディスクの最初のラベルを生成するようにドライバに要求します。 これは成功するかも知れないし成功しないかも知れません。 これはディスクドライバがディスクを全く読む事無く 必要なデータを取得できるか否かに依存します。 全ての SCSI ディスクとほとんどの IDE ディスクと vnode デバイスにおいて 成功するでしょう。 ディスクに対するラベルの書き込みは唯一サポートされた操作であり、 .Ar disk 自身は標準の名前 (フルパス名であってはなりません) で提供される必要があります。 -.Pp -PC ベースのシステムでは、 -BIOS に正しく FreeBSD ディスクラベルを認識させるために、 -特別な要件があります。 -古いシステムでは、「危険な方法で専用化された」ディスクラベルが -必要かもしれません。 -これは、偽の DOS パーティションを作成することにより、 -最近のディスクのジオメトリに対して古い BIOS が引き起す問題を -回避するというものです。 -新しいシステムでは、通常の DOS スライスを -.Ar fdisk -で作成して、このスライス中に FreeBSD のディスクラベルを作成すれば良いでしょう。 -本件についてはこのマニュアルで後述します。 -.Pp -新規ディスクラベルをインストールするだけでは、 -このラベルでカーネルをブートさせることは出来ません。 -ブートブロックもまたインストールする必要があります。 -本件についてはこのマニュアルで後述します。 .Ss 既存のディスクラベルの編集 .Pp 既存のディスクラベルを編集するには、 以下の書式を使います。 .Pp .Nm disklabel .Fl e .Op Fl r .Ar disk .Pp このコマンドはラベルを カーネルのメモリ内コピーから、または .Fl r フラグが与えられた場合には直接ディスクから 読み込まれます。 ラベルはアスキーでファイルにかかれ、 編集するためのエディタへ渡されます。 .Ev EDITOR 環境変数によるエディタの指定がない場合には、このエディタには .Xr vi 1 が使用されます。 エディタを終了すると、ラベルファイルはディスクラベルを 再書き込みするために使われます。 .Fl r フラグの指定の有無にかかわらず、 すでにあるブートストラップコードは変更されません。 .Ss ファイルからのディスクラベルの復元 .Pp ファイルからディスクラベルを復元するには、 以下の書式を使います。 .Pp .Nm disklabel .Fl R .Op Fl r .Ar disk Ar protofile .Pp .Nm は以前の操作によりアスキーファイルとして保存されているディスクラベル をディスクへ書き戻します。 ラベルを作成するときに使われるプロトタイプファイルは、ラベルを読み込んだり 編集したりするときのものと同じフォーマットである必要があります。 コメントは .Ar \&# と改行で区切られます。 新しいラベルを書き込む際に .Fl r が指定されているとブートストラップコードは使えなくなってしまいますが、 指定されていない場合には影響ありません。 ラベルの復元とブートストラップの書き込みを同時に行う方法は 後述のブートオプションを参照してください。 .Ss ディスクラベル領域への書き込みの有効化および無効化 .Pp -デフォルトでは、 +デフォルトでは ディスクの先頭領域にあるディスクラベル領域への書き込みは不可能です。 ディスクドライバはいかなる操作も無視します。 -もし (例えばラベルを消去するなど) +もし(例えばラベルを消去するなど) この領域への書き込みを行う必要があるならば、 以下の書式を使います。 .Pp .Nm disklabel .Op Fl W .Ar disk .Pp ラベルの書き込みを可能にした後に不可能にするには 以下のコマンドを使います。 .Pp .Nm disklabel .Op Fl N .Ar disk .Ss ブートストラップのインストール .Pp .Nm の最後の 3 つの書式は、ブートストラップコードを -インストールするために使われます。 -古い PC システムとの互換性のために -「危険な方法で専用化された」パーティションを作成するには、 -通常は -.Pa da0 -等のローディスクを指定する必要があるでしょう。 -既存の DOS スライス中にラベルを作成する時には、 -.Pa da0s1 -等のスライス名を指定する必要があります。 -パーティションをブート可能とするのは、トリッキーかもしれません。 -通常の DOS スライスを使用している場合、 -典型的には標準の MBR をベースディスクにインストールし -(またはそのまま残し)、FreeBSD のブートブロックをスライスにインストールします。 +インストールするために使われます: .Pp .Nm disklabel .Fl B .Oo .Fl b Ar boot1 .Fl s Ar boot2 .Oc .Ar disk .Oo Ar disktype Oc .Pp この書式ではブートストラップのみインストールします。 ディスクラベルは変更しません。 -.Ar da0 -等の「危険な方法で専用化された」ディスクを作成する場合以外、 -ベースディスクに対し、決して本コマンドを使用してはなりません。 -本コマンドは、典型的には、 -.Ar da0s1 -等のスライスに対して実行します。 .Pp .Nm disklabel .Fl w .Fl B .Oo .Fl b Ar boot1 .Fl s Ar boot2 .Oc .Ar disk Ar disktype .Oo Ar packid Oc .Pp .if t この書式は前述の ``ラベルの書き込み'' コマンドと一致します。 -.if n この書式は前述の "ラベルの書き込み" コマンドと一致します。 +.if n この書式は前述の "ラベルの書き込み" コマンドと一致します 新しいボリュームラベルを書き込むとともに ブートストラップのインストールもおこないます。 -ベースディスクに対して本コマンドを実行すると、 -「危険な方法で専用化された」ラベルが作成されます。 -本コマンドは、通常、ベースディスクではなくスライスに対して実行するものです。 .Pp .Nm disklabel .Fl R .Fl B .Oo .Fl b Ar boot1 .Fl s Ar boot2 .Oc .Ar disk Ar protofile .Oo Ar disktype Oc .Pp -.if t この書式は前述の ``ラベルの復元'' コマンドと一致します。 -.if n この書式は前述の "ラベルの復元" コマンドと一致します。 +.if t この書式は前述の ``ラベルの復元'' コマンドと一致します. +.if n この書式は前述の "ラベルの復元" コマンドと一致します. ボリュームラベルを復元するとともに ブートストラップのインストールもおこないます。 -ベースディスクに対して本コマンドを実行すると、 -「危険な方法で専用化された」ラベルが作成されます。 -本コマンドは、通常、ベースディスクではなくスライスに対して実行するものです。 .Pp ブートストラップコマンドは常にディスクに直接アクセスするため、 .Fl r フラグを指定する必要はありません。 .Pp ブートストラップコードは 2 つのブートプログラムより構成されます。 インストールされるブートプログラムの名前は 以下の 3 つの方法の中の 1 つより指定します。 .Bl -enum .It .Fl b フラグと .Fl s フラグを用いて明示的に名前を指定します。 .Fl b フラグで指定するのが最初のブートプログラムで、 .Fl s フラグで指定するのが 2 段階目のブートプログラムになります。 ブートプログラムは、 .Pa /boot に置かれます。 .It .Fl b フラグと .Fl s フラグが指定されておらず .Ar disktype が指定された場合、 disktab のエントリが存在しこれらのパラメータが含まれるならば プログラムの名前は このディスクに対する .Xr disktab 5 エントリの .if t ``b0'' および ``b1'' .if n "b0" および "b1" パラメータより得られます。 .It そうでない場合、デフォルトのブートイメージ名は 標準のステージ 1 およびステージ 2 のブートイメージとして .Pa /boot/boot1 と .Pa /boot/boot2 になります (詳細はアーキテクチャによって異なり、 Alpha においては単一ステージのブートが使用されます)。 .El -.Ss スクラッチからの、ブート可能ディスクの初期化/フォーマット -.Pp -ディスクをスクラッチから初期化するには、次の手順をお勧めします。 -この手順は、FreeBSD 以外のスライスを含む、 -ディスク上のすべてを削除してしまうことに注意してください。 -.Bl -enum -.It -.Ar fdisk -を使用して、DOS パーティションテーブルを作成します。 -これにより、FreeBSD ディスクラベルを保持するディスク全体のスライスを作成し、 -マスタブートレコードをインストールします。 -.It -.Ar disklabel -を使用して、最初の FreeBSD ディスクラベルを初期化し、 -FreeBSD ブートブロックをインストールします。 -.It -.Ar disklabel -を使用して、新規に作成したラベルを編集し、適切なパーティションを追加します。 -.It -最後に、ラベル中に作成したファイルシステムパーティションを newfs します。 -典型的なディスクラベルのパーティショニング方式では、 -``a'' パーティションは約 128MB でルートファイルシステムを、 -``b'' パーティションはスワップを、 -``d'' パーティションは /var を (通常 128MB)、 -``e'' パーティションは /var/tmp を (通常 128MB)、 -``f'' パーティションは /usr を (通常 2G くらい)、 -``g'' パーティションは /home を (通常、残り)、 -それぞれ割り当てます。 -これは、システムによって異なります。 -.El -.Pp -.Nm fdisk -BI da0 -.Pp -.Nm disklabel -.Fl w -.Fl r -.Fl B -.Ar da0s1 -auto -.Pp -.Pp -.Nm disklabel -.Fl e -.Ar da0s1 -.Pp .Sh 関連ファイル .Bl -tag -width Pa -compact .It Pa /etc/disktab .It Pa /boot/ .It Pa /boot/boot .Sh 保存されたファイルの書式 .Nm は ディスクラベルを確認、編集、または復元する際に -ASCII 形式のラベルを使用します。 +アスキー形式のラベルを使用します。 フォーマットは以下のとおりです。 .Bd -literal -offset 4n # /dev/da1c: type: SCSI disk: da0s1 label: flags: bytes/sector: 512 sectors/track: 51 tracks/cylinder: 19 sectors/cylinder: 969 cylinders: 1211 sectors/unit: 1173930 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 81920 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 84*) b: 160000 81920 swap # (Cyl. 84* - 218*) c: 1173930 0 unused 0 0 # (Cyl. 0 - 1211*) h: 962010 211920 vinum # (Cyl. 218*- 1211*) .Ed .Pp # で始まる行はコメントです。 他の項目のほとんども既に使われていません。 正しく設定されてなければならない項目は以下のとおりです: .Pp .Bl -hang -width 20n .It Nm label オプションのラベルです。 ラベルを書き込む際に .Ar packid オプションにより設定されます。 .It Nm flags flags は .Ar removable 、 .Ar ecc もしくは .Ar badsect が指定可能です。 .Ar removable はリムーバブルメディアドライブに対して設定されますが、 現在の FreeBSD のドライバはこのフラグを 評価しません。 .Ar ecc はサポートされていません。 .Ar badsect はドライブが不良セクタの代替を行える場合に 指定します。 .It Nm sectors/unit ディスクの全体の大きさを示します。 この値は正しくなければなりません。 .It Nm the partition table これはUNIX のパーティションテーブルであり、 .Xr fdisk 8 で述べられている Microsoft のパーティションテーブルではありません。 .El .Pp パーティションテーブルは 8 つまでエントリを持つことができ、 以下の情報を含みます: .Bl -hang -width 10n .It identifier パーティションの識別子は .Nm a から .Nm h の 1 文字です。 慣例的な理由により、 .Nm c パーティションは ディスク全体を表すために予約されています。 .It size セクタ単位でのパーティションの大きさです。 .It offset ドライブの先頭からのオフセットによるパーティションの開始位置です。 .It fstype パーティションの使用目的を表します。 例ではもっとも一般的な使用例を示しています。 UFS ファイルシステムは 4.2BSD が使われます。 完全なリストは .Pa /usr/include/sys/disklabel.h を参照してください。 .It fsize ファイルシステムに対して有効です。 フラグメントのサイズを意味します。 .It bsize ファイルシステムに対して有効です。 ブロックののサイズを意味します。 .It bps/cpg UFS ファイルシステムに対しては、 シリンダグループ中のリシンダ数を意味します。 LFS ファイルシステムに対しては、 セグメントシフト値を意味します。 .El 行の残りの部分はコメントで、 ドライブの -一般的には使われていない (しかし多分正確な) ジオメトリ情報に +一般的には使われていない(しかし多分正確な)ジオメトリ情報に 基づいたシリンダの割り当て情報を示しています。 アスタリスク (*) はパーティションがシリンダ境界で 厳密にはじまっていない、もしくは終っていないことを意味します。 .Sh 使用例 .Dl disklabel da0 .Pp -.Pa da0s1 -のラベルとしてカーネル内のコピーを -.Pa /dev/da0s1 +da0 のラベルとしてカーネル内のコピーを +.Pa /dev/da0c から得られたものとして表示します。 -ラベルを読み込み時には、ラベルがスライス上に存在する場合でも、 -FreeBSD はベースディスク名を指定することを許しています。 -しかしながら、厳密には、 -ベースディスク名を指定するのは -「危険な方法で専用化された」ラベルを使用する場合に限定してください。 -通常は、スライスを指定してください。 .Pp -.Dl disklabel da0s1 > savedlabel +.Dl disklabel da0 > savedlabel .Pp -.Pa da0s1 +.Pa da0 に対する カーネル内のコピーをファイルに .Pa savedlabel に保存します。 このファイルは後で .Fl R フラグを用いてラベルを復元する際に使用できます。 .Pp -.Dl disklabel -w -r /dev/da0s1 da2212 foo +.Dl disklabel -w -r /dev/da0c da2212 foo .Pp .Pa /etc/disktab に書かれている .if t ``da2212'' .if n "da2212" の情報を -.Pa da0s1 -のラベルとして書き込みます。 +da0 のラベルとして書き込みます。 存在したブートストラップコードは使えなくなります。 .Pp -.Dl disklabel -e -r da0s1 +.Dl disklabel -e -r da0 .Pp da0 のディスク上のラベルを読み込み、編集し、再び書き込みます。 ディスク上のラベルとともにカーネル内コピーも書き換えられます。 存在したブートストラップコードは影響を受けません。 .Pp -.Dl disklabel -r -w da0s1 auto +.Dl disklabel -r -w da0 auto .Pp -.Pa da0s1 -から必要な情報を自動検出し、新しいラベルをディスクに書こうとします。 +da0 から必要な情報を自動検出し、新しいラベルをディスクに書こうとします。 パーティションおよびファイルシステム情報を編集するために、 この後で disklabel -e コマンドを使って下さい。 .Pp -.Dl disklabel -R da0s1 savedlabel +.Dl disklabel -R da0 savedlabel .Pp .Pa savedlabel に書かれている情報を -.Pa da0s1 -のラベルとして書き込みます。 +da0 のラベルとして書き込みます。 ディスク上のラベルとともにカーネル内コピーも書き換えられます。 存在したブートストラップコードは影響を受けません。 .Pp -.Dl disklabel -B da0s1 +.Dl disklabel -B da0 .Pp -.Pa da0s1 -に新たにブートストラップコードを書き込みます. +da0 に新たにブートストラップコードを書き込みます. ブートストラップコードは .Pa /boot/boot1 、およびもし必要ならば .Pa /boot/boot2 です。 ディスク上のラベルおよびカーネル内コピーは影響を受けません。 .Pp -.Dl disklabel -w -B /dev/da0s1 -b newboot1 -s newboot da2212 +.Dl disklabel -w -B /dev/da0c -b newboot1 -s newboot da2212 .Pp 新たなラベルとブートストラップコードを書き込みます。 .if t ラベルは disktab の ``da2212'' の情報を使用し、 .if n ラベルは disktab の "da2212" の情報を使用し、 ディスク上のラベルとともにカーネル内コピーも書き換えられます。 ブートストラップコードは .Pa /boot/newboot1 と .Pa /boot/newboot2 です。 -.Pp -.Dl dd if=/dev/zero of=/dev/da0 bs=512 count=32 -.Dl fdisk -BI da0 -.Dl dd if=/dev/zero of=/dev/da0s1 bs=512 count=32 -.Dl disklabel -w -r -B da0s1 auto -.Dl disklabel -e da0s1 -.Pp -ディスク上の既存の情報を完全に削除し、 -単一の「ディスク全体」スライスを含む DOS パーティションテーブル付きの、 -ブート可能ディスクを新規に作成します。 -次にスライスを初期化し、編集します。 -.Pa dd -はオプションですが、 -BIOS によっては正しくディスクを認識するために必要です。 .Sh 関連項目 .Xr disklabel 5 , .Xr disktab 5 , .Xr boot0cfg 8 , .Xr fdisk 8 .Sh 診断 デバイスドライバは、 オープンされているパーティションに関して、 サイズが小さくなることおよびオフセットが変化することを許しません。 デバイスドライバの中には、 ラベルを持たないディスクに対して 1 パーティションのみからなる ラベルを作成するものがあります。 そのため、 オープンされているディスクのラベルは .if t ``a'' .if n "a" パーティションに書く必要があります。 このような理由で、 次の 2 ステップにより、 所望のラベルを作成する必要がある場合があります。 第 1 ステップは少なくとももう 1 つのパーティションを作成することであり、 第 2 ステップは .if t ``a'' .if n "a" パーティションを小さくしながら 新たなパーティションのラベルを設定することです。 .Pp ファイルシステムによっては、 用意された領域にブートストラップコードが収まり切らないような マシンがあるかも知れません その結果として、``ブート可能な'' ディスクのパーティションに ファイルシステムを作成できない場合があります。 ブートストラップコードを書き込む時に、 .Nm はこのようなケースをチェックします。 FS_UNUSED タイプのパーティションに重なるように ブートストラップコードが書き込まれる場合には、 そのパーティションは FS_BOOT とマークされます。 .Xr newfs 8 ユーティリティは、 FS_BOOT パーティションにファイルシステムを作成することを禁止します。 また逆に、 パーティションのタイプが FS_UNUSED もしくは FS_BOOT では無い場合、 .Nm はそのパーティションに重なるようなブートストラップコードを書き込みません。 .Sh バグ ディスク名がフルパスで指定されない場合には、 .if t デバイス名は ``c'' パーティションになります。 .if n デバイス名は "c" パーティションになります。 .Pp i386 アーキテクチャでは、プライマリブートストラップセクタに、 組み込みの .Em fdisk テーブルを持ちます。 .Nm は、 ブートストラップのみをインストールする時 .Pq Fl B もしくはラベルを編集する時 .Pq Fl e にこれを壊さないように気を付けます。 しかし、 .Fl w や .Fl R を指定した時には、 無条件でプライマリブートストラッププログラムをディスクに書き込みますので、 .Em fdisk テーブルをブートストラッププログラム内のダミーに置き換えます。 これはディスク全体を専用に使う場合、 すなわち BSD ディスクラベルがディスクの絶対ブロック 0 から始まる場合 のみ関係あります。 .Pp .Nm は十分なエラーチェックは行いません。 パーティションが重なったり使われない領域が残ってしまっても 警告は出力されません。 diff --git a/ja_JP.eucJP/man/man8/jail.8 b/ja_JP.eucJP/man/man8/jail.8 index 2de5a07616..86c6a29c89 100644 --- a/ja_JP.eucJP/man/man8/jail.8 +++ b/ja_JP.eucJP/man/man8/jail.8 @@ -1,350 +1,395 @@ .\" .\"Copyright (c) 2000 Robert N. M. Watson .\"All rights reserved. .\" .\"Redistribution and use in source and binary forms, with or without .\"modification, are permitted provided that the following conditions .\"are met: .\"1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\"2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\"THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\"ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\"FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\"DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\"OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\"HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\"LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\"OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\"SUCH DAMAGE. .\" .\" .\"---------------------------------------------------------------------------- .\""THE BEER-WARE LICENSE" (Revision 42): .\" wrote this file. As long as you retain this notice you .\"can do whatever you want with this stuff. If we meet some day, and you think .\"this stuff is worth it, you can buy me a beer in return. Poul-Henning Kamp .\"---------------------------------------------------------------------------- .\" -.\"%FreeBSD: src/usr.sbin/jail/jail.8,v 1.13.2.2 2000/07/08 14:43:34 dannyboy Exp % +.\"%FreeBSD: src/usr.sbin/jail/jail.8,v 1.13.2.3 2000/11/01 19:10:06 rwatson Exp % .\" .Dd April 28, 1999 .\" jpman %Id: jail.8,v 1.3 2000/05/22 03:23:14 takamune Stab % .Dt JAIL 8 .Os FreeBSD 4.0 .Sh 名称 .Nm jail .Nd プロセスとその子孫を閉じ込める .Sh 書式 .Nm jail .Ar path .Ar hostname .Ar ip-number .Ar command .Ar ... .Sh 解説 .Nm コマンドはプロセスとその将来の子孫を閉じ込めます。 .Pp 詳細は .Xr jail 2 のマニュアルページを参照してください。 .Sh 使用例 .Ss jail 用ディレクトリツリー設定 この例は jail 用ディレクトリツリーをどのように構築するかを示しています: .Bd -literal D=/here/is/the/jail cd /usr/src make hierarchy DESTDIR=$D make obj make depend make all make install DESTDIR=$D cd etc make distribution DESTDIR=$D NO_MAKEDEV=yes cd $D/dev sh MAKEDEV jail cd $D ln -sf dev/null kernel .Ed .Ss jail の設定 jail 用ディレクトリツリーの構築のためには、 .Sx jail 用ディレクトリツリー設定 に記述されている手順を実行してください。 この例では、jail された IP アドレス用に .Pa /data/jail/192.168.11.100 に構築するものと仮定します。 以降、 あなたが必要とするディレクトリ、IP アドレス、ホスト名で置き換えてください。 .Pp まず、実システムの環境を .Dq jail に適した環境 にします。 一貫性のために、親となる実マシンを .Dq ホスト環境 と呼び、jail される仮想マシンを .Dq jail 環境 と呼びます。 jail は IP エイリアスを使用して実装されていますので、 最初にすべきことのひとつは、 ホストシステムの IP サービスで、 全ローカル IP アドレスに対してサービスを listen しているものを、 無効化することです。 これは、 .Xr inetd 8 を修正して、適切な IP アドレスのみ listen させるといった ことを意味します。 次の設定を、ホスト環境の .Pa /etc/rc.conf に追加します: .Bd -literal -offset indent sendmail_enable="NO" inetd_flags="-wW -a 192.168.11.23" portmap_enable="NO" syslogd_flags="-ss" .Ed .Pp この例では、 .Li 192.169.11.23 はホストシステムの元々の IP アドレスです。 .Xr inetd 8 から実行されるデーモンは、指定されたホスト IP アドレスを使用するよう、 簡単に設定可能です。 他のデーモンは手動での設定が必要です -- いくつかに対しては、 .Xr rc.conf 5 フラグエントリにて可能ですが、他のものに対してはアプリケーション毎の 設定ファイルをいじるか、再コンパイルが必要です。 実行に使用する IP アドレスを指定不可能なアプリケーションに対しては、 可能であればこれらを無効にする方が良いです。 .Pp ベースシステムに付属する多くのデーモンは、 jail 中枢環境内で jail から実行されると、問題を持ち得ます。 これには .Xr syslogd 8 , .Xr sendmail 8 , .Xr named 8 , .Xr portmap 8 が含まれます。 sendmail と named は、自身の設定ファイルを使用して、 特定の IP のみ listen するよう設定可能ですが、 ほとんどの場合、 デーモンを単に jail 内でのみ実行して、ホスト環境では実行しない方が簡単です。 syslogd は単一 IP のみに bind するよう設定できませんが、 ネットワークポートに bind しないようにするために、``-ss'' 引数を使用可能です。 ホスト環境からの NFS にサービスしようとすると、 混乱が生じるかもしれませんし、 特定の IP だけを使用するようには簡単には再設定できません。 これは、NFS のサービスには、直接カーネルが実行するものがあるからです。 ホスト環境内で動作している すべてのサードパーティネットワークソフトウェアもまた確認および設定して、 すべての IP アドレスに bind しないようにすべきです。 結果として、これらのサービスもまた、 jail 環境から提供されているように見えるでしょう。 .Pp ひとたびこれらのデーモンが無効化またはホスト環境内に固定化されたなら、 後の混乱 (jail へメールを送るときに、jail の sendmail がダウンしていて、 メールがホストへ配送されてしまうなど) の可能性を減らすために、 リブートして全デーモンが既知の状態となるようにするのが最良です。 .Pp 最初に jail を起動するときには、 ネットワークインタフェースを設定しないでください。 これは、ネットワークインタフェースを少し整理したり、 アカウントを設定するためです。 どんなマシンでも (仮想であってもそうでなくても)、 root のパスワードやタイムゾーンといった情報を設定する必要があるでしょう。 始める前に、 .Xr sysinstall 8 を jail のツリーにコピーすることにより、簡単に設定できます。 次のように行います: .Bd -literal -offset indent # mkdir /data/jail/192.168.11.100/stand # cp /stand/sysinstall /data/jail/192.168.11.100/stand .Ed .Pp それから、jail を開始します: .Bd -literal -offset indent # jail /data/jail/192.168.11.100 testhostname 192.168.11.100 /bin/sh .Ed .Pp 最後に、エラー無しで、jail 内の、シェルプロンプトで終るでしょう。 ここで、 .Pa /stand/sysinstall を実行し、インストール後の設定で様々な設定オプションを設定できます。 また、同様のことを実現するために、rc.conf 等を手動で編集できます。 .Pp .Bl -bullet -offset indent -compact .It 空の /etc/fstab を作成し、空の fstab に関する起動警告を解消します。 .It ポートマッパを無効化します (rc.conf: portmap_enable="NO")。 .It .Xr newaliases 1 を実行し、sendmail の警告を解消します。 .It インタフェース設定を無効化し、ifconfig 関連の起動警告を解消します (network_interfaces="")。 .It /etc/resolv.conf を設定し、jail 内の名前解決が正しく動作するようにします。 .It root のパスワードを設定します。 実ホストシステムとは異なっても良いです。 .It タイムゾーンを設定します。 .It jail 環境内のユーザにユーザアカウントを追加します。 .It jail 環境に必要なパッケージを追加します。 .El .Pp パッケージ固有の設定 (ウェブサーバや SSH サーバ等) や、 好みのログを取るための /etc/syslog.conf の修正等を行ってください。 .Pp シェルから抜ければ、jail はシャットダウンします。 .Ss jail の開始 jail を再開し、 全デーモンと他のプログラムと共に環境を立ち上げる準備ができました。 これを実行するには、まず仮想ホストのインタフェースを立ち上げ、 それから jail の .Pa /etc/rc スクリプトを jail 内から実行します。 .Pp 注: 信頼できないユーザに jail 内で root アクセスを許す予定なら、 jail.set_hostname_allowed を 0 に設定することを検討すると良いでしょう。 管理上の理由を参照して、何故これが良い考えなのかを見てください。 この変数を設定することにしたならば、 すべての jail の起動前にこれを設定することが必要であり、 またブートの度に 1 度必要です。 .Bd -literal -offset indent # ifconfig ed0 inet alias 192.168.11.100 netmask 255.255.255.255 # mount -t procfs proc /data/jail/192.168.11.100/proc # jail /data/jail/192.168.11.100 testhostname 192.168.11.100 \\ /bin/sh /etc/rc .Ed .Pp ほとんどの .Xr sysctl 8 設定変数は jail 内から設定不可であるため、若干の警告が表示されます。 なぜなら、 これらの設定変数は、すべての jail 環境とホスト環境に渡って大域的だからです。 しかしながら、すべて正しく動作することでしょう。 .Xr inetd 8 , .Xr syslogd 8 および他のプロセスが jail 内で動作していることは、 .Xr ps 1 を使用することにより、jail されたプロセスの横に .Dq J フラグが付いていることにより確認可能です。 jail された環境へは、ホスト名または IP アドレスで telnet 可能であり、 前述の手順で作成したアカウントを使用してログイン可能です。 .Ss jail の管理 通常のマシンのシャットダウンコマンド、例えば .Xr halt 8 , .Xr reboot 8 , .Xr shutdown 8 は jail 内ではうまく使えません。 jail 内の全プロセスを殺すためには、jail に root でログインし、 やりたいことに依存して次のいずれかのコマンドを使用します: .Pp .Bl -bullet -offset indent -compact .It .Li kill -TERM -1 .It .Li kill -KILL -1 .El .Pp これにより、 .Dq TERM または .Dq KILL のシグナルを、jail 内から jail 内の全プロセスに通知します。 jail の用途に依存して、jail 内で .Pa /etc/rc.shutdown を実行したいかもしれません。 現在のところ、jail 内に新規プロセスを挿入する手段はありませんので、 これらの動作を行う前にまず jail へログインする必要があります。 .Pp jail 外からプロセスを殺すためには、 殺すプロセスの個々の PID を判別することが必要です。 .Pa /proc/ Ns Va pid Ns Pa /status ファイルの最後のフィールドには、 プロセスが動作している jail のホスト名か、 このプロセスが jail 内で動作していないことを示すために .Dq - を含みます。 .Xr ps 1 コマンドもまた、jail 内のプロセスに対して .Dq J フラグを示します。 しかし、jail 用のホスト名はデフォルトでは jail 内から書き換え可能であるため、 デフォルトでは .Pa /proc の status エントリは信頼できません。 jail 内からのホスト名設定を禁ずるには、ホスト環境の sysctl 変数 .Dq Va jail.set_hostname_allowed を 0 に設定します。 これはすべての jail に影響します。 .Xr sysctl.conf 5 を使うことにより、ブートのたびにこの sysctl 設定を行えます。 次の行を sysctl.conf に追加するだけです: .Bd -literal -offset indent jail.set_hostname_allowed=0 .Ed .Pp 将来のバージョンの FreeBSD では、jail を管理するための機構は、 より良くなっているでしょう。 +.Ss Sysctl MIB エントリ +jail 封鎖環境の特定の側面は、ホスト環境から、 +.Xr sysctl 8 +MIB 変数を使用して変更可能です。 +現在のところ、これらの変数はシステム上のすべての jail 環境に影響しますが、 +将来的にこの機能はより細粒度となる予定です。 +.Bl -tag -width XXX +.It jail.set_hostname_allowed +本 MIB エントリは、jail 内のプロセスが +.Xr hostname 1 +または +.Xr sethostname 3 +を使用して、ホスト名を変更可能か否かを指定します。 +現在の jail 実装では、 +jail 内からホスト名を設定できてしまうと、 +.Pa /proc +内の jail 情報が正確であることに依存している管理ツールへ影響します。 +このため、 +信頼できない団体に jail への特権アクセスを許している環境においては、 +本機能は無効化するべきです。 +.It jail.socket_unixiproute_only +jail 機能は、単一の IPv4 アドレスを各 jail へ bind し、 +IPv4 空間における他のネットワークアドレスへのアクセスを制限します。 +これらは、ホスト環境ではアクセス可能であるかもしれません。 +しかしながら jail は現在のところ、 +jail 機能を持たない他のネットワークプロトコルスタックへの +アクセスを制限できません。 +このためデフォルトでは、jail 内のプロセスは +.Dv PF_LOCAL , +.Dv PF_INET , +.Dv PF_ROUTE +ドメインのプロトコルにのみアクセス可能ですので、 +UNIX ドメインソケット、IPv4 アドレス、ルーティングソケットにアクセス可能です。 +他のドメインへアクセスを有効にするには、 +本 MIB エントリを 0 に設定します。 +.It jail.sysvipc_allowed +本 MIB エントリは、jail 内のプロセスが System V IPC プリミティブへの +アクセスを持つか否かを指定します。 +現在の jail 実装では、System V プリミティブは、 +ホスト環境と jail 環境に跨がる単一の名前空間を共有します。 +これは、jail 内のプロセスが jail 外のプロセスや他の jail 内のプロセスと +通信可能である (また潜在的に妨害も可能である) ことを意味します。 +このため、この機能はデフォルトで無効ですが、 +本 MIB エントリを 1 に設定することで有効にできます。 +.El .Sh 関連項目 .Xr chroot 2 , .Xr jail 2 , .Xr procfs 5 , .Xr rc.conf 5 , .Xr sysctl.conf 5 , .Xr halt 8 , .Xr inetd 8 , .Xr named 8 , .Xr portmap 8 , .Xr reboot 8 , .Xr sendmail 8 , .Xr shutdown 8 , .Xr sysctl 8 , .Xr syslogd 8 .Sh 歴史 .Fn jail ファンクションコールは .Fx 4.0 ではじめて登場しました。 .Sh 作者 jail の機能は .An Poul-Henning Kamp によって R&D Associates .Dq Li http://www.rndassociates.com/ のために書かれ、 .Fx に寄贈されました。 .Pp Robert Watson が追加の文書を書き、少々バグを見つけ、 新規機能を少々追加し、ユーザランドの jail 環境を綺麗にしました。 .Sh バグ jail は現在のところ、強力な管理機構を持ちません。 これには例えば、jail 内の全プロセスにシグナルを送る、 .Xr procfs 5 に対して特定の jail 情報を .Xr ps 1 経由でアクセスできるようにすることが含まれます。 また、アドレスエイリアスフラグを追加して、 全 IP (INADDR_ANY) 上で listen するようなデーモンが このフラグを持つアドレスには bind しないようにすると良いかもしれません。 これにより、jail 内から提供されるサービスに対して ホストデーモンが負担をかけない、安全なホスト環境を構築可能とします。 現在のところ、 最も単純な答えはホスト上で提供するサービスを最小化することであり、 おそらく簡単に設定可能な .Xr inetd 8 から提供されるものに限定することでしょう。 diff --git a/ja_JP.eucJP/man/man8/mergemaster.8 b/ja_JP.eucJP/man/man8/mergemaster.8 index 5752b239ab..75f282e256 100644 --- a/ja_JP.eucJP/man/man8/mergemaster.8 +++ b/ja_JP.eucJP/man/man8/mergemaster.8 @@ -1,286 +1,332 @@ -.\" Copyright (c) 1998, 1999 Douglas Barton +.\" Copyright (c) 1998-2000 Douglas Barton .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/mergemaster/mergemaster.8,v 1.5.2.1 2000/08/07 23:27:37 marko Exp % +.\" %FreeBSD: src/usr.sbin/mergemaster/mergemaster.8,v 1.5.2.2 2000/11/01 08:34:30 dougb Exp % .\" .\" jpman %Id: mergemaster.8,v 1.3 1999/12/05 08:25:49 horikawa Stab % -.Dd September 10, 1999 +.Dd October 30, 2000 .Dt MERGEMASTER 8 .Os FreeBSD .Sh 名称 .Nm mergemaster .Nd アップグレード中の設定ファイルその他のマージ .Sh 書式 .Nm -.Op Fl scrvah +.Op Fl scrvahi .Op Fl m Ar /path/to/sources .Op Fl t Ar /path/to/temp/root .Op Fl d .Op Fl u Ar N .Op Fl w Ar N +.Op Fl D Ar /path .Sh 解説 .Nm は、様々な設定や FreeBSD に関連したファイルをアップデートする作業を 補助するために作られた Bourne シェルスクリプトです。 この作業を始める前に .Pa /etc ディレクトリをバックアップしておくことを .Sy 強く 勧めます。 .Pp このスクリプトは .Pa /usr/src/etc/Makefile を使って .Pa / から下の仮のルート環境を作成し、そこに様々なファイルを格納します。 .Op Fl m -コマンドラインオプションで、違うソースディレクトリを指定することもできます。 +コマンドラインオプションで違うソースディレクトリを指定することや、 +.Op Fl D +コマンドラインオプションで違う宛先ディレクトリを指定することもできます。 そしてその環境中のそれぞれのファイルを、 インストールされているものと比較します。 スクリプトが新しいファイルに変更点を見つけた場合や、 新しいファイルに対応するインストールされているファイルがない場合には、 それを処理するための 4 つの選択肢を示します。 新しいファイルをそのままインストールする、 新しいファイルは消す、 新旧のファイルを .Xr sdiff 1 を使って適切にマージする、 後で手でマージするためにファイルを仮のルート環境に残しておく、 のいずれかを選べます。 .Pp デフォルトでは、 .Pa /var/tmp/temproot に仮のルートを作り、 .Xr cvs 1 バージョン文字列 %Id/%FreeBSD があるファイルについてはそれを比較して、 もし同じであれば仮のファイルを削除します。 $Id 文字列がない時や、あっても一致しない場合には、 ファイルそのものを比較します。 $Id 文字列を無視して全てのファイルを比較するように指定することもできます。 .Pp .Nm は umask を調べて、022 以外であれば警告を出します。 ほとんどの設定ファイルは world read パーミッションを与えることが 強制されているわけではありませんが、 そうしないと問題になるかもしれません。 もし 022 以外 の umask を選び、あとで何らかのトラブルが生じた場合、 その原因がこれかもしれません。 .Pa /etc/master.passwd は特例として扱います。 このファイルないしマージしたファイルをインストールすることを選択すると、 このファイルのパーミッションはセキュリティ上の理由から 常に 600 (rw-------) になります。 このファイルのアップデート版をインストールした後は、 .Xr pwd_mkdb 8 を -p オプション付きで実行して、 パスワードデータベースの再構築と .Pa /etc/passwd の作り直しをさせる必要があります。 .Pp スクリプトは、 .Pa /usr/src/etc/Makefile が作成したファイルに付けた所有者 ID およびグループ ID と、 umask によって指定されたファイルパーミッションを用います。 context diff を選ばない限り、 デフォルトで unified diff を使って差分を表示します。 .Pp +.Nm +は、比較開始直前と実行完了前に、指定したスクリプトを読み込みます。 +最も簡単な方法は、 +.Pa .mergemasterrc +において、スクリプトへのパスを適切な変数へ設定することです。 +比較前に読み込まれるスクリプトは +.Ev MM_PRE_COMPARE_SCRIPT +で指定し、スクリプト完了後に実行するものは +.Ev MM_EXIT_SCRIPT +で指定します。 +これが、 +ローカルでの修正および特別な処理を行うファイルを指定するための推奨方法です。 +これには、比較せずに削除したいファイルも含みます。 +指定したスクリプトは、 +.Nm +内部から読み込まれますので、 +スクリプトの全変数がカスタムスクリプト中で使用可能です。 +.Pp オプションは以下の通りです: .Bl -tag -width Fl .It Fl s 全てのファイルの対について diff をとり、厳密な比較をします。 .It Fl c unified diff の代わりに context diff を用います。 .It Fl r 仮のルート環境を新規に作ることをせずに、 以前掃除したディレクトリで再実行します。 このオプションは他の全てのオプションと一緒に使えます。 .It Fl v 処理についてより冗長に出力します。 あなたが初めて .Nm mergemaster を実行する時には、おそらくこのオプションを付けるべきでしょう。 さらにこのオプションは、 インストールされている方の .Pa /etc にしかないファイルの一覧を提供します。 .It Fl a 自動実行。 このオプションはインストールされているものと食い違う全てのファイルを、 手で処理するために仮のディレクトリに残しておきます。 もしすでに .Pa temproot ディレクトリがある場合には、 以前はなかったディレクトリに新しく作ります。 このオプションは冗長フラグを解除しますが、 他の全てのオプションと一緒に使えます。 -a オプションを使うと、-w オプションは無意味になります。 .It Fl h 使用法とヘルプ情報を表示します。 +.It Fl i +宛先ディレクトリに存在しないファイルは、自動的にインストールします。 .It Fl m Ar /path/to/sources .Xr make 1 を実行するディレクトリのパスを指定します。 (言い替えるとソースの場所です。-s がもう使われているので) .It Fl t Ar /path/to/temp/root 仮のルート環境をデフォルトの .Pa /var/tmp/temproot の代わりに .Pa /path/to/temp/root に作ります。 .It Fl d 仮のルートディレクトリの名前に、日付と時間を足します。 -t オプションを指定しているときに日付も足したいなら、 このオプションは -t の後に置く必要があります。 .It Fl u Ar N umask を数字で指定します。デフォルトは 022 です。 .It Fl w Ar N .Xr sdiff 1 コマンドに画面幅を桁数で指定します。 デフォルトは 80 です。 +.It Fl D Ar /path +ファイルをインストールする、宛先ディレクトリを指定します。 .El .Sh 環境変数 .Nm スクリプトは、 .Ev PAGER 環境変数がセットされていればそれを使い、さもなくば .Xr more 1 を使います。 もし .Ev PAGER に、フルパスではなく、 .Ev PATH の範囲にないプログラムを指定している場合には、 .Nm は選択肢とともにどう続行するのかを催促します。 +.Ev MM_PRE_COMPARE_SCRIPT +と +.Ev MM_EXIT_SCRIPT +の変数は、前述のように使用します。 +スクリプト内部で使用する他の変数は、後で詳述するように、 +.Pa .mergemasterrc +で指定可能です。 .Sh 使用例 大抵の場合、あなたがする必要があるのは、 プロンプトで .Nm と打つことだけで、あとはスクリプトがあなたに代わって全ての作業をします。 .Pp context diff を使い、かつ .Nm が処理が進むにつれ、よりたくさんの説明をするようにするには: .Pp .Dl # mergemaster -cv .Pp .Nm が仮のルート環境を .Pa /usr/tmp/root に作るように指定するには: .Pp .Dl # mergemaster -t /usr/tmp/root .Pp 110 桁の画面と、厳密な比較を指定するには: .Pp .Dl # mergemaster -sw 110 .Sh 関連ファイル .Bl -tag -width $HOME/.mergemasterrc -compact .Pa $HOME/.mergemasterrc .Pp .Nm はこのファイルがあれば読み込みます。 コマンドラインオプションは rc ファイルオプションを上書きします。 全ての値をコメントアウトした例を示します: .Pp .Bd -literal # mergemaster のオプションが、デフォルト値とともに一覧してあります # 以下のオプションはコマンドラインが上書きします # # 仮のルート環境をインストールするディレクトリ #TEMPROOT='/var/tmp/temproot' # # CVS $Id の検査を省略して全てのファイルを比較する厳密な比較 #STRICT=no # # ファイルが食い違った時に差分を表示するための diff に使うフラグ #DIFF_FLAG='-u' # # より詳細な出力とチェックの追加を含める冗長モード #VERBOSE= # +# システム上に存在しないファイルは自動的にインストールする +#AUTO_INSTALL= +# # 'make' を実行するディレクトリ (新しいファイルがある場所) -#SOURCEDIR=/usr/src/etc +#SOURCEDIR='/usr/src/etc' # # mergemaster がデフォルトのファイルモードとの比較に使う umask #NEW_UMASK=022 # +# ファイルをインストールする、宛先ディレクトリを指定する +#DESTDIR= +# # 以下のオプションはコマンドラインから上書きできません # PAGER にフルパスを含めたくない人用 #DONT_CHECK_PAGER= +# # 上を 'yes' にしたら、ページャへの PATH が含まれているか確認してください #PATH=/bin:/usr/bin:/usr/sbin +# # 新旧の motd ファイルを比較しない #IGNORE_MOTD=yes +# +# 比較開始前に実行するスクリプトやスクリプト完了後に実行するスクリプト +# のパスを指定する +#MM_PRE_COMPARE_SCRIPT= +#MM_EXIT_SCRIPT= + .Ed .Sh 関連項目 .Xr cvs 1 , .Xr diff 1 , .Xr make 1 , .Xr more 1 , .Xr sdiff 1 , .Xr pwd_mkdb 8 .Pp .Pa /usr/src/etc/Makefile .Pp http://www.FreeBSD.org/handbook/makeworld.html , .Pa The Cutting Edge (using make world) , by Nik Clayton .Pp .\" 関連項目更新に伴い、訳注も更新した .\" horikawa@jp.FreeBSD.org 2000/08/22 (訳注: 日本語版は http://www.jp.FreeBSD.org/www.FreeBSD.org/ja/handbook/makeworld.html ) .Sh 診断 成功終了、ないしユーザが実行中に手動で脱出した場合には、 終了ステータスは 0 です。 .Pp 以下に挙げるいずれかの理由で失敗した場合には、終了ステータスは 1 です: .Pp コマンドラインオプションが不正 .Pp 仮のルート環境を作成するのに失敗 .Pp 仮のルートにファイルを格納するのに失敗 .Pp .Sh 歴史 .Nm スクリプトは、 1998 年 3 月 13 日に 私のウェブページの中で もっと単純な形で .Pa comproot という名前で最初に公開されました。 仮のルート環境を作るというアイデアは、 上で参照した Nik Clayton の make world tutorial から来ています。 .Pp .Sh 作者 このマニュアルページとスクリプトは -.An Douglas Barton Aq Doug@gorean.org +.An Douglas Barton Aq DougB@FreeBSD.org が書きました。 .Sh バグ 今のところわかっているバグはありません。 なにか問題や、コメントや、提案があれば、どうか作者まで報告してください。 このプログラムになされた改良のいくつかは ユーザからの提案によるものです。ありがとう。 diff --git a/ja_JP.eucJP/man/man8/named.8 b/ja_JP.eucJP/man/man8/named.8 index 34b063a1fe..9dfa510f9a 100644 --- a/ja_JP.eucJP/man/man8/named.8 +++ b/ja_JP.eucJP/man/man8/named.8 @@ -1,465 +1,466 @@ .\" ++Copyright++ 1985, 1996 .\" - .\" Copyright (c) 1985, 1996 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- .\" .\" @(#)named.8 6.6 (Berkeley) 2/14/89 .\" jpman %Id: named.8,v 1.4 1997/11/11 13:59:51 horikawa Stab % .\" .Dd February 1, 1996 .Dt NAMED 8 .Os BSD 4 .Sh 名称 .Nm named .Nd インターネットドメインネームサーバ (DNS) .Sh 書式 .Nm NAMED .Op Fl d Ar debuglevel .Op Fl p Ar port# .Oo Fl Po .Cm b Ns \&| Ns Cm c .Pc .Ar config_file .Oc .Op Fl f q r v .Op Fl u Ar user_name .Op Fl g Ar group_name .Op Fl t Ar directory .Op Fl w Ar directory .Op Ar config_file .Sh 解説 .Ic named はインターネットドメインネームサーバです。 インターネットドメインネームシステムの詳細な情報については RFC 1033, 1034, 1035 を参照してください。 パラメータがない場合は .Ic named はデフォルトの設定ファイルである .Pa /etc/namedb/named.conf の初期化データを読み込み、問い合わせに対し待機します。 コマンド行の最後に与えられた .Ar config_file 引数は .Dq Fl b または .Dq Fl c フラグを使用して指定された .Ar config_file を無効にします。 .Pp .Sy 注: .Nm named のいくつかのオプションと多くの動作は、設定ファイルの中で 制御できます。更なる情報はこの .Sy BIND 配布物に含まれる設定ファイルガイドを参照してください。 .Pp 指定できるオプションは以下の通りです。 .Bl -tag -width Fl .It Fl d Ar debuglevel デバッグ情報を出力します。 .Ar debuglevel は表示するメッセージのレベルを決定する数字です。もし負の値の場合、 .Ar debuglevel は .Dq 1 に設定されます。 .Pp .Sy 注: 新しいデバッグの枠組は古いバージョンの .Nm NAMED よりもかなり洗練されています。 設定ファイルの .Dq Li logging 宣言は (問い合わせや内/外への転送などの) 多くの種類にわたるイベント それぞれに対して、複数の別々なデバッグレベルを設定することができます。 これらの広範囲にわたる新しい機能に関する更なる情報は、この .Sy BIND 配布物に含まれる設定ファイルガイドを参照してください。 .It Fl p Ar port# 指定されたリモートポート番号を使用します。このポート番号は .Nm NAMED が問い合わせを送る番号です。デフォルトの値は標準のポート番号、つまり .Xr getservbyname 3 が .Dq Li domain に対して返すポート番号です。 .Pp .Sy 注: 以前は、 .Dq Fl p Ar port# Ns Op Ar \&/localport# という文法が使用でき、1 つ目のポートが .Em remote サーバへの接続に使用され、2 つ目のポートが .Nm NAMED の .Em local サーバに対するポート番号として使用されました。 現在の使用法は古い使用法から .Ar localport# の指定を除いたものと同等です。この機能は 設定ファイルの .Dq Li options 宣言にある .Dq Li listen-on 節で指定できます。 .It Xo Fl Po .Cm b Ns \&| Ns Cm c .Pc Ar config_file .Xc 代わりの .Ar config_file を使用します。 この引数はコマンド行の最後に指定された .Ar config_file によって上書きされます。 デフォルトの値は .Pa /etc/namedb/named.conf です。 .It Fl f このプロセスを表で動かし、 .Xr fork 2 やデーモン化をしません (デフォルトではデーモン化をします)。 .It Fl q .Nm NAMED が .Li QRYLOG を定義してコンパイルされている場合に、 すべての問い合わせのトレースを行ないます。 .Pp .Sy 注: 設定ファイルの .Dq Li logging 宣言で .Dq Li queries .Em logging category する方が賛成され、このオプションは反対されています。 更なる情報は、この .Sy BIND 配布物に含まれる設定ファイルガイドを参照してください。 .It Fl r 再帰的なネームサーバの問い合わせを抑止します。 問い合わせに対してはローカルゾーン (プライマリもしくはセカンダリ) からのみ 回答されます。 この指定はルートサーバにて使用することができます。 デフォルトでは再帰的な問い合わせを行ないます。 .Pp .Sy 注: このオプションは設定ファイルの .Dq Li options 宣言の .Dq Li recursion 節によって上書きされ、またそちらのほうが推奨されています。 .It Fl v バージョンを報告し、終了します。 .It Fl u Ar user_name ユーザを指定すると、初期化後のサーバがこのユーザで動作します。 値はユーザ名または数字のユーザ ID どちらでも構いません。 .Dq Fl g フラグが指定されていなかった場合、 指定されたユーザのプライマリグループがグループ ID として使用されます (initgroups() が呼ばれるため、ユーザの所属するすべてのグループがサーバに 渡されます)。 .Pp .It Fl g Ar group_name グループを指定すると、初期化後のサーバがこのグループで動作します。 値はグループ名または数字のグループ ID どちらでも構いません。 .Pp .It Fl t Ar directory サーバがコマンド行引数を処理したらすぐに chroot() するべき ディレクトリを指定します。 .Pp .It Fl w Ar directory サーバの作業ディレクトリを設定します。設定ファイルの .Dq Li options 宣言の .Dq Li directory 節はコマンド行で指定したあらゆる値を上書きします。 デフォルトの作業ディレクトリはカレントディレクトリ .Pq Dq \&. です。 .El .Pp それ以外の引数は上で述べたとおり、 古い実装との互換性のために、設定ファイルの名前として扱われます。この引数は .Dq Fl b または .Dq Fl c フラグを使用して指定される .Ar config_file を無効にします。 特に引数が与えられなければ、デフォルトの設定ファイルが使用されます .Pq Pa /etc/namedb/named.conf 。 .Ss マスタファイル形式 マスタファイルは制御情報とゾーン中のオブジェクトの 資源レコードのリストからなり、次の形式を取ります。 .Bd -literal -offset indent $INCLUDE $ORIGIN $TTL .Ed .Pp ここで、 .Bl -tag -width "opt_domain " .It Ar domain ルートの場合は .Dq Li \&. を、現在の起点の場合は .Dq Li @ を、それら以外では通常のドメイン名を指定します。 .Ar domain が .Dq Li \&. で終って .Em いない 通常のドメイン名である場合は、 現在の起点がドメインに追加されます。 ドメイン名が .Dq Li \&. で終っている場合は変更されません。 .It Ar opt_domain このフィールドにはインクルードファイル中のデータの起点を定義します。 これはインクルードファイルの最初の行の前に .Li $ORIGIN 宣言を置くことと等価です。 このフィールドはオプショナルです。 .Ar opt_domain フィールドやインクルードファイル中の .Li $ORIGIN 宣言はそのファイル自身の現在の起点を変更することはありません。 .It Ar ttl 明示的な TTL (time-to-live) を持たない 将来のレコードのためのデフォルトの TTL を、整数値で指定します。 .It Ar opt_ttl このフィールドはオプションであり、 time-to-live を整数値で指定します。 設定されない場合、TTL は最後の $TTL 文から取得されます。 $TTL 文が存在しない場合、SOA の最小値が使用され、警告が生成されます。 .It opt_class オブジェクトのアドレスの型を指定します。 現在はDARPAインターネットに接続するオブジェクトである .Dv IN のみがサポートされています。 .It Ar type このフィールドには以下のトークンのうちひとつが含まれます。 括弧中におのおの .Ar resource_record_data フィールドに指定すべきデータを示しています。 .Bl -tag -width "HINFO " -offset indent .It Dv A ホストアドレス (4つ組ドット IP アドレス) .It Dv NS 権威があるネームサーバ (ドメイン) .It Dv MX メールエクスチェンジャ (ドメイン) 優先順位 (0..32767) に引続き指定します。 優先順位は小さい値が優先順位の高いことを示します。 .It Dv CNAME 別名に対応した正式名 (ドメイン) .It Dv SOA オーソリティゾーンデータの開始を示します。 (ホストの属するドメイン、メンテナのドメインアドレス、 シリアル番号、その後にリフレッシュ、リトライ、有効期限、最小 TTL (RFC 883 と RFC 2308 を参照) の各値を秒で指定したパラメータが続く)。 .It Dv NULL ヌルリソースレコード (形式やデータはありません) .It Dv RP いくつかのドメイン名の責任者 (メールアドレスか参照できるテキスト) .It Dv PTR ドメイン名のポインタ (ドメイン) .It Dv HINFO ホスト情報 (CPUタイプ、OSタイプ) .El .El .Pp 通常は行末でリソースレコードは終了しますが、 左括弧と右括弧で囲まれた場合は複数行にまたがることが可能となります。 セミコロンから行末まではコメントとして扱われます。 .Pp .Sy 注: ここには示されていませんが、このほかのタイプのリソースレコードも存在します。 リソースレコードのすべてのタイプを知るには .Sy BIND Operations Guide .Pq Dq BOG を参照する必要があるでしょう。 新しい RFC にていくつかのリソースタイプが標準化されていますが、 このバージョンの .Sy BIND ではまだ実装されていません。 .Ss SOA レコード形式 各マスタゾーンファイルはそのゾーンの SOA レコードで始まらなければなりません。 以下に SOA レコードの例を示します。 .Bd -literal @ IN SOA ucbvax.Berkeley.EDU. rwh.ucbvax.Berkeley.EDU. ( 1989020501 ; serial 10800 ; refresh 3600 ; retry 3600000 ; expire 86400 ) ; minimum .Ed .Pp SOA ではシリアル番号 (serial) を指定します。 -シリアル番号はマスタファイルを更新するたびに変更する必要があります。 +シリアル番号はマスタファイルを更新するたびに増加する必要があります。 シリアル番号は小数点つきの数字を指定することもできますが、 整数への変換は乗算や加算ではなく文字列としてつなげて行っているため、 .Em あまり 賢い方法とはいえません。 年月日と 0〜99 のシリアル番号を使用することで、 このフィールドのサイズである符号なしの 32 ビット以内に収まります。 (このやり方は 4294 年には考え直す必要があることは確かですが、 それについては心配する必要はないでしょう)。 .Pp セカンダリサーバは秒で指定されたリフレッシュ時間 (refresh) の間隔で シリアル番号をチェックします。 シリアル番号に変更があれば、新しいデータを読み込むために ゾーン情報が転送されます。 リフレッシュ時間が過ぎてもマスタサーバに接続できない場合は、 リトライ時間 (retry) の間隔でリフレッシュが試みられます。 期限切れ時間 (expire) が過ぎてマスタサーバに接続できない場合は、 セカンダリサーバはそのゾーンのすべてのデータを破棄します。 .Sh 注 ブートファイルでの .Dq Li domain と .Dq Li suffixes の指定は廃止され、 もっと便利なリゾルバベースの実装、すなわち部分的な形のドメイン名 (partially-qualified domain names) の接尾辞に置き変えられました。 以前のメカニズムでは多くの状況下で失敗することがあり、 特にローカルネームサーバが完全な情報を持っていない場合に失敗しました。 .Pp 以下に各シグナルを .Xr kill 1 コマンドによってサーバに送った場合の効果を示します。 .Pp .Bl -tag -width "SIGWINCH" .It Dv SIGHUP サーバは .Pa named.conf を読み、データベースをロードし直します。 サーバがコンパイルオプションの .Li FOCED_RELOAD を定義されてコンパイルされている場合は、 .Dv SIGHUP を送るとサーバはすべてのセカンダリゾーンのシリアル番号もチェックします。 通常、シリアル番号は SOA 中に指定された間隔でのみチェックされます。 .It Dv SIGINT 現在のデータベースとキャッシュの内容を .Dq Pa /var/tmp/named_dump.db または .Dv _PATH_DUMPFILE の値にダンプします。 .It Dv SIGILL サーバが -DSTATS 付きでコンパイルされていれば、 統計データを .Pa named.stats にダンプします。 統計データはこのファイルの末尾に追加されます。 .It Dv SIGSYS サーバがプロファイリング (サーバの fork, chdir と exit) を 有効にされてコンパイルされていれば、 プロファイリングデータを .Pa /var/tmp にダンプします。 .It Dv SIGTERM 更新されたデータが存在すればこれを保存し、サーバをシャットダウンします .It Dv SIGUSR1 デバッグ機能を有効にします。 .Dv SIGUSR1 が送られるたびにデバッグレベルが上がります。 .Po Dv SIGUSR1 がない古いシステムでは .Dv SIGEMT が使われます。 .Pc .It Dv SIGUSR2 デバッグ機能を完全に無効にします。 .Po Dv SIGUSR2 がない古いシステムでは .Dv SIGFPE が使われます。 .Pc .It Dv SIGWINCH すべてのサーバに入力される問い合わせの .Xr syslog 8 による ログ採取の有無を切り替えます。 (ログ採取はサーバが .Li QRYLOG オプションを指定されて コンパイルされている必要があります。) +.El .Sh 関連ファイル .Bl -tag -width "/var/tmp/named_dump.db (_PATH_DUMPFILE) " -compact .It Pa /etc/namedb/named.conf デフォルトのネームサーバの設定ファイル .It Pa /var/run/named.pid Pq Dv _PATH_PIDFILE プロセス ID .It Pa /var/tmp/named_dump.db Pq Dv _PATH_DUMPFILE ネームサーバデータベースのダンプ .It Pa /var/tmp/named.run Pq file: Dv _PATH_DEBUG デバッグ出力 .It Pa /var/tmp/named.stats Pq file: Dv _PATH_STATS ネームサーバの統計データ .El .Sh 関連項目 .Xr gethostbyname 3 , .Xr hostname 7 , .Xr kill 1 , .Xr resolver 3 , .Xr resolver 5 , .Xr signal 2 , RFC 882, RFC 883, RFC 973, RFC 974, RFC 1033, RFC 1034, RFC 1035, RFC 1123, RFC 2308 .Dq Name Server Operations Guide for Sy BIND diff --git a/ja_JP.eucJP/man/man8/nslookup.8 b/ja_JP.eucJP/man/man8/nslookup.8 index 352e4025f2..123576c41e 100644 --- a/ja_JP.eucJP/man/man8/nslookup.8 +++ b/ja_JP.eucJP/man/man8/nslookup.8 @@ -1,552 +1,554 @@ .\" .\" ++Copyright++ 1985, 1989 .\" - .\" Copyright (c) 1985, 1989 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" - .\" Portions Copyright (c) 1993 by Digital Equipment Corporation. .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies, and that .\" the name of Digital Equipment Corporation not be used in advertising or .\" publicity pertaining to distribution of the document or software without .\" specific, written prior permission. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL .\" WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT .\" CORPORATION BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\" SOFTWARE. .\" - .\" --Copyright-- .\" .\" @(#)nslookup.8 5.3 (Berkeley) 6/24/90 -.\" jpman %Id: nslookup.8,v 1.2 1997/04/30 00:39:04 mutoh Stab % +.\" %FreeBSD: src/contrib/bind/doc/man/nslookup.8,v 1.2.2.1 2000/11/02 14:08:07 asmodai Exp % .\" +.\" jpman %Id: nslookup.8,v 1.2 1997/04/30 00:39:04 mutoh Stab % .Dd June 24, 1990 .Dt NSLOOKUP 8 .Os BSD 4 .Sh 名称 .Nm nslookup .Nd インターネットネームサーバに対話的に問い合わせる .Sh 書式 .Nm nslookup .Op Fl option Ar ... .Op Ar host-to-find | Fl Op Ar server .Sh 解説 .Ic nslookup はインターネットネームサーバに問い合わせを行います。 .Ic nslookup には対話モードと非対話モードの 2 つのモードがあります。 対話モードでは、 様々なホストやドメインの情報をネームサーバに対して問い合わせたり、 あるドメイン内のホスト一覧を表示することができます。 非対話モードでは、あるホストもしくはドメインの名前および 要求した情報のみが表示されます。 .Sh 引数 次の場合は対話モードに入ります。 .Bl -tag -width "a) " .It a) 引数が与えられなかったとき(デフォルトのネームサーバを利用します)。 .It b) 最初の引数がハイフン (-) であり、2 番目の引数がネームサーバの ホスト名もしくは IP アドレスであるとき。 .El .Pp 検索したいホストの名前もしくは IP アドレスが最初の引数として与えられた場合は、 非対話モードになります。 2 番目の引数はオプションで、ネームサーバのホスト名もしくは IP アドレスを 指定します。 .Pp .Dq Li set コマンドを使うオプションは、ホームディレクトリの .Pa .nslookuprc ファイルに 1 行に 1 つずつ書くことでも指定できます。 オプションはコマンドラインで指定することも可能です。その場合、 前にハイフンをつけ、引数より先に書きます。たとえば、デフォルトの問い合わせを ホスト情報に変更し、初期タイムアウトを 10 秒とするには、 .Bd -literal -offset indent nslookup -query=hinfo -timeout=10 .Ed とします。 .Sh 対話コマンド コマンドは control-C を入力することでいつでも中断できます。 終了するには、 control-D .Pq Dv EOF もしくは .Li exit を入力します。 コマンドラインの長さは 256 文字以下でなければなりません。 内部コマンドをホスト名として扱うには、 エスケープ文字 .Pq \e を頭につけます。 .Sy 注意: 解釈できないコマンドはホスト名として扱われます。 .Bl -tag -width "lserver" .It Ar host Op Ar server .Ar host についての情報を現在のデフォルトサーバ、もしくは .Ar server が指定されている場合はそのサーバに問い合わせます。 .Ar host が IP アドレスであり、問い合わせタイプが .Dv A もしくは .Dv PTR であるときは、ホスト名が返されます。 .Ar host が 名前であり、最後にピリオドがないときには、 その後ろにデフォルトのドメイン名が付加されます(この動作は、 .Ic set オプションの .Ic domain , srchlist , defname , search に依存します)。 .Pp 現在のドメインにないホストについて調べるときには、 名前の末尾にピリオドを付加します。 .It Ic server Ar domain .It Ic lserver Ar domain デフォルトサーバを .Ar domain に変更します。 .Ic lserver は .Ar domain についての情報を探すのに初期サーバを使い、 .Ic server は現在のデフォルトサーバを使います。 公式の答えが見つからないときには、答えを持つ可能性のある サーバ名が返されます。 .It Ic root デフォルトサーバをドメイン名空間のルートサーバに変更します。 現在のところホスト .Li ns.internic.net が使われます (このコマンドは .Dq Ic lserver ns.internic.net に同義です)。 ルートサーバ名は .Dq Ic set root コマンドで変更できます。 .It Xo Ic finger Op Ar name .Op Ic > Ar filename .Xc .It Xo Ic finger Op Ar name .Op Ic >> Ar filename .Xc 現在のホストにあるフィンガーサーバと接続します。 現在のホストは、以前の問い合わせが成功し、アドレス情報が 返されたときに定義されます( .Dq Ic set querytype=A 参照)。 .Ar name はオプションです。 .Ic > と .Ic >> は普通に出力をリダイレクトするのに使えます。 .It Xo Ic ls Op Ar option .Ar domain Op Ic > Ar filename .Xc .It Xo Ic ls Op Ar option .Ar domain Op Ic >> Ar filename .Xc .Ar domain について入手できる情報の一覧を出します。 オプションでファイル .Ar filename を作成あるいは .Ar filename に追加できます。 デフォルトの出力にはホスト名とその IP アドレスが含まれます。 .Ar option は下記のいずれかです。 .RS .Bl -tag -width "-a " .It Fl t Ar querytype 指定したタイプの全レコードの一覧を出力します(下記の .Ar querytype 参照)。 .It Fl a そのドメイン内での、各ホストのエイリアス一覧を出力します。 .Dq Fl t Dv CNAME と同義です。 .It Fl d そのドメインの全レコードの一覧を出力します。 .Dq Fl t Dv ANY と同義です。 .It Fl h そのドメインの CPU 及び OS 情報を出力します。 .Dq Fl t Dv HINFO と同義です。 .It Fl s そのドメイン内のホストの良く知られた (well-known) サービスの一覧を出力します。 .Dq Fl t Dv WKS と同義です。 .El .Pp 出力がファイルにリダイレクトされるときには、サーバから 50 レコードを 受け取るたびにハッシュマークが表示されます。 .It Ic view Ar filename 直前の .Ic ls コマンドの出力を並べ変え、 .Xr more 1 で出力します。 .It Ic help .It Ic ? コマンドの簡単な要約を表示します。 .It Ic exit プログラムを終了します。 .It Xo Ic set Ar keyword .Ns Op = Ns Ar value .Xc このコマンドは探索に影響するオプションを変更するのに使われます。 有効な keyword は以下の通りです。 .Bl -tag -width "class=v" .It Ic all よく使われる .Ic set のオプションの現在の値を表示します。 現在のデフォルトサーバとホストに関する情報も表示されます。 .It Ic class= Ns Ar value 問い合わせのクラスを次のいずれかに変更します。 .Bl -tag -width "HESIOD " .It Dv IN インターネットクラス。 .It Dv CHAOS chaos クラス。 .It Dv HESIOD MIT Athena Hesiod クラス。 .It Dv ANY 上記すべて。 .El .Pp クラスは情報のプロトコルグループを特定します。 .Pp (デフォルト = .Dv IN; 略記 = .Ic cl ) .It Xo Op Ic no .Ns Ic debug .Xc デバッグモードにします。サーバに送られるパケットとそれに 対する返答について、より多くの情報が表示されます。 .Pp (デフォルト = .Ic nodebug ; 略記 = .Xo Op Ic no .Ns Ic deb ) .Xc .It Xo Op Ic no .Ns Ic d2 .Xc 詳細なデバッグモードにします。 パケットごとに重要なすべてのフィールドが表示されます。 .Pp (デフォルト = .Ic nod2 ) .It Ic domain= Ns Ar name デフォルトドメイン名を .Ar name に変更します。 .Ic defname と .Ic search オプションの設定に応じて、 探索要求されるホスト名にデフォルトドメイン名が付加されます。 デフォルトドメイン名が 2 つ以上の要素から なるとき、ドメインサーチリストにはデフォルトドメインの親が含まれます。 たとえば、デフォルトドメイン名が CC.Berkeley.EDU であるとき、サーチリストは CC.Berkeley.EDU 及び Berkeley.EDU です。 異なるリストを指定するには、 .Dq Ic set srchlist コマンドを使います。 このリストを表示するには、 .Dq Ic set all コマンドを使います。 .Pp (デフォルト = .Xr hostname 1 から得た値, .Pa /etc/resolv.conf あるいは .Pa LOCALDOMAIN; 略記 = .Ic do ) .It Ic srchlist= Ns Ar name1/name2/... デフォルトドメイン名を .Ar name1 にし、ドメインサーチリストを .Ar name1 , name2 , etc. に変更します。スラッシュ (/) で区切って 最大 6 つまで指定可能です。 たとえば .Bd -literal -offset indent set srchlist=lcs.MIT.EDU/ai.MIT.EDU/MIT.EDU .Ed .Pp の場合、ドメインを lcs.MIT.EDU にし、サーチリストを上の 3 つの名前に 設定します。 このコマンドは、 .Dq Ic set domain コマンドによるデフォルトドメイン名と サーチリストを上書きします。 リストを表示するには、 .Dq Ic set all コマンドを使います。 .Pp (デフォルト = .Xr hostname 1 に基づく値, .Pa /etc/resolv.conf あるいは .Ev LOCALDOMAIN ; 略記 = .Ic srchl ) .It Xo Op Ic no .Ns Ic defname .Xc これが設定されると、単一要素からなる問い合わせ(すなわちピリオドのないもの) に対して、 指定したデフォルトドメイン名が付加されます。 .Pp (デフォルト = .Ic defname ; 略記 = .Xo Op Ic no .Ns Ic defname ) .Xc .It Xo Op Ic no .Ns Ic search .Xc 問い合わせ要求にピリオドが少なくとも 1 つ含まれているが ピリオドで終っては .Em いない 場合、 答えが受け取れるまで、ドメインサーチリスト内のドメイン名を 付加します。 .Pp (デフォルト = .Ic search ; 略記 = .Xo Op Ic no .Ns Ic sea ) .Xc .It Ic port= Ns Ar value デフォルトのネームサーバの TCP/UDP ポートを .Ar value に変更します。 .Pp (デフォルト = 53; 略記 = .Ic \&po ) .It Ic querytype= Ns Ar value .It Ic type= Ns Ar value 問い合わせる情報の種類を変更します。情報は次のうちのいずれかです。 .Bl -tag -width "HINFO " .It Dv A ホストの IP アドレス。 .It Dv CNAME 別名に対する正式名。 .It Dv HINFO ホストの CPU と OS の種類。 .It Dv MINFO メールボックスもしくは、メールリストに関する情報。 .It Dv MX メール交換ホスト。 .It Dv NS その名前空間内のネームサーバ。 .It Dv PTR 問い合わせが IP アドレスであればホスト名、そうでなければ それ以外の情報へのポインタ。 .It Dv SOA ドメインの .Dq 権威開始 (start-of-authority) 情報。 .It Dv TXT テキスト情報。 .It Dv UINFO ユーザ情報。 .It Dv WKS サポートする、よく知られたサービス。 .El .Pp 他のタイプ .Pq Dv ANY, AXFR, MB, MD, MF, NULL については、ドキュメント RFC-1035 に書かれています。 .Pp (デフォルト = .Dv A ; 略記 = .Ic q, ty ) .It Xo Op Ic no .Ns Ic recurse .Xc サーバが情報を持っていないときに、他のサーバに問い合わせるよう 指示します。 .Pp (デフォルト = .Ic recurse ; 略記 = .Xo Op Ic no .Ns Ic rec ) .Xc .It Ic retry= Ns Ar number リトライ回数を .Ar number 回とします。 要求に対する返答をある時間内 ( .Dq Ic set timeout で変更できる) に 受け取らなかったとき、タイムアウト期間は 2 倍にされ、 要求が再送されます。 retry の値は、あきらめるまでに要求を何回再送するかを決めます。 .Pp (デフォルト = 4, 略記 = .Ic ret ) .It Ic root= Ns Ar host ルートネームサーバ名を .Ar host に変更します。 これは .Dq Ic root コマンドに影響します。 .Pp (デフォルト = .Ic ns.internic.net ; 略記 = .Ic ro ) .It Ic timeout= Ns Ar number 返答を待つ初期タイムアウト間隔を .Ar number 秒に変更します。 リトライのたびにタイムアウト間隔は倍になります。 .Pp (デフォルト = 5 seconds; 略記 = .Ic ti ) .It Xo Op Ic no .Ns Ic vc .Xc サーバに要求を出すときに、常に仮想回路 (virtual circuit) を使います。 .Pp (デフォルト = .Ic novc ; 略記 = .Xo Op Ic no .Ns Ic v ) .Xc .It Xo Op Ic no .Ns Ic ignoretc .Xc パケットトランケーションエラーを無視します。 .Pp (デフォルト = .Ic noignoretc ; 略記 = .Xo Op Ic no .Ns Ic ig ) .Xc .El .El .Sh 診断 問い合わせが失敗した場合、エラーメッセージが表示されます。 エラーには次のようなものがあります。 .Bl -tag -width "Timed" .It Li Timed out サーバに対する要求を、( .Dq Ic set timeout= Ns Ar value で変更できる)ある時間 の間に( .Dq Ic set retry= Ns Ar value で変更できる)ある回数だけ リトライしましたが、応答しませんでした。 .It Li \&No response from server サーバマシンでネームサーバが動いていません。 .It Li \&No records ホスト名は正しいのですが、そのホストについて現在の問い合わせに 関する情報をサーバが持っていません。 問い合わせる情報は .Dq Ic set querytype コマンドで指定できます。 .It Li Non-existent domain そのホスト名もしくはドメイン名が存在しません。 .It Li Connection refused .It Li Network is unreachable 現在のところネームサーバもしくはフィンガーサーバに対して 接続できません。 このエラーは一般に .Ic ls と .Ic finger 要求に対して起こります。 .It Li Server failure ネームサーバが内部でデータベースの矛盾を発見したため 正しい答えが返せませんでした。 .It Li Refused ネームサーバが要求に対するサービスを拒否しました。 .It Li Format error ネームサーバは要求パケットが適切なフォーマットになっていないと 判断しました。 .Nm nslookup 内にエラーがあるのかもしれません。 .El .Sh 関連ファイル .Bl -tag -width "/usr/share/misc/nslookup.helpXXX" -compact .It Pa /etc/resolv.conf ドメイン名の初期値とネームサーバのアドレスを記述するファイルです。 .It Pa $HOME/.nslookuprc ユーザ用の初期化オプションを記述するファイルです。 .It Pa /usr/share/misc/nslookup.help コマンドの要約です。 +.El .Sh 環境変数 .Bl -tag -width "HOSTALIASESXXXX" -compact .It Ev HOSTALIASES ホスト名のエイリアスを記述したファイル。 .It Ev LOCALDOMAIN デフォルトドメインを上書きします。 .Sh 関連項目 .Xr named 8 , .Xr resolver 3 , .Xr resolver 5 ; RFC-1034, .Dq Domain Names - Concepts and Facilities ; RFC-1035, .Dq Domain Names - Implementation and Specification .Sh 作者 Andrew Cherenson diff --git a/ja_JP.eucJP/man/man8/nsupdate.8 b/ja_JP.eucJP/man/man8/nsupdate.8 index 441861f80b..c1e366e374 100644 --- a/ja_JP.eucJP/man/man8/nsupdate.8 +++ b/ja_JP.eucJP/man/man8/nsupdate.8 @@ -1,199 +1,203 @@ -.\" %Id: nsupdate.8,v 8.4 1999/10/17 06:26:18 cyarnell Exp % -.\" jpman %Id: nsupdate.8,v 1.3 2000/05/02 03:35:10 horikawa Stab % +.\" %Id: nsupdate.8,v 8.5 2000/02/29 03:50:48 vixie Exp % .\" .\"Copyright (c) 1999 by Internet Software Consortium .\" .\"Permission to use, copy, modify, and distribute this software for any .\"purpose with or without fee is hereby granted, provided that the above .\"copyright notice and this permission notice appear in all copies. .\" .\"THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS .\"ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES .\"OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE .\"CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL .\"DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR .\"PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS .\"ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS .\"SOFTWARE. +.\" +.\" jpman %Id: nsupdate.8,v 1.3 2000/05/02 03:35:10 horikawa Stab % .Dd March 5, 1999 .Dt NSUPDATE 8 .Os BSD 4 .Sh 名称 .Nm nsupdate .Nd 対話的に Internet ネームサーバを更新する .Sh 書式 .Nm nsupdate .Op Fl Ar k keydir:keyname .Op Fl Ar d .Op Fl Ar v .Op Ar filename .Sh 解説 .Ic nsupdate は動的な更新をサポートした Internet ドメインネームサーバを更新する ためのプログラムです。 .Ic nsupdate は DNS のリソースレコード (RR) を追加したり削除したりする メッセージを DNS サーバ に伝えるために、DNS リゾルバライブラリを使用します。 .Ic nsupdate は入力を .Ar filename もしくは、標準入力から読み取ります。 .Sh 引数 .Bl -tag -width Fl .It Fl k TSIG を用いて更新に署名します。 .It Fl d デバッグモードを指定します。 .It Fl v バーチャルサーキット - サーバとの通信に TCP を使用します。既定値では UDP を 使用します。 +.El .Sh 入力書式 .Ic nsupdate は 1 行ごとに 1 個の入力レコードを読みます。 それぞれの行は更新要求の対象になるリソースレコードです。 1 個の更新要求に含まれるすべてのドメイン名は、 同一の DNS ゾーンに含まれるものであることが必要です。 空行は、蓄積されたレコードを 1 個の更新要求としてまとめ、ゾーンの権威を もつネームサーバへの送信を指示します。 追加レコードを続けることが可能です。 これらは、追加的な、完全に独立した更新要求になります。 最後の要求が送信されるためには、空行が入力の最後にあることが必要です。 .Pp レコードはふたつの一般的な形式のうちのどちらかの形式です。 .Em 必要条件 (prerequisite) レコードは、要求が処理される前に満たされていることが必要な条件を指示します。 .Em 更新情報 (update) レコードは、DNS データベースになされる変更を指示します。 更新要求は、0 個以上の必要条件と、1 個以上の更新情報から成ります。 それぞれの更新要求は、すべての必要条件が満たされることが確認 されたあとで、すべての更新が実行されるという順番で、原子的に処理されます。 .Pp .Ic nsupdate は次のような入力レコードの書式を理解します。 .Pp -.Bl -ohang +.Bl -hang .It Ic prereq nxdomain Va domain-name .Va domain-name で指定したドメイン内に、どのような RR もないことを要求します。 .It Ic prereq yxdomain Va domain-name .Va domain-name で指定したドメイン内に、最低 1 個の RR が存在することを要求します。 .It Xo .Ic prereq nxrrset Va domain-name Op class .Va type .Xc .Va domain-name で指定したドメイン内に .Va type で指定した型の RR が存在しないことを要求します。 .It Xo .Ic prereq yxrrset .Va domain-name Op class .Va type Op data... .Xc .Va domain-name で指定したドメイン内に、 .Va type で指定した型の RR が存在することを要求します。 .Va data が指定された場合は、正確にチェックが行なわれます。 .It Xo .Ic update delete .Va domain-name Op class .Va Op type Op data... .Xc .Va domain-name で指定したドメイン名の RR を削除します。 もし .Va type (と、可能ならば .Va data ) が指定されれば、該当されるレコードだけが削除されます。 .It Xo .Ic update add .Va domain-name ttl Op class .Va type data... .Xc .Va ttl , type , data で指定した RR を追加します。 .El .Sh 使用例 下記の例は、 .Ic nsupdate の対話的な使用例を示しています。 あるドメイン名のすべての A レコードを削除して、新しいレコードを 追加することによって、IP アドレスを変更します。 ここでは必要条件が指定されていないので、削除するレコードがなくても新しい レコードが追加されます。 後に続く空行は要求を処理させるために必要であることに注意してください。 .Bd -literal -offset indent $ nsupdate > update delete test.example.com A > update add test.example.com 3600 A 10.1.1.1 > .Ed .Pp この例では、対象のドメインに A レコードまたは CNAME レコードがない場合に、 CNAME エイリアスがデータベースに追加されます。 .Bd -literal -offset indent $ nsupdate > prereq nxrrset www.example.com A > prereq nxrrset www.example.com CNAME > update add www.example.com 3600 CNAME test.example.com > .Ed .Pp この例では、nsupdate はディレクトリ "/var/named/keys" に存在するキー "mykey" で署名されます。 .Bd -literal -offset indent $ nsupdate -k /var/named/keys:mykey > update add ftp.example.com 60 A 192.168.5.1 > .Ed .Sh 診断 -.Bl -ohang +.Bl -hang .It Qq send error 一般に、権威のあるネームサーバに到達できなかったことを示します。 .It Qq failed update packet 一般に、ネームサーバが動的更新をサポートしていないためか、認証の失敗のために、 更新を拒否したことを示します。 .It Qq res_mkupdate: packet size = Va size (また他のメッセージが表示されないとき) 更新は正常に受信されてネームサーバに認証されました。 しかし必要条件が更新を妨げたかもしれません。更新が行なわれているか を確かめる方法は、デバッグモード .Fl ( d ) を使用して、ネームサーバからの応答フィールドを確認するしかありません。 - +.El .Sh 関連ファイル +.Bl -hang .It Pa /etc/resolv.conf +.El ドメイン名とネームサーバのアドレスの初期設定。 .Sh 関連項目 .Xr named 8 , .Xr resolver 3 , .Xr resolver 5 ; RFC-1034, .Dq Domain Names - Concepts and Facilities ; RFC-1035, .Dq Domain Names - Implementation and Specification ; RFC-2136, Dynamic Updates in the Domain Name System. .Sh 作者 Brent Baccala diff --git a/ja_JP.eucJP/man/man8/ntptrace.8 b/ja_JP.eucJP/man/man8/ntptrace.8 index 56c4e125d2..73f315f76b 100644 --- a/ja_JP.eucJP/man/man8/ntptrace.8 +++ b/ja_JP.eucJP/man/man8/ntptrace.8 @@ -1,77 +1,77 @@ .\" -.\" %FreeBSD: src/usr.sbin/ntp/doc/ntptrace.8,v 1.1.2.1 2000/05/09 13:01:56 sheldonh Exp % +.\" %FreeBSD: src/usr.sbin/ntp/doc/ntptrace.8,v 1.1.2.2 2000/11/02 09:33:37 sheldonh Exp % .\" jpman %Id: ntptrace.8,v 1.4 2000/05/18 11:21:27 takamune Stab % .\" .Dd January 6, 2000 .Dt NTPTRACE 8 .Os .Sh 名称 .Nm ntptrace .Nd NTP サーバ連鎖をたどりプライマリソースまで追跡する .Sh 書式 .Nm ntptrace .Op Fl vdn .Op Fl r Ar retries .Op Fl t Ar timeout .Op Ar server .Sh 解説 .Nm は、与えられた ネットワークタイムプロトコル (NTP) サーバが どこから時刻を取得するのかを決定し、 NTP サーバの連鎖をたどってマスタ時刻ソースまで戻ります。 引数が与えられなかったときは、 .Dq localhost から始めます。 .Pp 以下は、 .Nm の出力の例です: .Bd -literal % ntptrace localhost: stratum 4, offset 0.0019529, synch distance 0.144135 server2ozo.com: stratum 2, offset 0.0124263, synch distance 0.115784 usndh.edu: stratum 1, offset 0.0019298, synch distance 0.011993, refid 'WWVB' .Ed .Pp 各行のフィールドは (左から右へ) 次のようになります: ホスト名、ホストの階層 (stratum)、 そのホストとローカルホストの間の時刻のオフセット ( .Nm によって測定されたもの; これが .Dq localhost に対していつも 0 になるとは限らない理由です)、 ホストの 同期距離、 そして (階層が 1 のサーバのみですが) 参照クロック ID。 すべての時間は秒単位です。 同期距離とは、時計の時刻の精度を測ったものであるのに対して、 階層とはプライマリソースへ対するサーバのホップ数であることに注意してください。 これらの用語は RFC 1305 において正確に定義されています。 .Pp 以下のオプションが使用可能です: .Bl -tag -width indent .It Fl d デバッグ出力をオンにします。 .It Fl n ホスト名の表示をオフにします; 代わりに、ホストの IP アドレスが 表示されます。これは、ネームサーバが落ちているときに必要になるでしょう。 .It Fl r Ar retries ホスト毎の再送信の回数をセットします。デフォルトは 5 です。 .It Fl t Ar timeout 再送信の制限時間 (秒単位) をセットします。デフォルトは 2 です。 .It Fl v NTP サーバに関する詳細な情報を出力します。 .El .Sh 関連項目 -.Xr xntpd 8 , -.Xr xntpdc 8 +.Xr ntpd 8 , +.Xr ntpdc 8 .Rs .%A D L Mills .%T Network Time Protocol (Version 3) .%O RFC1305 .Re .Sh バグ このプログラムは、複数のサンプルを取って精度を高めるような試みをしません。 diff --git a/ja_JP.eucJP/man/man8/ppp.8 b/ja_JP.eucJP/man/man8/ppp.8 index 1548ddb404..93fb3a95c0 100644 --- a/ja_JP.eucJP/man/man8/ppp.8 +++ b/ja_JP.eucJP/man/man8/ppp.8 @@ -1,5333 +1,5337 @@ -.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.11 2000/09/16 23:09:04 brian Exp % +.\" %FreeBSD: src/usr.sbin/ppp/ppp.8,v 1.209.2.12 2000/10/31 02:26:18 brian Exp % .\" .\" jpman %Id: ppp.8,v 1.4 1997/06/08 18:41:58 saeki Stab % .\" .\" WORD: expect string 受信待ち文字列[chat.8,ppp.8] .Dd 20 September 1995 .nr XX \w'\fC00' .Dt PPP 8 .Os .Sh 名称 .Nm ppp .Nd PPP (Point to Point Protocol) (別名 user-ppp) .Sh 書式 .Nm .Op Fl Va mode .Op Fl nat .Op Fl quiet .Op Fl unit Ns Ar N .Op Fl alias .Op Ar system Ns .No ... .Sh 解説 本プログラムは、ユーザプロセスとして動作する .Em PPP パッケージです。 .Em PPP は通常、( .Xr pppd 8 でそうなっているように) カーネルの一部として実装されますが、 そのため、デバッグや動作の変更が少々難しい場合があります。 それに対し、この実装ではトンネルデバイスドライバ (tun) を利用して、 ユーザプロセスで .Em PPP を実現しています。 .Pp .Fl nat フラグ (または後方互換性のための .Fl alias フラグ) は、 .Dq nat enable yes と等価であり、 .Nm のネットワークアドレス変換機能を有効にします。 これにより .Nm は、内部 LAN 上の全マシンに対する NAT、 すなわちマスカレーディングエンジンとして動作します。 詳細は .Xr libalias 3 を参照してください。 .Pp .Fl quiet フラグを指定すると、 .Nm は起動時に静かになり、 モードとインタフェースを標準出力へ表示しなくなります。 .Pp .Fl unit フラグは、 .Nm が .Pa /dev/tun Ns Ar N のみのオープンを試みるように指定します。 通常、 .Nm は .Ar N に対して値 0 から開始し、成功するまで .Ar N を値 1 ずつ増加させて、トンネルデバイスのオープンを試みます。 デバイスファイルが存在しないために、3 回連続して失敗すると、諦めます。 .Pp .Nm は次の .Va mode を理解します: .Bl -tag -width XXX -offset XXX .It Fl auto .Nm は tun インタフェースをオープンし、 これを設定した後バックグラウンドになります。 出力データが tun インタフェース上で検出されるまでリンクはアップせず、 出力データが tun インタフェース上で検出されると .Nm はリンクをアップしようとします。 .Nm がリンクをアップしようとしている間に受信したパケット (最初のものを含みます) は、デフォルトで 2 分間キューにとどまります。 後述の .Dq set choked コマンドを参照してください。 .Pp .Fl auto モードでは、 コマンドラインには少なくとも 1 つの .Dq system を指定する必要があり (後述)、 インタフェース設定時に使用する相手の IP アドレスを指定する .Dq set ifaddr を、システムプロファイルで実行する必要があります。 通常、 .Dq 10.0.0.1/0 のようなものが適切です。例としては、 .Pa /usr/share/examples/ppp/ppp.conf.sample の .Dq pmdemand システムを参照してください。 .It Fl background この場合、 .Nm は相手との接続をすぐに確立しようとします。 成功すると、 .Nm はバックグラウンドになり、親プロセスは終了コード 0 を返します。 失敗すると、 .Nm は非 0 の結果で終了します。 .It Fl foreground フォアグラウンドモードでは、 .Nm は相手との接続をすぐに確立しようとしますが、デーモンにはなりません。 リンクはバックグラウンドモードで作成されます。 .Nm の起動を別のプロセスから制御したい場合に有用です。 .It Fl direct これは入力接続を受け付けるために使用します。 .Nm は .Dq set device 行を無視し、リンクにデスクリプタ 0 を使用します。 .Pp コールバックの設定を行うと、ダイヤルバック時に .Nm は .Dq set device 情報を使用します。 .It Fl dedicated このオプションは、専用線で接続されたマシンのためにデザインされています。 .Nm はデバイスを常にオープンに保ち、設定チャットスクリプトは一切使用しません。 .It Fl ddial .Fl auto モードと等価ですが、なんらかの理由でリンクが落ちた場合に .Nm が再度リンクをアップすることが違います。 .It Fl interactive これは no-op であり、 前述のフラグがどれも指定されなかった場合の動作を行います。 .Nm はコマンドラインで指定されたセクションをロードし、対話プロンプトを提供します。 .El .Pp .Po Pa /etc/ppp/ppp.conf に指定される .Pc 設定エントリ、すなわち system を、コマンドラインで 1 つ以上指定可能です。 起動時に .Nm は .Pa /etc/ppp/ppp.conf から .Dq default システムを読み込み、その後コマンドラインで指定した各 system を読み込みます。 .Sh 主な特徴 .Bl -diag .It 対話的なユーザインタフェースを提供 コマンドモードで利用する場合、ユーザがコマンドを 入力することで、簡単にリモートコンピュータとの接続の確立、 接続状態の確認、 接続の切断を行うことができます。 オプションとして、セキュリティ確保のために すべての機能をパスワードで保護することができます。 .It 手動と自動でのダイヤルをサポート 対話モードでは、直接デバイスと通信できるように .Dq term コマンドが用意されています。 リモートホストと接続されて、 .Em PPP での通信が始まったら、 .Nm はそれを検出して自動的にパケットモードに移行します。 ひとたびリモートホストとの接続に必要なコマンドシーケンスがわかったら、 後々の接続を簡単にするため、必要なダイヤル手順やログイン手順を定義した チャットスクリプトを書くことができます。 .It オンデマンドでのダイヤルアップをサポート .Fl auto モード (自動モード) では .Nm はデーモンとして動作し、 .Em PPP リンクを通して送られるパケットを待ちうけます。 パケットを検出すると、デーモンが自動的にダイヤルを行って接続を確立します。 .Fl ddial モード (直接ダイヤルモード) でも ほぼ同様に、自動ダイヤルと接続の確立を行います。 しかしながらこのモードは、送るべきパケットが存在しない場合にも、 リンクが切れていることを検出するといつでもリモートへダイヤルするという点が auto モードと異なります。 このモードは、電話料金よりも常時接続されていることが重視される場合に有用です。 3 番目の .Fl dedicated モード (専用線モード) も利用可能です。 このモードは 2 つのマシン間の専用線を対象にしています。 専用線モードでは .Nm は自発的に動作を終了することはありません - 終了するには .Dq quit all コマンドを診断ソケットを介して送る必要があります。 .Dv SIGHUP は LCP の再ネゴシエーションを強要し、 .Dv SIGTERM は終了を強要します。 .It クライアントコールバックをサポート .Nm は標準 LCP コールバックプロトコルならびに Microsoft コールバック制御プロトコル (ftp://ftp.microsoft.com/developr/rfc/cbcp.txt) を使用できます。 .It NAT、すなわちパケットエイリアシングをサポート パケットエイリアシング (別名: IP マスカレード) により、 未登録でプライベートなネットワーク上のコンピュータからも インターネットにアクセスすることが可能です。 .Em PPP ホストはマスカレードゲートウェイとして動作します。 送信パケットの IP アドレスと TCP や UDP のポート番号は どちらもエイリアスされ、返信パケットではエイリアスが元に戻されます。 .It バックグラウンド PPP 接続をサポート バックグラウンドモードでは、接続を確立するのに成功した場合に .Nm はデーモンになります。 それ以外の場合はエラーで終了します。 これにより、 接続が成功裏に確立した場合のみコマンドを実行するようなスクリプト をセットアップすることが出来ます。 .It サーバとしての PPP 接続をサポート ダイレクトモードでは、 .Nm は標準入力/標準出力からの .Em PPP 接続を受け入れるサーバとして動作させることができます。 .It PAP と CHAP (rfc 1994) による認証をサポート PAP もしくは CHAP を用いることにより、Unix スタイルの .Xr login 1 手続きをスキップし、 .Em PPP プロトコルを代りに認証に使用することが可能です。 相手が Microsoft CHAP 認証を要求し、かつ .Nm が DES をサポートするようにコンパイルされている場合、適当な MD4/DES 応答がなされます。 .It RADIUS (rfc 2138) 認証をサポート PAP と CHAP の拡張である .Em \&R Ns No emote .Em \&A Ns No ccess .Em \&D Ns No ial .Em \&I Ns No n .Em \&U Ns No ser .Em \&S Ns No ervice は、集中データベースまたは分散データベースに、 ユーザごとに異なる接続特性を含んだ認証情報を、格納できます。 コンパイル時に .Pa libradius が利用可能な場合、利用するように設定すると、 .Nm はこれを使用して .Em RADIUS 要求を作成します。 .It 代理 arp (Proxy Arp) をサポート .Nm が相手のために 1 個以上の代理 arp エントリを作成するように、設定可能です。 LAN 上の各マシンでの設定を行わずに、 相手側から LAN へのルーティングを可能とします。 .It パケットのフィルタリングをサポート ユーザは 4 種類のフィルタを定義できます。 .Em in は受信パケットに対するフィルタです。 .Em out は送信パケットに対するフィルタです。 .Em dial はダイヤルを行うきっかけとなるパケットを定義するフィルタで、 .Em alive は接続を保持するためのパケットを定義するフィルタです。 .It トンネルドライバは bpf (Berkeley Packet Filter) をサポート .Em PPP リンクを流れるパケットを調べるために、 .Xr tcpdump 1 を使うことができます。 .It PPP オーバ TCP および PPP オーバ UDP をサポート デバイス名が .Em host Ns No : Ns Em port Ns .Xo .Op / Ns tcp|udp , .Xc 形式で指定された場合、 .Nm は通常のシリアルデバイスを使うのではなく、 データ転送のための TCP または UDP の 接続を開きます。 UDP 接続は、 .Nm を強制的に同期モードにします。 .It PPP オーバ ISDN をサポート .Nm がオープンすべきリンクとして 生の B チャネル i4b デバイスを指定すると、 .Xr isdnd 8 と対話して ISDN 接続を確立できます。 .It PPP オーバイーサネットをサポート (rfc 2516) .Nm が .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc の書式のデバイス指定を与えられ、 .Xr netgraph 4 が利用可能な場合、 .Nm は .Ar iface ネットワークインタフェースを使用し、 .Ar provider に対して .Em PPP オーバイーサネットを話そうとします。 .It "IETF ドラフトの Predictor-1 (rfc 1978) と DEFLATE (rfc 1979) 圧縮をサポート .Nm は VJ 圧縮の他に Predictor-1 と DEFLATE 圧縮もサポートしています。 モデムは通常 (例えば v42.bis のような) 組み込みの圧縮機能を持っており、 その結果システムは .\"(訳注)「転送データレートよりも」をここにいれたいと考えています。 .\" 2.2.1R 対象(1997/04/02) Takeshi MUTOH より高いデータレートで通信できます。 これは一般には良いことですが、より高速のデータによってシリアル回線からの 割り込みが増加します。 システムはこの割り込みをモデムと通信して処理しなくてはならないため、 システムの負荷と遅延時間が増加することになります。 VJ 圧縮とは異なり、Predictor-1 と DEFLATE 圧縮はリンクを通る .Em すべての ネットワークトラフィックをあらかじめ圧縮しておくことで、オーバヘッドを 最小にします。 .It Microsoft の IPCP 拡張をサポート (rfc 1877) Microsoft の .Em PPP スタックを使用するクライアント (つまり Win95, WinNT) との間で ネームサーバのアドレスと NetBIOS ネームサーバのアドレスを ネゴシエーションできます。 .It マルチリンク PPP をサポート (rfc 1990) 接続先への複数の物理的な回線をオープンし、すべてのリンクの 帯域幅を合わせてより高いスループットを得ることができます。 .El .Sh パーミッション .Nm はユーザ .Dv root 、グループ .Dv network 、パーミッション .Dv 04554 でインストールされます。 デフォルトでは .Nm は、起動したユーザ ID が 0 でない場合には実行しません。 これは .Dq allow users コマンドを .Pa /etc/ppp/ppp.conf に記載することにより変更することが可能です。 通常ユーザとして実行する場合には、 .Nm はユーザ ID 0 に変わり、システムの経路表の変更と、 システムロックファイルの作成と、 ppp の設定ファイルの読み込みを行います。 すべての外部コマンド ("shell" や "!bg" で実行されます) は、 .Nm を起動したユーザ ID で実行されます。 ユーザ ID 0 にて正確になにが行われているのかに興味がある場合には、 ログ機能の .Sq ID0 を参照してください。 .Sh 始める前に 最初に .Nm を実行する時には、いくつかの初期設定を整える必要があります。 .Bl -bullet .It カーネルにトンネルデバイスが含まれていることが必要です (GENERIC カーネルではデフォルトで 1 つ含まれます)。 tun デバイスが含まれていない場合や、 複数の tun インタフェースが必要な場合、 次の行をカーネル設定ファイルに追加して、 カーネルを再構築する必要があります: .Pp .Dl pseudo-device tun N .Pp ここで .Ar N は .Em PPP 接続を行いたい最大の数です。 .It .Pa /dev ディレクトリにトンネルデバイスのエントリ .Pa /dev/tunN があるかどうかを調べてください。 ここで .Sq N は、0 から始まる tun デバイスの番号です。 もし無いようならば、"sh ./MAKEDEV tunN" を実行すれば作ることができます。 これにより 0 から .Ar N までの tun デバイスが作成されます。 .It あなたのシステムの .Pa /etc/group ファイルに .Dq network グループがあり、そのグループが .Nm を使うと想定されるすべてのユーザ名を含んでいることを確かめてください。 詳細は .Xr group 5 マニュアルページを参照してください。また、これらのユーザは .Pa /etc/ppp/ppp.conf ファイルで .Dq allow users コマンドを使用してアクセス権が与えられなければなりません。 .It ログファイルを作成します。 .Nm は .Xr syslog 3 を使用して情報を記録します。通常のログファイル名は .Pa /var/log/ppp.log です。 このファイルに出力を行うためには、次の行を .Pa /etc/syslog.conf ファイルに記述してください: .Bd -literal -offset indent !ppp *.*/var/log/ppp.log .Ed .Pp .Nm の実行形式にリンクを作成することにより、複数の .Em PPP ログファイルを持つことが可能です: .Pp .Dl # cd /usr/sbin .Dl # ln ppp ppp0 .Pp として .Pa /etc/syslog.conf で .Bd -literal -offset indent !ppp0 *.*/var/log/ppp0.log .Ed .Pp とします。 .Pa /etc/syslog.conf を更新した後に、 .Xr syslogd 8 に .Dv HUP シグナルを送ることをお忘れなく。 .It 厳密には .Nm の操作とは関係ありませんが、リゾルバが正しく働くように設定した方が 良いでしょう。 これは .Pq Xr named 8 を用いて ローカルな DNS サーバを設定するか、もしくは .Pa /etc/resolv.conf ファイルに適切な .Sq nameserver 行を加えることで行われます。 詳細は .Xr resolv.conf 5 のマニュアルを参照してください。 .Pp 他の方法として、もし接続先がサポートしている場合には .Nm が接続先にネームサーバのアドレスを尋ねて、自動的に .Pa /etc/resolv.conf を更新することができます。詳細は後述の .Dq enable dns コマンドと .Dq resolv コマンドとを参照してください。 .El .Sh 手動ダイヤル 次の例では、あなたのマシン名が .Dv awfulhak であるとして説明します。 .Nm を引数無しで起動すると (前述の .Sx パーミッション 参照) 次のプロンプトが表示されます: .Bd -literal -offset indent ppp ON awfulhak> .Ed .Pp プロンプトの .Sq ON の部分は常に大文字であるべきです。ここが小文字の場合、 .Dq passwd コマンドを使用してパスワードを入力しなければならないことを意味します。 実行中の .Nm に接続し、 まだ正しいパスワードを入力していない場合にのみこのような状態になります。 .Pp .Bd -literal -offset indent ppp ON awfulhak> set device /dev/cuaa0 ppp ON awfulhak> set speed 38400 .Ed .Pp 通常ハードウェアフロー制御 (CTS/RTS) を使用します。 しかし、特定の場合 (特定の PPP 可能な端末サービスに直接接続している場合に起り得ます)、 .Nm が通信リンクにデータを書き込もうとしたときに、 永遠に来ない CTS (送信時にクリア) シグナルを待つことにより .Nm がハングします。 直通線で接続できない場合は、 .Dq set ctsrts off で CTS/RTS をオフにしてみてください。 これが必要な場合、後述の .Dq set accmap の記述も参照してください - .Dq set accmap 000a0000 も必要かもしれません。 .Pp 通常、パリティは .Dq none に設定します。これが .Nm ppp のデフォルトです。 パリティはどちらかというと古風なエラーチェック機構であり、 今となっては使用しません。 最近のモデムは各自のエラーチェック機構を持っており、 ほとんどのリンク層プロトコル ( .Nm はこれです) はより信頼できるチェック機構を使用します。 パリティは相対的に大きなオーバヘッドを持ちますので (トラフィックが 12.5% 増加します)、 .Dv PPP がオープンされると常に無効化 .Po Dq none に設定 .Pc されます。 しかし、ISP (インターネットサービスプロバイダ) によっては、 特定のパリティ設定を接続時 ( .Dv PPP がオープンする前) に使用するものがあります。 特に、Compuserve はログイン時に偶数パリティに固執しています: .Bd -literal -offset indent ppp ON awfulhak> set parity even .Ed .Pp ここで、現在のデバイス設定がどのようになっているか見られます: .Bd -literal -offset indent ppp ON awfulhak> show physical Name: deflink State: closed Device: N/A Link Type: interactive Connect Count: 0 Queued Packets: 0 Phone Number: N/A Defaults: Device List: /dev/cuaa0 Characteristics: 38400bps, cs8, even parity, CTS/RTS on Connect time: 0 secs 0 octets in, 0 octets out Overall 0 bytes/sec ppp ON awfulhak> .Ed .Pp ここでは、直接デバイスと通信するために term コマンドを使用可能です: .Bd -literal -offset indent ppp ON awfulhak> term at OK atdt123456 CONNECT login: myispusername Password: myisppassword Protocol: ppp .Ed .Pp 相手が .Em PPP で話しはじめると、 .Nm はそれを自動的に検出してコマンドモードに戻ります。 .Bd -literal -offset indent ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .\" your end で「あなた側」 .Pp このようにならない場合、接続先がこちらのネゴシエーション開始を 待っている可能性があります。 強制的に .Nm に接続先への PPP 設定パケットの送出を開始させるためには .Dq ~p コマンドを使い、端末モードを抜けてパケットモードに移行して下さい。 .Pp それでもログインプロンプトが得られない場合、 Unix 的なログイン/パスワード認証ではなく、PAP または CHAP の認証を、 相手は要求している可能性が非常に高いです。 正しく設定するためには、プロンプトに戻り、 認証用の名前とキーを設定し、再度接続します: .Bd -literal -offset indent ~. ppp ON awfulhak> set authname myispusername ppp ON awfulhak> set authkey myisppassword ppp ON awfulhak> term at OK atdt123456 CONNECT .Ed .Pp ここで再度、ネゴシエーションを開始するように ppp に指定できます: .Bd -literal -offset indent ~p ppp ON awfulhak> # リンクは確立していません Ppp ON awfulhak> # 接続完了、LCP 完了 PPp ON awfulhak> # 認証完了 PPP ON awfulhak> # IP アドレス合意完了 .Ed .Pp これで接続されました! プロンプトの .Sq PPP が大文字に変化して、接続されたことを知らせます。もし 3 つの P の内 いくつかだけが大文字になっている場合には、すべての文字が大文字もしくは 小文字になるまで待ってください。もし小文字に戻った場合には、それは .Nm が接続先とのにネゴシエーションに成功しなかったことをを意味します。 この時点での問題解決の第一歩としては、次のようにし、再挑戦します。 .Bd -literal -offset indent ppp ON awfulhak> set log local phase lcp ipcp .Ed .Pp 詳細は、下記の .Dq set log コマンドの説明を参照してください。 この時点でも失敗する場合、 ログを有効にして再挑戦することが非常に重要です。 プロンプトの変化に注意し、あなたを助けてくれる人に報告することもまた重要です。 .Pp リンクが確立したら、show コマンドを使用することで、 どのように事態が進行しているのかが分ります: .Bd -literal -offset indent PPP ON awfulhak> show physical * モデム関連の情報がここに表示されます * PPP ON awfulhak> show ccp * CCP (圧縮) 関連の情報がここに表示されます * PPP ON awfulhak> show lcp * LCP (回線制御) 関連の情報がここに表示されます * PPP ON awfulhak> show ipcp * IPCP (IP) 関連の情報がここに表示されます * PPP ON awfulhak> show link * (高レベル) リンク関係の情報がここに表示されます * PPP ON awfulhak> show bundle * (高レベル) 論理接続関係の情報がここに表示されます * .Ed .Pp この時点で、マシンは接続先に対するホスト単位の経路 (host route) を持っています。 これはリンクの相手のホストとのみ接続可能であるという意味です。 デフォルト経路のエントリ (他の経路エントリを持たずに、全パケットを .Em PPP リンクの相手に送る ように、あなたのマシンに指示します)を追加したければ、 次のコマンドを入力してください。 .Bd -literal -offset indent PPP ON awfulhak> add default HISADDR .Ed .Pp .Sq HISADDR という文字列は、相手側の IP アドレスを表します。 既存の経路のために失敗する場合には、 .Bd -literal -offset indent PPP ON awfulhak> add! default HISADDR .Ed .Pp を用いることで既存の経路を上書きできます。 このコマンドは、実際に接続を作成する前に実行可能です。 新しい IP アドレスを接続時にネゴシエートする場合、これに従って .Nm がデフォルト経路を更新します。 .Pp ここで、(ping, telnet, ftp のような) ネットワークアプリケーションを、 あなたのマシンの別のウィンドウまたは端末で使用可能です。 現在の端末を再利用したい場合、 .Nm をバックグラウンドモードにするために、 標準のシェルのサスペンドとバックグラウンドコマンド (通常 .Dq ^Z の後に .Dq bg ) を使用可能です。 .Pp 使用可能コマンドの詳細は .Sx PPP コマンドリスト の節を参照してください。 .Sh 自動ダイヤル 自動ダイヤルを行うためには、ダイヤルとログインのチャットスクリプトを 用意しなければなりません。定義の例は .Pa /usr/share/examples/ppp/ppp.conf.sample を見てください ( .Pa /etc/ppp/ppp.conf の書式は非常に簡単です)。 各行は単一のコメント、インクルード、ラベル、コマンドのいずれかを含みます。 .Bl -bullet .It .Pq Dq # 文字で始まる行は、コメントとして扱われます。 コメント行と認識した場合、先行する空白は無視されます。 .It インクルードは語 .Sq !include から始まる行です。 1 つの引数 - インクルードするファイル - を持つ必要があります。 古いバージョンの .Nm との互換性のために、 .Dq !include ~/.ppp.conf を使用したいかもしれません。 .It ラベルは行頭から始まり、最後にコロン .Pq Dq \&: が続かなければなりません。 .It コマンド行は、最初の桁に空白かタブを含む必要があります。 .El .Pp .Pa /etc/ppp/ppp.conf ファイルには少なくとも .Dq default セクションが存在する必要があります。 このセクションは常に実行されます。 このファイルには 1 つ以上のセクションが含まれます。 セクション名は用途に応じて付けます。例えば、 .Dq MyISP はあなたの ISP を表したり、 .Dq ppp-in は入力の .Nm 構成を表したります。 .Nm ppp を立ち上げる際に、接続先のラベル名を指定可能です。 .Dq default ラベルに関係づけられたコマンドが実行されてから、 接続先ラベルに関連づけられたコマンドが実行されます。 .Nm を引数無しで起動した場合、 .Dq default だけは実行されます。load コマンドを使用して、 .Pa /etc/ppp/ppp.conf のセクションを手動でロード可能です: .Bd -literal -offset indent ppp ON awfulhak> load MyISP .Ed .Pp セクションロード後には、 .Nm はいかなる動作も行わないことに注意してください。 これは、コマンドラインでラベルを指定した結果でも、 .Dq load コマンドを使用した結果でも同様です。 設定ファイル中で、そのラベルに対して指定されたコマンドのみが、実行されます。 一方、 .Nm を .Fl background , .Fl ddial , .Fl dedicated のいずれかのスイッチ付きで起動したときには、 .Nm が接続を確立するように、リンクモードが指示します。 更なる詳細については、後述の .Dq set mode コマンドを参照してください。 .Pp ひとたび接続が確立したなら、プロンプトの .Sq ppp は .Sq PPP に変わります: .Bd -literal -offset indent # ppp MyISP \&... ppp ON awfulhak> dial Ppp ON awfulhak> PPp ON awfulhak> PPP ON awfulhak> .Ed .Pp Ppp プロンプトは .Nm が認証フェースに入ったことを示します。PPp プロンプトは .Nm がネットワークフェーズに入ったことを示します。PPP プロンプトは .Nm がネットワーク層プロトコルのネゴシエーションに成功し、 使用可能状態にあることを示します。 .Pp もし .Pa /etc/ppp/ppp.linkup が利用可能ならば、 .Em PPP 接続が確立された時に、その内容が実行されます。 接続が確立された後のバックグラウンドでのスクリプト実行については、 提供されている .Pa /usr/share/examples/ppp/ppp.conf.sample (使用可能な置換文字列については、後述の .Dq shell と .Dq bg を参照してください) の .Dq pmdemand の例を参照してください。 同様に、接続が閉じられると、 .Pa /etc/ppp/ppp.linkdown ファイルの内容が実行されます。 これらのファイルのフォーマットは .Pa /etc/ppp/ppp.conf と同じです。 .Pp 以前のバージョンの .Nm では、デフォルト経路のような経路は .Pa ppp.linkup ファイルで追加し直す必要がありました。 現在では .Nm は、 .Dv HISADDR もしくは .Dv MYADDR が変化したときに、自動的に .Dv HISADDR もしくは .Dv MYADDR 文字列を含むすべての経路を更新する .Sq スティッキー経路 をサポートします。 .Sh バックグラウンドダイヤル .Nm を使って非対話的に接続を確立したい場合 (例えば .Xr crontab 5 エントリや .Xr at 1 ジョブから使うような場合) には、 .Fl background オプションを使います。 .Fl background が指定された場合、 .Nm はすぐに接続を確立しようとします。 複数の電話番号が指定された場合には、各電話番号が 1 回づつ試されます。 これらに失敗すると、 .Nm は即座に終了し、0 でない終了コードを返します。 接続に成功すると .Nm はデーモンになり、呼び出し側に終了コード 0 を返します。 デーモンは、リモートシステムが接続を終了した場合、 もしくは .Dv TERM シグナルを受け取った場合に、自動的に終了します。 .Sh ダイヤルオンデマンド デマンドダイヤル機能は .Fl auto または .Fl ddial オプションにて有効にされます。この場合にも .Pa /etc/ppp/ppp.conf で定義された接続先のラベルを指定しなければなりません。 これには、リモート接続先の IP アドレスを指定するための .Dq set ifaddr コマンドも書かれていなければなりません ( .Pa /usr/share/examples/ppp/ppp.conf.sample を参照してください)。 .Bd -literal -offset indent # ppp -auto pmdemand .Ed .Pp .Fl auto または .Fl ddial が指定された時に .Nm はデーモンとして動作しますが、 .Pa /etc/ppp/ppp.conf 中で .Dq set server コマンドを使うことで、設定を確認したり変更したりすることができます。 .Po たとえば、 .Dq set server +3000 mypasswd とすると .Pc 次のように診断ポートを通じて接続することができます。 .Bd -literal -offset indent # pppctl 3000 (tun0 を仮定) Password: PPP ON awfulhak> show who tcp (127.0.0.1:1028) * .Ed .Pp .Dq show who コマンドは現在 .Nm 自身に接続しているユーザの一覧を表示します。診断ソケットが閉じられる、 もしくは異なるソケットに変更された場合、すべての接続は即座に終了します。 .Pp .Fl auto モードにて 送信パケットが検出された時、 .Nm は (チャットスクリプトに基づいて) ダイヤルを行い、 通信相手に接続しようとします。 .Fl ddial モードでは回線がダウンしていることが確認された場合にはいつでも ダイヤルが行われます。 接続に失敗したら、デフォルトの動作では 30 秒間待ってから、 別の送信パケットが検出された時に接続しようとします。 .Pp この動作は .Dq set redial コマンドで変更できます。 .Pp .No set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Pp .Bl -tag -width attempts -compact .It Ar secs は、再び接続しようとするまでの秒数です。 引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上から 30 秒以下の間でランダムに選びます。 .It Ar inc は秒数であり、 新規にダイヤルするときに .Ar secs に加えられます。 このタイムアウト値が .Ar secs に戻るのは、接続が成功裏に確立した後だけです。 .Ar inc のデフォルト値は 0 です。 .It Ar max は、 .Nm が .Ar secs を増加させる最大回数です。 .Ar max のデフォルト値は 10 です。 .It Ar next は電話番号リストの中の次の番号をダイヤルする前に待つ秒数です。( .Dq set phone コマンドを参照してください)。これのデフォルトは 3 秒です。 繰り返しますが、引数がリテラル文字列 .Sq Li random の場合には、待ち時間を 1 秒以上 30 秒以下の間でランダムに選びます。 .It Ar attempts は、受け取った個々の送信パケットに対して、何回接続を試みるのかを示す 数字です。 .It Ar attempts に 0 を指定すると、接続されるまで試みを続けます。 .Bd -literal -offset indent set redial 10.3 4 .Ed .Pp は個々の送信パケットに対して 4 回接続を試み、 番号間の待ち時間が 3 秒で、すべての番号を試した後に 10 秒待つことを表します。 複数の電話番号が指定されている場合でも、トータルのダイヤル回数は 4 回のままです。 (それぞれの番号を 4 回ダイヤルするのではありません)。 .Pp 代りに、 .Pp .Bd -literal -offset indent set redial 10+10-5.3 20 .Ed .Pp は、 .Nm に接続を 20 回試みさせます。最初の試みの後は、 .Nm は 10 秒待ちます。 次の試みの後は 20 秒待ちということを、 6 番目の試みの後では 1 分待つところまで行います。 次の 14 回の停止は、同じ 1 分間となります。 .Nm が接続し、切断した後、再度接続に失敗した場合、 タイムアウト値は再度 10 秒から開始します。 .Pp リンクの両端が .Nm の .Fl auto ダイヤルモードを利用している場合は、 ダイヤル間隔を変更しておくのが良いでしょう。 もし、リンクの両端が同じタイムアウト時間に設定されていて、 リンクが切れて両方に送信待ちのパケットがあった場合、 両方が同時に相手を呼び出しあうことになってしまいます。 場所によっては、シリアルリンクに信頼性がなく、 切れるべきでない時にキャリアが失われるかもしれません。 セッションの途中で予期せずキャリアが失われた場合、 .Nm にリダイヤルさせることができます。 .Bd -literal -offset indent set reconnect timeout ntries .Ed .Pp このコマンドは、キャリアが失われた時に .Ar timeout 秒の間隔を置いて .Ar ntries 回まで接続を再確立するよう .Nm に指示します。例えば、 .Bd -literal -offset indent set reconnect 3 5 .Ed .Pp は、予期せぬキャリア喪失の際に .Ar 3 秒待ってから再接続を試みるように .Nm に指示します。これは .Nm があきらめる前に .Ar 5 回まで行われます。 ntries のデフォルト値は 0 (再接続しない) です。 このオプションを使用する際には注意が必要です。 もしローカル側のタイムアウトがリモート側よりもわずかに長いと、 リモート側がタイムアウトにより回線を切断した場合に、 再接続機能が (指定した回数まで) 起動されてしまいます。 注: この文脈においては、多くの LQR を喪失するとキャリア喪失を引き起こし、 ひいては再接続を引き起こします。 .Fl background フラグが指定された場合、接続が行えるまで すべての電話番号が最大 1 回ダイヤルされます。 .Dq set redial コマンドにて、リダイヤル期間の後に、 再接続回数を指定します。 リダイヤル値が指定した電話番号数より少ない場合、 指定した電話番号で使用されないものが出来ます。 プログラムを終了させるには、次のように入力してください。 .Bd -literal -offset indent PPP ON awfulhak> close ppp ON awfulhak> quit all .Ed .Pp .Dq quit コマンドは .Xr pppctl 8 もしくは .Xr telnet 1 による接続を終了しますが、 プログラム自身は終了させません。 .Nm も終了させたい場合には、 .Dq quit all を実行してください。 .Sh PPP 接続の受け入れ (方法その 1) .Em PPP 接続要求を受け入れるには、次の手順にしたがってください。 .Bl -enum .It モデムと、 (必要であれば) .Pa /etc/rc.serial が正しく設定されていることを確認します。 .Bl -bullet -compact .It フロー制御にはハードウェアハンドシェイク (CTS/RTS) を使います。 .It モデムはエコーバックを行わず (ATE0) 、コマンドの結果も報告しない (ATQ1) ように設定されていなければなりません。 .El .Pp .It モデムが接続されているポートで .Xr getty 8 が起動されるように .Pa /etc/ttys を編集します。 例えば、次のように設定すれば良いでしょう: .Pp .Dl ttyd1 "/usr/libexec/getty std.38400" dialup on secure .Pp .Xr getty 8 を起動するために .Xr init 8 プロセスに .Dv HUP シグナルを送るのを 忘れないでください: .Pp .Dl # kill -HUP 1 .It .Pa /usr/local/bin/ppplogin ファイルを次のような内容で作成します: .Bd -literal -offset indent #!/bin/sh exec /usr/sbin/ppp -direct incoming .Ed .Pp ダイレクトモード .Pq Fl direct では、 .Nm は標準入力と標準出力を使って動作します。クライアント動作の .Nm と同様に、 .Xr pppctl 8 を使用することで、構成された診断ポートに接続可能です。 .Pp ここで .Pa /etc/ppp/ppp.conf 中の .Ar incoming セクションが設定されていなければなりません。 .Pp .Ar incoming セクションに適当な .Dq allow users コマンドがあることを確かめておいてください。 .It 受け入れるユーザのアカウントを用意してください。 .Bd -literal ppp:xxxx:66:66:PPP Login User:/home/ppp:/usr/local/bin/ppplogin .Ed .Pp 詳細は .Xr adduser 8 と .Xr vipw 8 のマニュアル項目を参照してください。 .Dq accept dns および .Dq set nbns コマンドを使うことで IPCP によるドメインネームサーバと NetBIOS ネームサーバの ネゴシエーションを有効にすることが可能です。 下記の記述を参照してください。 .El .Pp .Sh PPP 接続の受け入れ (方法その 2) この方法は、 .Xr login 1 ではなく .Nm で接続の認証を行うという点が異なります。 .Bl -enum .It .Pa /etc/gettytab の default セクションに .Dq pp ケーパビリティを指定することで ppp を自動的に認識するように 設定してください。 .Bd -literal default:\\ :pp=/usr/local/bin/ppplogin:\\ ..... .Ed .It 上記の方法その 1 の最初の 3 手順と同じように、 シリアルデバイスを設定し、 .Xr getty 8 を有効にして、 .Pa /usr/local/bin/ppplogin を作成してください。 .It .Pa /etc/ppp/ppp.conf の .Sq incoming ラベル (もしくは .Pa ppplogin が用いるラベルならなんでも構いません) 下に .Dq enable chap か .Dq enable pap .Pq もしくはその両方 を加えてください。 .It .Pa /etc/ppp/ppp.secret に、受け入れるユーザそれぞれについて、エントリを作成してください。 .Bd -literal Pfredxxxx Pgeorgeyyyy .Ed .El .Pp これで、 .Xr getty 8 は (HDLC フレームヘッダを認識することで) ppp 接続を検出すると、すぐに .Dq /usr/local/bin/ppplogin を実行します。 .Pp 上記のように PAP もしくは CHAP を有効にすることは .Em 必須 です。そうしなければ、あらゆる人があなたのマシンにパスワード .Em なしに ppp セッションを確立することを許可し、 あらゆる種類の潜在的な攻撃に対して門戸を開いていることになります。 .Sh 内向き接続の認証 通常、接続の受信側は相手が相手自身を認証することを要求します。 これは通常 .Xr login 1 にて行われますが、代りに PAP か CHAP を使用可能です。 2 つのうちで CHAP の方がより安全ですが、 クライアントによってはサポートしていないものがあります。 どちらを使いたいか決めたら、 .Sq enable chap または .Sq enable pap を .Pa ppp.conf の適切なセクションに追加してください。 .Pp その後、 .Pa /etc/ppp/ppp.secret ファイルの設定を行う必要があります。 このファイルは、クライアントになりうるマシンごとに 1 行を含みます。 各行は 5 つまでのフィールドからなります: .Pp .Ar name Ar key Oo .Ar hisaddr Op Ar label Op Ar callback-number .Oc .Pp .Ar name と .Ar key は期待されるクライアントのユーザ名とパスワードを指定します。 .Ar key が .Dq \&* で PAP が使用される場合、 .Nm は認証時にパスワードデータベース .Pq Xr passwd 5 を検索します。 .Pa ppp.secret の如何なる .Ar name Ns No / Ar key の組み合わせにおいても適切でない返答をクライアントが与える場合、 認証は失敗します。 .Pp 認証に成功したならば、 .Pq 指定時には .Ar hisaddr を IP 番号ネゴシエーション時に使用します。詳細は .Dq set ifaddr コマンドを参照してください。 .Pp 認証に成功し .Ar label が指定された場合、現在のシステムラベルは .Ar label にマッチするように修正されます。 このことはファイル .Pa ppp.linkup と .Pa ppp.linkdown の後続のパーズに影響があります。 .Pp 認証に成功し .Ar callback-number が指定され .Dq set callback が .Pa ppp.conf で指定された場合、クライアントは指定された番号でコールバックされます。 CBCP が使用される場合、 .Dq set cbcp コマンドに渡すのと同様の形式で、 .Ar callback-number にもまた番号のリストまたは .Dq \&* を含むことが可能です。 この値は、 .Nm で後続する CBCP フェーズで使用します。 .Sh PPP オーバ TCP と PPP オーバ UDP (別名: トンネリング) シリアルリンク上以外の .Nm の使用方法として、 device にホストとポートを指定することにより、 TCP 接続を使用することが可能です: .Pp .Dl set device ui-gate:6669/tcp .Pp シリアルデバイスをオープンする代りに、 .Nm は指定されたマシンの指定されたソケットへの TCP 接続をオープンします。 .Nm は telnet プロトコルを使用しないこと、 telnet サーバとネゴシエーションできないことに注意を払うべきです。 受信マシン (ui-gate) 上に、 この ppp 接続を受信するポートを設定する必要があります。まず .Pa /etc/services を更新して、サービスを定義します: .Pp .Dl ppp-in 6669/tcp # Incoming PPP connections over tcp .Pp そして .Pa /etc/inetd.conf を更新して、このポートへの受信接続をどのように扱うかを .Xr inetd 8 に指示します: .Pp .Dl ppp-in stream tcp nowait root /usr/sbin/ppp ppp -direct ppp-in .Pp .Pa /etc/inetd.conf を更新した後には、 .Xr inetd 8 に .Dv HUP シグナルを送るのをお忘れなく。 ここではラベル名 .Dq ppp-in を使用します。 ui-gate (受信側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含みます: .Bd -literal -offset indent ppp-in: set timeout 0 set ifaddr 10.0.4.1 10.0.4.2 add 10.0.1.0/24 10.0.4.2 .Ed .Pp セキュリティのために PAP もしくは CHAP の設定をしたいかもしれません。 PAP を有効にするには次の行を追加します: .Bd -literal -offset indent enable PAP .Ed .Pp また、次のエントリを .Pa /etc/ppp/ppp.secret に作成する必要があります: .Bd -literal -offset indent MyAuthName MyAuthPasswd .Ed .Pp .Ar MyAuthPasswd が .Pq Dq * の場合には、パスワードは .Xr passwd 5 データベースから検索されます。 .Pp awfulhak (起動側) の .Pa /etc/ppp/ppp.conf エントリは次の内容を含む必要があります: .Bd -literal -offset indent ui-gate: set escape 0xff set device ui-gate:ppp-in/tcp set dial set timeout 30 set log Phase Chat Connect hdlc LCP IPCP CCP tun set ifaddr 10.0.4.2 10.0.4.1 add 10.0.2.0/24 10.0.4.1 .Ed .Pp PAP を有効にしようとしている場合、次の設定も必要です: .Bd -literal -offset indent set authname MyAuthName set authkey MyAuthKey .Ed .Pp 我々は、 ui-gate に 10.0.4.1 のアドレスを割り当て、 awfulhak に 10.0.4.2 のアドレスを割り当てようとしています。 接続をオープンするためには、次の内容をタイプするだけで良いです。 .Pp .Dl awfulhak # ppp -background ui-gate .Pp 結果として、 awfulhak にはネットワーク 10.0.2.0/24 への新たな「経路」が、 ui-gate にはネットワーク 10.0.1.0/24 への新たな「経路」が、 TCP 接続経由でそれぞれ作成されます。 ネットワークは実質的にブリッジされます - 下位レベルの TCP 接続はパブリックなネットワーク (例えばインターネット) を またがっても良いです。 また 2 つのゲートウェイ間では ppp トラフィックは 概念的に TCP ストリーム中でカプセル化されます (パケットがパケットに対応するわけではありません)。 .Pp この機構の大きな欠点は、同時に 2 つの「配送保証」機構が存在することです - この 2 つとは、下位レベルの TCP ストリームと .Em PPP リンク上で使用されるプロトコルであり、おそらくまた TCP でしょう。 パケット喪失が起ると、両者はそれぞれの方法で喪失した パケットを再送しようと するでしょう。 .Pp このオーバヘッドを避けるために、 トランスポートとして TCP の代りに UDP を使用できます。 これは単にプロトコルを "tcp" から "udp" に変えるだけで可能です。 トランスポートとして UDP を使用するとき、 .Nm は同期モードで動作します。 入力データがパケットに再構成されないという、別の利点もあります。 .Pp .Sh ネットワークアドレス変換 (パケットエイリアシング) .Fl nat .Pq または Fl alias コマンドラインオプションにより、 ネットワークアドレス変換 (別名、パケットエイリアシング) が有効になります。 これにより、 .Nm ホストがローカルエリアネットワークの他のコンピュータに対して マスカレードゲートウェイとして動作するようになります。 送信される IP パケットは、まるで .Nm ホストから来たかのようにエイリアスされ、 受信パケットは、それがローカルエリアネットワークの正しいマシンに 送られるようにエイリアスが戻されます。 パケットエイリアシングにより、 未登録でプライベートなサブネット上のコンピュータを 外部から見えないようにしつつ、 インターネットへアクセス可能とします。 一般に、 .Nm が正しく動作していることの確認は、 まず最初にネットワークアドレス変換を禁止して行います。 次に .Fl nat オプションを有効にして、 .Nm ホストの上で (ウェブブラウザや .Xr telnet 1 , .Xr ftp 1 , .Xr ping 8 , .Xr traceroute 8 などの) ネットワークアプリケーションの動作を確認します。 最後に、LAN 上の別のコンピュータの上で同様なアプリケーションの 動作を確認することになります。 .Nm ホストではネットワークアプリケーションが正しく動作するのに、 LAN 上の別のコンピュータでは動かないのであれば、マスカレードソフトウェアは 正しく動いているけれども、ホストが IP パケットをフォワーディングしないか、 ひょっとするとパケットが送られて来ていないかのどちらかです。 .Pa /etc/rc.conf で IP フォワーディングが有効にされていることと、 他のコンピュータで .Nm ホストがその LAN のゲートウェイとして 指定されていることを確認してください。 .Sh パケットのフィルタリング この実装では、パケットのフィルタリングがサポートされています。 .Em in フィルタ、 .Em out フィルタ、 .Em dial フィルタ、そして .Em alive フィルタの 4 種類のフィルタがあります。 ここでは基本的なことについて書くことにします。 .Bl -bullet .It フィルタ定義は次のような構文になっています。 .Pp set filter .Ar name .Ar rule-no .Ar action .Op \&! .Oo .Op host .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc .Oo Ar proto Op src Ar cmp port .Op dst Ar cmp port .Op estab .Op syn .Op finrst .Op timeout Ar secs .Oc .Bl -enum .It .Ar name は .Sq in , .Sq out , .Sq dial , .Sq alive のいずれかです。 .It .Ar rule-no は .Sq 0 から .Sq 39 までの数値で、ルール番号を指定します。 ルールは .Ar rule-no の番号順に指定されます。 ただしルール .Sq 0 が指定されている場合のみです。 .It .Ar action は .Sq permit , .Sq deny を指定可能であり、 あるパケットがこれらのルールに一致した場合、 結びつけられた action が直ちに実行されます。 また .Ar action には .Sq clear も指定可能です。 この場合、このルールに結びつけられた action をクリアします。 また .Ar action には、現在のルール番号よりも大きなルール番号を指定可能です。 この場合には、あるパケットが現在のルールに一致した場合、 (次のルール番号の代りに) この新しいルールに対して次にパケットが一致するかを確認します。 .Pp .Ar action にはエクスクラメーションマーク .Pq Dq ! を続けることが可能です。この場合、 .Nm は後続する一致の意味を反転させます。 .It .Op Ar src_addr Ns Op / Ns Ar width と .Op Ar dst_addr Ns Op / Ns Ar width は始点と終点の IP アドレスです。 .Op / Ns Ar width が指定された場合には、それによって適切なネットマスクのビット値を与え、 アドレスの範囲を指定することができます。 .Pp .Ar src_addr と .Ar dst_addr には、 .Dv MYADDR と .Dv HISADDR という値を使用可能です (これらの値の解説は .Dq bg を参照してください)。 これらの値を使用した場合、これらの値が変化するたびにフィルタが更新されます。 これは、後述の .Dq add コマンドの動作と似ています。 .It .Ar proto は .Sq icmp , .Sq igmp , .Sq ospf , .Sq udp , .Sq tcp のうちのいずれか 1 つです。 .It .Ar cmp は .Sq \< , .Sq \&eq , .Sq \> のうちいずれか 1 つです。それぞれ、より小さい、等しい、 より大きいを意味します。 .Ar port はポート番号で指定するか、 .Pa /etc/services のサービス名で指定することができます。 .It .Sq estab , .Sq syn , .Sq finrst フラグは .Ar proto が .Sq tcp に設定されているときにのみ許可され、それぞれ TH_ACK、TH_SYN、および TH_FIN もしくは TH_RST という TCP フラグを表わします。 .It タイムアウト値は、現在のアイドルタイムアウトを最低でも .Ar secs 秒へと修正します。 タイムアウトを、alive フィルタと in/out フィルタの両方で指定すると、 in/out での値が使用されます。 タイムアウトを指定しないと、デフォルトタイムアウト ( .Ic set timeout を使用して設定するもので、デフォルトでは 180 秒になります) が使用されます。 .El .Pp .It 各フィルタはルール 0 から始まり、40 個までのルールをもつことができます。 規則のルールは、ルール 0 が定義されていなければ、有効にはなりません。 すなわち、デフォルトではすべてが通されます。 .It 定義されたルール集合中にマッチするものが無い場合、 パケットは破棄 (ブロック) されます。 フィルタにルールが存在しない場合、パケットは通過を許されます。 .It .Em PROTO_IP .Em PPP フレームヘッダを持つ UDP フレームに対しては、 ペイロードに基づいたフィルタリングを行なうことが可能です。 詳細については、後述の .Ar filter-decapsulation を参照してください。 .It すべての規則を消去するには、 .Dq set filter Ar name No -1 を使ってください。 .El .Pp .Pa /usr/share/examples/ppp/ppp.conf.sample . を参照してください。 .Sh アイドルタイマの設定 アイドルタイマを調べたり/設定するためには、それぞれ .Dq show bundle と .Dq set timeout コマンドを使ってください: .Bd -literal -offset indent ppp ON awfulhak> set timeout 600 .Ed .Pp タイムアウト時間は秒数で指定します。デフォルト値は timeout が 180 秒 .Pp 3 分 です。 アイドルタイマ機能を使わないようにするためには、 次のコマンドを利用してください。 .Bd -literal -offset indent ppp ON awfulhak> set timeout 0 .Ed .Pp .Fl ddial と .Fl dedicated モードではアイドルタイムアウトは無視されます。 .Fl auto モードでは、アイドルタイムアウトが発生すると .Nm プログラムは実行したままで .Em PPP セッションを終了します。別の引金となるパケットがきた時に リンクを再び確立しようとします。 .Sh Predictor-1 および DEFLATE 圧縮 .Nm は Predictor type 1 圧縮および deflate 圧縮をサポートしています。 デフォルトでは、 .Nm は、接続相手が同意 .Pq あるいは要求 した場合に、 この機能を使おうと (もしくは受け入れようと) します。 .Nm は deflate プロトコルを優先します。 これらの機能を使用したくない時には .Dq disable と .Dq deny のコマンドを参照してください。 .Pp .Dq disable deflate か .Dq deny deflate の一方を使用することにより、 方向ごとに異ったアルゴリズムを使用することができます。 .Pq 接続相手が両方のプロトコルをサポートしていると仮定しています。 .Pp デフォルトでは、DEFLATE についてネゴシエートするときには .Nm はウィンドウサイズとして 15 を使います。この動作を変更したい場合には .Dq set deflate コマンドを参照してください。 .Pp デフォルトでは無効にされ受け付けませんが、DEFLATE24 と呼ばれる特殊な アルゴリズムを使用することもできます。これは CCP ID 24 を ネゴシエーションに使う点を除いては DEFLATE と完全に同じものです。 これを使用することで .Nm は .Nm pppd バージョン 2.3.* と DEFLATE ネゴシエーションを成功させることができます。 .Sh IP アドレスの制御 .Nm は IP アドレスのネゴシエーションのために IPCP を使います。接続の両側は、自分が 使おうとするアドレスを提示し、要求された IP アドレスが受け入れ可能な ものであれば、相手に ACK (肯定応答) を返します。 受け入れることができなければ、別の IP アドレスの使用を促すために .Nm は相手に NAK (否定応答) を返します。 接続の両側が受け取った要求に同意し (ACK を送っ) た時、 IPCP はオープン状態にセットされ、ネットワーク層での接続が確立されます。 IPCP の動作を制御するために、この実装はローカルとリモートの IP アドレスを定義するための .Dq set ifaddr コマンドを持っています。 .Bd -literal -offset indent .No set ifaddr Oo Ar src_addr Ns .Op / Ns Ar \&nn .Oo Ar dst_addr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar trigger_addr .Oc .Oc .Oc .Ed .Pp ここで、 .Sq src_addr はローカル側で使おうと思っている IP アドレスで、 .Sq dst_addr はリモート側が使用すべき IP アドレスです。 .Sq netmask は使用すべきネットマスクです。 .Sq src_addr のデフォルトは現在の .Xr hostname 1 のもの、 .Sq dst_addr のデフォルトは 0.0.0.0 であり、 .Sq netmask のデフォルトは .Sq src_addr に適したマスク値です。 .Sq netmask はデフォルトより小さくすることのみ可能です。 ほとんどのカーネルが POINTOPOINT インタフェースのネットマスクを 無視するので、便利な値は 255.255.255.255 でしょう。 .Pp 誤った .Em PPP の実装には、接続ネゴシエーションのために、 .Sq src_addr ではなく特別な IP アドレスを使用しなければならないものがあります。 この場合、 .Sq trigger_addr で指定した IP アドレスが使用されます。 相手がこの提案された番号に同意しない限り、経路表には影響しません。 .Bd -literal -offset indent set ifaddr 192.244.177.38 192.244.177.2 255.255.255.255 0.0.0.0 .Ed .Pp 上の例の意味は次の通りです: .Pp .Bl -bullet -compact .It 自分の IP アドレスとしてまず 0.0.0.0 を提案しますが、アドレス 192.244.177.38 のみは受け付けます。 .It 相手側のアドレスとして 192.244.177.2 を使うように要求し, 192.244.177.2 以外のどんなアドレスを使うことも許可しません。 相手側が別の IP アドレスを要求してきた時は、いつでも 192.244.177.2 を提案します。 .It 経路表のネットマスク値は 0xffffffff に設定されます。 .El .Pp これは、両側が既に決まった IP アドレスを持っている場合には うまくいきますが、多くの場合、一方がすべての IP アドレスを制御する サーバとして動作しており、もう一方はその方針に従います。 より柔軟な動作をさせるために、 .Dq set ifaddr コマンドで IP アドレス指定をもっと緩やかにすることが可能です: .Pp .Dl set ifaddr 192.244.177.38/24 192.244.177.2/20 .Pp スラッシュ .Pq Dq / に続く数字は、この IP アドレスで意味のあるビットの数を 表現しています。上の例は次のことを示しています。 .Pp .Bl -bullet -compact .It 可能なら自分のアドレスとして 192.244.177.38 を使おうとしますが、 192.244.177.0 から 192.244.177.255 の間の任意の IP アドレスも受け入れます。 .It 相手のアドレスとして 192.244.177.2 を使うことを希望しますが、 192.244.176.0 から 192.244.191.255 の間の任意の IP アドレスも許可します。 .It すでにお気づきと思いますが、 192.244.177.2 は 192.244.177.2/32 と書くことと 等価です。 .It 例外として、0 は 0.0.0.0/0 と等価であり、希望する IP アドレスは 特に無く、リモート接続先の選択に従うことを意味します。 0 を使用した場合は、接続が確立するまで、経路表のエントリは まったく設定されません。 .It 192.244.177.2/0 は、どんな IP アドレスでも受け入れる/許可することを 意味しますが、最初に 192.244.177.2 を使うように提案します。 .El .Pp .Sh インターネットサービスプロバイダと接続する プロバイダに接続する際には、次のステップを踏む必要があるでしょう: .Bl -enum .It .Dq set phone コマンドを使って、ダイヤルスクリプトにプロバイダの電話番号を記述します。 ダイヤルやリダイヤルに使用する電話番号は、 パイプ .Pq Dq \&| またはコロン .Pq Dq \&: で区切って複数指定することができます。例えば、次のようになります。 .Pq Dq \&: : .Bd -literal -offset indent .No set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc .Ed .Pp 最初のパイプで区切られたリストの番号は、 直前の番号でダイヤルもしくはログインスクリプトが失敗した場合のみ使用されます。 コロンで区切られた番号は、直前の番号の使用によりなにが起ったのかにかかわらず、 この順番で使用されます。例えば: .Bd -literal -offset indent set phone "1234567|2345678:3456789|4567890" .Ed .Pp この場合、まず 1234567 にダイヤルしてみます。 ダイヤルもしくはログインスクリプトに失敗したら、 次は 2345678 を使用します。 しかしこれはダイヤルもしくはログインスクリプトに失敗したとき *のみ* です。 このダイヤルの後、3456789 が使用されます。 4567890 は 345689 でダイヤルもしくはログインスクリプトに失敗したときのみ 使用されます。 2345678 のログインスクリプトが失敗したとしても、次の番号は 3456789 です。 必要な数だけ、パイプとコロンを使用可能です (しかし、通常はパイプのみかコロンのみであり両方の使用はないでしょう)。 次の番号へのリダイヤルまでのタイムアウトは、すべての番号にて使用されます。 リストが終了すると、 通常のリダイヤル期間だけ待ち、 最初から再開します。 .Dq set dial コマンドの \\\\T 文字列は選択された番号で置きかえられます。 (以降を参照してください)。 .It リダイヤルに関する設定は、 .Dq set redial で行います。 例えば回線の調子が悪かったり、 (最近では それほど多くないでしょうが) プロバイダがいつも話中だったりすると、 次のように設定したくなるかもしれません: .Bd -literal -offset indent set redial 10 4 .Ed .Pp これは最初の番号にリダイヤルを行う前に 10 秒待って、 4 回までダイヤルしてみるという意味になります。 .It .Dq set dial と .Dq set login コマンドを使ってログイン手続きを記述します。 .Dq set dial コマンドはモデムと通信してプロバイダへのリンクを確立するのに使われます。 例えば、次のようになります: .Bd -literal -offset indent set dial "ABORT BUSY ABORT NO\\\\sCARRIER TIMEOUT 4 \\"\\" \e ATZ OK-ATZ-OK ATDT\\\\T TIMEOUT 60 CONNECT" .Ed .Pp このモデム「チャット」文字列の意味は次の通りです。 .Bl -bullet .It \&"BUSY" または "NO CARRIER" を受信した場合には処理を中止します。 .It タイムアウトを 4 秒にセットします。 .It 文字列の受信待ちは行いません。 .It ATZ を送信します。 .It OK の受信待ちを行います。もし 4 秒以内に受信できなければ、 もう 1 度 ATZ を送信し、OK の受信待ちを行います。 .It ATDTxxxxxxx を送信します。xxxxxxx は 上記の電話番号リストの中の、次にダイヤルする番号です。 .It タイムアウトを 60 にセットします。 .It 文字列 CONNECT の受信待ちを行います。 .El .Pp 一旦接続が確立されると、ログインスクリプトが実行されます。 このスクリプトはダイヤルスクリプトと同じスタイルで書かれますが、 パスワードが記録されないように注意してください: .Bd -literal -offset indent set authkey MySecret set login "TIMEOUT 15 login:-\\\\r-login: awfulhak \e word: \\\\P ocol: PPP HELLO" .Ed .Pp このログイン「チャット」文字列の意味は次の通りです。 .Bl -bullet .It タイムアウトを 15 秒にセットします。 .It \&"login:" の受信待ちを行います。もし受信できなければ 復改文字を送信して、再び "login:" の受信待ちを行います。 .It \&"awfulhak" を送信します。 .It \&"word:" ("Password:" プロンプトの末尾) の受信待ちを行います。 .It .Ar authkey に現在設定されている値を送信します。 .It \&"ocol:" ("Protocol:" プロンプトの末尾) の受信待ちを行います。 .It \&"PPP" を送信します。 .It \&"HELLO" の受信待ちを行います。 .El .Pp .Dq set authkey コマンドのログは特別な方法でとられます。 .Ar command または .Ar chat のログが有効な時は、実際のパスワードは記録されません。 代りに .Sq ******** Ns が記録されます。 .Pp ログインスクリプトはプロバイダによって大きく違うものになるでしょう。 始めてそれを設定するときには .Em チャットログを有効化 することで、あなたのスクリプトが予定通りに動いているかを 調べることができます。 .It シリアル回線と通信速度を指定するためには .Dq set device と .Dq set speed を使います。例えば次のようになります。 .Bd -literal -offset indent set device /dev/cuaa0 set speed 115200 .Ed .Pp .Fx では cuaa0 が 1 つめのシリアルポートになります。 .Ox で .Nm を実行している場合には cua00 が 1 つめです。 あなたのモデムが 28800 かそれ以上のビットレートで通信することが できるなら、シリアルポートの速度には 115200 を指定しておくべきでしょう。 一般に、シリアルポートの速度はモデムの速度の約 4 倍にしておきます。 .It .Dq set ifaddr コマンドで IP アドレスを定義します。 .Bl -bullet .It プロバイダがどの IP アドレスを使っているのか知っている場合には、 それをリモートアドレス (dst_addr) として使ってください。 知らない場合には、10.0.0.2/0 か何かを使ってください (以降を参照してください)。 .It 特定の IP アドレスをプロバイダから割り当てられている場合は、 それをローカルアドレス (src_addr) として使ってください。 .It プロバイダが IP アドレスを動的に割り当てる場合は、適当に控えめで 緩やかに記述した IP アドレスをローカルアドレスに選んでください。 10.0.0.1/0 が適切でしょう。 / に続く数値は、このアドレスのうち何ビットを重視しているかを示します。 もしもクラス C のネットワーク 1.2.3.0 上のアドレスを使うことを 主張したいのなら、1.2.3.1/24 と指定することができます。 .It プロバイダがあなたが提示した最初の IP 番号を受け付ける場合、 第 3, 4 の引数に .Dq 0.0.0.0 を指定してください。 これによりプロバイダが番号を割り当てます。 (3 つめの引数は、 .Sq src_addr に対してデフォルトのマスクよりも制約が緩いため、無視されます。) .El .Pp 自分の IP アドレスもプロバイダの IP アドレスも 知らない場合には、次の例のようにするとよいでしょう。 .Bd -literal -offset indent set ifaddr 10.0.0.1/0 10.0.0.2/0 0.0.0.0 0.0.0.0 .Ed .Pp .It ほとんどの場合、プロバイダはデフォルトルータでもあるでしょう。 この場合、次の行を .Pa /etc/ppp/ppp.conf に追加します。 .Bd -literal -offset indent add default HISADDR .Ed .Pp これは、 .Nm 接続先のアドレスが何であっても .Pq この例では 10.0.0.2 デフォルト経路として追加するように指示します。 この経路は .Sq スティッキー です。これは .Dv HISADDR の値が変わると、経路もそれに従って自動的に更新されるという意味です。 .Pp 以前のバージョンの .Nm では .Pa /etc/ppp/ppp.linkup ファイルにこれと似たエントリが必要でした。 .Sq スティッキー経路 の出現により、これはもはや必要ではなくなりました。 .It プロバイダが PAP/CHAP による認証を要求している場合は、 .Pa /etc/ppp/ppp.conf ファイルに次の行を追加してください: .Bd -literal -offset indent set authname MyName set authkey MyPassword .Ed .Pp デフォルトではどちらも受け付けられますので、ISP が何を要求しても大丈夫です。 .Pp PAP もしくは CHAP を使用する場合、ログインスクリプトはほとんどの場合、 必要とされないことを記述しておくべきでしょう。 .It 次のような行を加え、ISP にネームサーバアドレスを確認してください。 .Bd -literal -offset indent enable dns .Ed .Pp ローカル DNS を走らせている場合には、 .Dq resolv readonly を使わず、かつ、 .Dq resolv restore を .Pa /etc/ppp/ppp.linkdown に含めていないならば、 これを .Em やらない でください。 .Nm は単純に .Pa /etc/resolv.conf に nameserver 行を入れることで、ローカル DNS の使用を 出し抜いてしまうからです。 .El .Pp 現実の例を見たい場合には、 .Pa /usr/share/examples/ppp/ppp.conf.sample と .Pa /usr/share/examples/ppp/ppp.linkup.sample を参照してください。 ラベル pmdemand は、ほとんどのプロバイダで使用できるでしょう。 .Sh ログ機能 .Nm は次のログ情報を、 .Xr syslog 3 経由で、もしくはスクリーンに出力することができます: .Pp .Bl -tag -width XXXXXXXXX -offset XXX -compact .It Li Async 非同期レベルパケットの 16 進ダンプ。 .It Li CBCP CBCP (CallBack Control Protocol) ログの生成。 .It Li CCP CCP パケットトレースの生成。 .It Li Chat .Sq dial , .Sq login , .Sq logout , .Sq hangup のチャットスクリプトのトレースログの生成。 .It Li Command コマンド実行のログ。 .It Li Connect 文字列 "CONNECT" を含むチャット行のログ。 .It Li Debug デバッグ情報のログ。 .It Li DNS DNS QUERY パケットのログ。 .It Li Filter ダイヤルフィルタに許可され、他のフィルタに拒否されたパケットのログ。 .It Li HDLC HDLC パケットの 16 進ダンプ。 .It Li ID0 ユーザ ID 0 で実行された全関数呼び出しを詳細に記録。 .It Li IPCP IPCP パケットトレースの生成。 .It Li LCP LCP パケットトレースの生成。 .It Li LQM LQR レポートの生成。 .It Li Phase フェーズ遷移ログの出力。 .It Li Physical 物理レベルパケットの 16 進ダンプ。 .It Li Sync 同期レベルパケットの 16 進ダンプ。 .It Li TCP/IP 全 TCP/IP パケットのダンプ。 .It Li Timer タイマ操作のログ。 .It Li TUN ログの各行に tun デバイスを含めます .It Li Warning 端末デバイスへの出力。端末が存在しない場合は、 .Dv LOG_WARNING を使用してログファイルに送ります。 .It Li Error 端末デバイスとログファイルへの出力で、 .Dv LOG_ERROR を使用します。 .It Li Alert ログファイルへの出力で、 .Dv LOG_ALERT を使用します。 .El .Pp .Dq set log コマンドで、ログの出力レベルを設定することができます。 また、複数のレベルを単一コマンドラインにて指定することも可能です。 デフォルトは、 .Dq set log Phase です。 .Pp スクリーンに直接ログを表示することも可能です。 文法は同じで、語 .Dq local が .Dq set log の直後に付くことだけが違います。 デフォルトは .Dq set log local (つまり、マスクされない警告、エラーと注意のみ出力) です。 .Pp .Dq set log Op local への最初の引数が .Sq + か .Sq - の文字で始まる場合、現在のログレベルを消去せずに修正します。例えば: .Bd -literal -offset indent PPP ON awfulhak> set log phase PPP ON awfulhak> show log Log: Phase Warning Error Alert Local: Warning Error Alert PPP ON awfulhak> set log +tcp/ip -warning PPP ON awfulhak> set log local +command PPP ON awfulhak> show log Log: Phase TCP/IP Warning Error Alert Local: Command Warning Error Alert .Ed .Pp レベル Warning, Error, Alert のメッセージログは .Dq set log Op local では制御できません。 .Pp .Ar Warning レベルは特別で、ローカルに表示可能な場合には記録されません。 .Sh シグナルハンドリング .Nm は次のシグナルを扱います: .Bl -tag -width XX .It INT このシグナルを受信すると、現在の接続がもしあればそれを終了します。 .Fl auto もしくは .Fl ddial のモードではない場合、 .Nm は終了します。 .It HUP, TERM, QUIT .Nm を終了させます。 .It USR2 .Nm に全サーバソケットを閉じさせ、すべての既存の診断ポートへの接続を 取り下げます。 .El .Pp .Sh マルチリンク PPP .Em PPP 相手に接続するのに複数の物理的なリンクを利用したいなら、 接続相手も .Em マルチリンク PPP プロトコルを理解する必要があります。 仕様の詳細は RFC 1990 を参照してください。 .Pp 接続先は、 .Dq 終点の選択 とその .Dq 認証 ID の組み合わせによって識別されます。 これらの一方、もしくは両方を指定することができます。 最低でも片方は指定しておくことが推奨されます。 そうでないと、すべてのリンクが実際に同一のプログラムに接続されていることを 確認する方法がなくなり、 混乱してロックアップを引き起こすことがあります。 ローカルには、これらの識別変数は .Dq set enddisc と .Dq set authname コマンドを用いることで指定されます。先立って接続相手と .Sq authname .Pq と Sq authkey について合意しておく必要があります。 .Pp マルチリンクの能力は .Dq set mrru コマンド (set maximum reconstructed receive unit) を用いることで 有効になります。一度マルチリンクが有効になれば、 .Nm は接続相手とマルチリンク接続のネゴシエーションを行います。 .Pp デフォルトでは .Po .Sq deflink と呼ばれる .Pc ただ 1 つの .Sq リンク のみが有効です。さらにリンクを作成するには .Dq clone コマンドが使われます。このコマンドは既存のリンクを複製します。 それは次の点を除いてすべての性質が同じものです: .Bl -enum .It 新しいリンクは .Dq clone コマンドラインで指定された独自の名前を持ちます。 .It 新しいリンクは .Sq interactive リンクです。そのモードは次の .Dq set mode コマンドで変更することができます。 .It 新しいリンクは .Sq closed の状態にあります。 .El .Pp すべての有効なリンクのまとめは、 .Dq show links コマンドを用いて見ることができます。 .Pp 一度リンクが作成されると、コマンドの使用方法が変わります。 すべてのリンク固有のコマンドの前には、 .Dq link Ar name プレフィックスをつけて、 コマンドを適用するリンクを指定する必要があります。 .Nm は十分賢いので、 利用可能なリンクが 1 つだけの場合には、 .Dq link Ar name プレフィックスは不要です。 .Pp コマンドの中には依然としてリンクの指定なしに使用できるものがあり、それは .Sq バンドル レベルの操作を行います。たとえば、2 つ以上のリンクが存在するとき .Dq show ccp はマルチリンクレベルの CPP 設定と統計を表示し .Dq link deflink show ccp は .Dq deflink のリンクレベルの同じ情報を表示します。 .Pp これらの情報を用いて、次の設定を用いることができます: .Pp .Bd -literal -offset indent mp: set timeout 0 set log phase chat set device /dev/cuaa0 /dev/cuaa1 /dev/cuaa2 set phone "123456789" set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \\"\\" ATZ \e OK-AT-OK \\\\dATDT\\\\T TIMEOUT 45 CONNECT" set login set ifaddr 10.0.0.1/0 10.0.0.2/0 set authname ppp set authkey ppppassword set mrru 1500 clone 1,2,3 link deflink remove .Ed .Pp すべての複製が設定の最後で行われていることに注意してください。 一般にはリンクは最初に設定され、そして複製されます。 あなたが常にすべてのリンクがアップ状態であることを望む場合には、 設定の最後に次の行を追加することができます。 .Pp .Bd -literal -offset indent link 1,2,3 set mode ddial .Ed .Pp リンクが必要に応じてダイヤルされることを望む場合には、次のコマンドを 使うことができます。 .Pp .Bd -literal -offset indent link * set mode auto .Ed .Pp 上記の .Dq set device 行を取り除き、 .Dq clone コマンドに続けて次の内容を指定することで、 リンクを特定の名前に結びつけることもできます: .Pp .Bd -literal -offset indent link 1 set device /dev/cuaa0 link 2 set device /dev/cuaa1 link 3 set device /dev/cuaa2 .Ed .Pp どのコマンドが ( .Dq link コマンドを使用した) コンテキスト (文脈) を要求し、 どのコマンドがコンテキストをオプションとし、 そしてどのコマンドがコンテキストを一切とらないかを調べるには、 .Dq help コマンドを使用します。 .Pp .Nm が接続相手と .Em マルチリンク モードでネゴシエートすると、 .Nm はローカルドメインソケットを .Pa /var/run ディレクトリに作成します。このソケットは、 リンク情報 (実際のリンクファイル記述子も含む) を、異なる .Nm の間で受け渡しするために使われます。 この機能によって、 .Nm はシリアル回線の初期制御を行う必要なしに .Xr getty 8 から、もしくは直接 .Pa /etc/gettydefs から ( .Sq pp= ケーパビリティを用いて) 実行することが可能となっています。 ひとたび .Nm がマルチリンクモードのネゴシエーションを行うと、 .Nm は自分がオープンした リンクをすでに実行されている任意の他のプロセスに渡すことができます。 すでに実行されているプロセスがない場合、 .Nm はマスタとして振る舞い、ソケットを作成し、新たな接続を待ちます。 .Sh PPP コマンドリスト この節では利用可能コマンドとその効果をリストします。 .Nm ppp セッションで対話的に使用することも、 設定ファイルで指定することも、 .Xr pppctl 8 もしくは .Xr telnet 1 セッションで指定することも可能です。 .Bl -tag -width XX .It accept|deny|enable|disable Ar option.... これらのディレクティブは 最初の接続においてどのように相手とネゴシエートするかを .Nm に指示します。各 .Dq option は、accept/deny および enable/disable のデフォルトを持ちます。 .Dq accept は相手がこのオプションを要求したら、ACK を送ることを意味します。 .Dq deny は相手がこのオプションを要求したら、NAK を送ることを意味します。 .Dq enable はこのオプションを当方が要求することを意味します。 .Dq disable はこのオプションを当方が要求しないことを意味します。 .Pp .Dq option は次のいずれかです: .Bl -tag -width XX .It acfcomp デフォルト: enable かつ accept。 ACFComp はアドレスおよびコントロールフィールド圧縮 (Address and Control Field Compression) を意味します。 LCP パケット以外は通常、 アドレスフィールド 0xff (全ステーションアドレス) と 制御フィールド 0x03 (番号付けされていない情報コマンド) を持ちます。 このオプションがネゴシエートされると、これらの 2 バイトは単に送信されなくなり、 流量が少なくなります。 .Pp 詳細は .Pa rfc1662 を参照してください。 .It chap Ns Op \&05 デフォルト: disable かつ accept。 CHAP はチャレンジ交換認証プロトコル (Challenge Handshake Authentication Protocol) を意味します。 CHAP もしくは PAP (後述) のどちらか一方のみネゴシエーション可能です。 CHAP では、認証者は「チャレンジ」メッセージを相手に送ります。 相手は一方向ハッシュ関数を使用して「チャレンジ」を暗号化し、 結果を送り返します。 認証者は同じことを行い結果を比較します。 この機構の利点は、接続を介してパスワードを送らないことです。 接続が最初に確立する時にチャレンジが行われます。 更なるチャレンジが行われるかもしれません。 相手の認証を行いたい場合は、 .Dq enable chap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp/ppp.secret に書く必要があります。 .Pp クライアントとして CHAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 CHAP はデフォルトで accept されます。 .Em PPP の実装によっては、チャレンジの暗号化に MD5 ではなく "MS-CHAP" を使用するものがあります。 MS-CHAP は MD4 と DES の組み合わせです。もし .Nm が DES ライブラリの存在するマシン上で構築された場合 MS-CHAP 認証要求に応答しますが、要求はしません。 .It deflate デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に deflate 圧縮を使用するか否かを決定します。 使用されるアルゴリズムは .Xr gzip 1 プログラムが使用するものと同じです。 注: .Xr pppd 8 - 多くのオペレーティングシステムで使用可能な .Em PPP の実装 - との .Ar deflate 能力についてのネゴシエーションには問題があります。 .Nm pppd (バージョン 2.3.1) が .Ar deflate 圧縮のネゴシエーションを行おうとする CCP コンフィギュレーションタイプは、 .Pa rfc1979 に規定されたタイプ .Em 26 ではなくタイプ .Em 24 であり、誤っています。 タイプ .Ar 24 は実際には .Pa rfc1975 では .Dq PPP Magna-link Variable Resource Compression と指定されています! .Nm は .Nm pppd とネゴシエートする能力がありますが、 .Dq deflate24 が .Ar enable かつ .Ar accept されている場合のみです。 .It deflate24 デフォルト: disable かつ deny。 これは .Ar deflate のバリエーションで、 .Xr pppd 8 プログラムとのネゴシエーションを許可します。 詳細は上記の .Ar deflate セクションを参照してください。 これは .Pa rfc1975 に反するため、デフォルトでは disable となっています。 .It dns デフォルト: disable かつ deny。 このオプションは DNS ネゴシエーションを許可します。 .Pp .Dq enable にすることにより、 .Nm は接続相手が .Pa /etc/resolv.conf ファイルのエントリを確認することを要求します。 もし接続相手が当方の要求に否定応答をした場合 (新しい IP アドレスを 提案したら)、 .Pa /etc/resolv.conf ファイルは更新され、新しいエントリを確認するように要求を送ります。 .Pp .Dq accept にすることにより、 .Nm は接続相手からの DNS 検索要求を拒否せずに、返答します。 .Dq set dns コマンドの使用によって上書きされていない場合には、応答は .Pa /etc/resolv.conf から採られます。 .It enddisc デフォルト: enable かつ accept。 このオプションは、終点選択値をネゴシエートするか否かを制御します。 .Dq set enddisc が使用され .Ar enddisc が enable の場合のみ、当方の選択値を送ります。 .Ar enddisc が disable の場合、相手の選択値を拒否します。 .It LANMan|chap80lm デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 .Dq LANMan は単純な DES 暗号化機構を使用するものであり、 CHAP 代替としては最低の安全性のものです (それでも PAP よりは安全です)。 .Pp 更なる詳細は後述の .Dq MSChap の記述を参照してください。 .It lqr デフォルト: disable かつ accept。 このオプションはリンク品質要求 (Link Quality Request) を送信する、 もしくは受け入れるかどうかを決定します。 LQR は、モデムのキャリア検出を使用せずに、リンクダウンを .Nm に決定させるプロトコルです。 LQR が enable になっていると、 .Nm は LCP 要求の一部として .Em QUALPROTO オプション (後述の .Dq set lqrperiod を参照) を送ります。 接続相手が同意した場合、両端は同意した間隔で LQR パケットを交換し、 LQM ロギングを有効にすることで、詳細なリンク品質を監視することが 可能になります。 接続相手が同意しなかった場合、 .Nm は代りに ECHO LQR 要求を 送ります。これらのパケットは興味ある情報を何も渡しませんが、 .Em 必ず 接続相手に応答しなければなりません。 .Pp LQR, ECHO LQR のいずれを用いるにせよ、 .Nm は 5 つのパケットを送ったが確認応答が無い場合、6 つ目のパケットを送らずに 回線を切断します。 メッセージを .Em PHASE レベルで記録し、回線切断の原因が接続相手にあるものとして、適当な .Dq reconnect 値を使用します。 .It MSChap|chap80nt デフォルト: disable かつ accept。 この認証プロトコルの使用は勧められません。 単一の CHAP タイプ (0x80) を装って、 2 つの異った機構 (LANMan と NT) を実装することにより、 部分的に認証プロトコルを侵害しているからです。 標準の CHAP (タイプ 0x05) に非常に良く似ていますが、 チャレンジを固定 8 バイト長で発行し、 標準の MD5 機構ではなく MD4 と DES を組み合わせてチャレンジを暗号化するところが違います。 LANman 用の CHAP タイプ 0x80 もまたサポートされています - 詳細は .Dq enable LANMan を参照してください。 .Pp .Dq LANMan と .Dq NT の両方が CHAP タイプ 0x80 を使用しますので、両方を .Dq enable にして認証者として動作するときには、 相手が誤った方のプロトコルを使用して応答した場合には、 .Nm は最大 3 回相手に再チャレンジします。 これにより、相手が両方のプロトコルを使用する機会を与えます。 .Pp 逆に、両プロトコルを .Dq enable にして .Nm が被認証者となる場合、チャレンジに答えるたびに使用プロトコルを交換します。 .Pp 注: LANMan のみが enable にされた場合、 .Xr pppd 8 (バージョン 2.3.5) は被認証者としては誤った動作を行います。 NT と LANMan の両方の応答を行いますが、 NT の応答のみ使用すべきことも指示してしまうのです。 .It pap デフォルト: disable かつ accept。 PAP はパスワード認証プロトコル (Password Authentication Protocol) を 意味します。 CHAP (前述) もしくは PAP のどちらか一方のみネゴシエーション可能です。 PAP では、ID とパスワードが相手に送られ続け、 認証されるか接続が終了されるまでこれが続きます。 これは比較的良くないセキュリティ機構です。 接続が最初に確立した時のみ実行可能です。 相手の認証を行いたい場合は、 .Dq enable pap を .Pa /etc/ppp/ppp.conf に書き、相手のエントリを .Pa /etc/ppp.secret に書く必要があります (ただし、後述の .Dq passwdauth と .Dq set radius オプションを参照)。 .Pp クライアントとして PAP を使用する場合、 .Dq AuthName と .Dq AuthKey を .Pa /etc/ppp/ppp.conf に指定するだけで良いです。 PAP はデフォルトで accept されます。 .It pred1 デフォルト: enable かつ accept。 このオプションは圧縮制御プロトコル (Compression Control Protocol; CCP) に Predictor 1 圧縮を使用するかどうかを決定します。 .It protocomp デフォルト: enable かつ accept。 このオプションは PFC (プロトコルフィールド圧縮) のネゴシエートするために使用されます。 この機構により、 プロトコルフィールド数が 2 オクテットから 1 オクテットに減ります。 .It shortseq デフォルト: enable かつ accept。 このオプションは .Nm がマルチリンクモードのネゴシエーション時に .Pq 12 ビットの 短いシーケンス番号を要求し、そして受け入れるかどうかを決定します。 これは、当方の MMRU が設定されたときのみ (マルチリンクが有効になっているときのみ) 適用されます。 .It vjcomp デフォルト: enable かつ accept。 このオプションは Van Jacobson ヘッダ圧縮を使用するかどうかを決定します。 .El .Pp 次に示すオプションは、実際には相手とネゴシエートしません。 それゆえ accept および deny は意味を持ちません。 .Bl -tag -width 20 .It filter-decapsulation デフォルト: disable。 本オプションを enable にすると、 .Nm は UDP フレームを検査し、 .Em PPP フレームをペイロードとして持っているか否かを見ます。 これが真である場合、パケット自身に対してではなく、ペイロードに対して、 すべてのフィルタを適用します。 .Pp .Em PPP リンク上で PPPoUDP トラフィックを送りたい場合で、 UDP ラッパではなく、 実際のデータに基いて賢いことをリンクにやらせたい場合に有用です。 .Pp UDP フレームのペイロードは、如何なる方法であっても圧縮してはなりません。 圧縮した場合には、 .Nm はペイロードを解釈できません。 ですから、UDP リンクに対する .Nm の起動の際には、設定中で .Ic disable vj pred1 deflate と .Ic deny vj pred1 deflate を行なうことを推奨します。 .It idcheck デフォルト: enable。 低レベルな LCP, CCP, IPCP 設定トラフィックを交換するときに、 すべての応答の識別子フィールドはその要求の識別子フィールドと 同一であることが予定されています。デフォルトでは .Nm は予定された識別子フィールドを持たないすべての応答パケットを 捨て、それぞれのログレベルで報告します。もし .Ar idcheck が disable になっている場合、 .Nm は識別子フィールドを無視します。 .It keep-session デフォルト: disable。 .Nm がマルチリンクサーバとして動作するとき、別の .Nm インスタンスが最初に各接続を受け付けます。 リンクが (別の .Nm によって制御されている) 既存のバンドルに属すと判定すると、 .Nm はこのリンクを当該別プロセスへ移管します。 .Pp リンクが tty デバイスである場合かこのオプションが enable されている場合、 .Nm は終了せず、自己のプロセス名を .Dq session owner に変え、リンクを制御する方の .Nm が処理を完了してアイドルプロセスの方へシグナルを返すまで待ちます。 リンク資源が再利用可能であると .Nm の親がみなす結果により生じる混乱を、これにより防ぎます。 .Pp .Pa /etc/ttys にエントリがある tty デバイスの場合、別の .Xr getty 8 の開始を防ぐために、これが必要です。 .Xr sshd 8 のようなプログラムリンクの場合、子供の死による .Xr sshd 8 の終了を防ぐために、これが必要です。 .Nm は親の要件を判断できませんので (tty の場合を除く)、 状況に応じて手動で本オプションを設定する必要があります。 .It loopback デフォルト: enable。 .Ar loopback が enable の場合、 .Nm は自動的に .Em PPP インタフェースと同じ終点アドレス宛に送出されたパケットを ループバックします。 disable の場合、 .Nm がパケットを送ると、おそらく他の終点からの ICMP リダイレクトとなります。 インタフェースがデフォルト経路であるため、 ループバック経路を必要とすることを避けたい場合、 このオプションを enable にすると便利です。 .It passwdauth デフォルト: disable。 このオプションを enable にすることにより、 PAP 認証コードが呼び出し側を認証する時に、 .Pa /etc/ppp/ppp.secret ファイル中でみつからない場合、パスワードデータベース ( .Xr passwd 5 参照) を使用します。 .Pa /etc/ppp/ppp.secret は常に、最初に調べられます。 .Xr passwd 5 からパスワードを調べ、かつそのクライアントに対して IP アドレスもしくは ラベルを指定したい場合には、 .Pa /etc/ppp/ppp.secret ファイル中のクライアントのパスワードとして .Dq \&* を用いてください。 .It proxy デフォルト: disable。 このオプションを enable にすることにより、 .Nm に相手のために代理 ARP をさせます。 .Dv HISADDR と .Dv HISADDR がいるローカルネットワークの .Dv MAC アドレスを使用して、 .Nm が ARP 表に単一エントリを作成することを意味します。 これにより、 相手自身がその LAN に接続されたかのような状態で、 LAN に接続された他のマシンと相手とが 通信できるようになります。 .Dv HISADDR が LAN からのアドレスではない場合、代理エントリは作成できません。 .It proxyall デフォルト: disable。 このオプションを enable にすることにより、 .Nm に代理 ARP エントリを追加させます。 追加されるエントリは、 tun インタフェースによってルーティングされる すべてのクラス C もしくはそれ以下のサブネットの中の、全 IP アドレスです。 .Pp 代理 arp エントリは、 .Dq add コマンドによって追加されたスティッキー経路に対してのみ作成されます。( .Dq set ifaddr コマンドによって作成された) インタフェースアドレス自身に対しては、代理 arp エントリは作成されません。 .It sroutes デフォルト: enable。 .Dq add コマンドが .Dv HISADDR もしくは .Dv MYADDR という値とともに用いられると、エントリは .Sq スティック経路 リストに格納されます。 .Dv HISADDR もしくは .Dv MYADDR が変更される度に、このリストが経路表に適用されます。 .Pp このオプションを disable にすると、 スティッキー経路が適用されなくなります。 .Sq スティック経路 リストは依然として保守されます。 .It throughput デフォルト: enable。 このオプションを有効にすると、 .Nm はスループット統計を収集します。 ずれ動く 5 秒間のウィンドウにおいて入出力が検査され、 現在、最良時、総計の数値が保持されます。 このデータは関連する .Em PPP 層が終了するときに出力され、また .Dq show コマンドで表示することで得られます。スループット統計は .Dq IPCP と .Dq physical のレベルで利用可能です。 .It utmp デフォルト: enable。 通常ユーザが PAP もしくは CHAP で認証された時で、 .Nm が .Fl direct モードで実行されている時は、このユーザのエントリが utmp ファイルおよび wtmp ファイルに作成されます。 このオプションを disable にすると、 .Nm は utmp および wtmp のエントリを作成しません。 通常、 ユーザがログインしかつ認証することを要求する場合のみ必要です。 .It iface-alias デフォルト: .Fl nat が指定された場合 enable。 このオプションは、 インタフェースのアドレスを交換するのではなく、 インタフェースに新規アドレスを追加するように、 .Nm に指示します。 ネットワークアドレス変換が有効な場合のみ .Pq Dq nat enable yes 、本オプションを enable にできます。 .Pp 本オプションを enable にすると、 .Nm は古いインタフェースアドレスのトラフィックを NAT エンジン .Pq Xr libalias 3 参照 を通すようになり、( .Fl auto モードでは) 最初に PPP リンクを立ち上げたプロセスが正しく接続できるようにします。 .Pp .Dq nat enable no として NAT を disable すると、 .Sq iface-alias も disable します。 .El .Pp .It add Ns Xo .Op \&! .Ar dest Ns Op / Ns Ar nn .Op Ar mask .Op Ar gateway .Xc .Ar dest は宛先 IP アドレスです。 ネットマスクは .Ar /nn によってビット数で指定するか、もしくは .Ar mask を用いて IP 番号で指定します。 .Ar 0 0 ならびにマスクなしの .Ar 0 はデフォルト経路を意味します。 .Ar 0 の代りにシンボル名 .Ar default を使うことが可能です。 .Ar gateway は、 .Ar dest マシン/ネットワークに至る、次のホップのゲートウェイです。 詳細は .Xr route 8 コマンドを参照してください。 .Pp 宛先にシンボル名 .Sq MYADDR と .Sq HISADDR を使用可能であり、 .Ar gateway には .Sq HISADDR を使用可能です。 .Sq MYADDR はインタフェースアドレスに置き換えられ、 .Sq HISADDR はインタフェースの宛先 (相手の) アドレスに置き換えられます。 .Pp .Ar add! コマンド .Po .Dq \&! に注意 .Pc 使用時には、経路が存在する場合には .Sq route change コマンド (詳細は .Xr route 8 参照) にて経路を更新します。 .Pp .Dq HISADDR , .Dq MYADDR , .Dq DNS0 , .Dq DNS1 のいずれかを含む経路は .Sq スティッキー と見なされます。これらはリスト (リストを見るには .Dq show ipcp コマンドを使用します) に格納され、 .Dv HISADDR .Dq MYADDR , .Dq DNS0 , .Dq DNS1 のいずれかの値が変更される度に、経路表の関連するエントリが更新されます。 この機能は .Dq disable sroutes を使用することで無効にできます。 .It allow user Ns Xo .Op s .Ar logname Ns No ... .Xc このコマンドは .Nm と設定ファイルへのアクセスを制御します。 設定ファイルのラベルと .Nm 実行モードにより、 ユーザレベルでのアクセスも可能です。 例えば、 .Fl background モードでは、ユーザ .Sq fred のみがラベル .Sq fredlabel にアクセスできるように、 .Nm を構成したいかもしれません。 .Pp ユーザ ID 0 はこれらのコマンドの対象外です。 .Bl -tag -width XX .It allow user[s] Ar logname... デフォルトでは、ユーザ ID 0 のみが .Nm へのアクセスを許されています。 このコマンドを指定することで、 .Dq allow users が記載されているセクションに列挙されているユーザは、 そのセクションへのアクセスが可能となります。 .Sq default セクションは 常に最初にチェックされます (スタートアップ時に常にロードされる唯一の セクションです)。 あるセクションの中では、複数の .Dq allow users コマンドは、加算的です。 しかしながら、あるセクション中で許可されたユーザ群は、 .Sq default セクションで許可されたユーザ群を上書きします。 ですから、デフォルトユーザを .Sq default セクションで指定し、新しいユーザリストをあるラベルに指定することで、 あるラベル以外のすべてにアクセスを許すといったことが可能です。 .Pp ユーザ .Sq * が指定されると、全ユーザにアクセスが許されます。 .It allow mode Ns Xo .Op s .Ar mode Ns No ... .Xc デフォルトでは全 .Nm モードが使用可能です。 このコマンドが使用されると、 このコマンドが指定されたラベルのロードに許されるアクセス .Ar mode が制限されます。 .Dq allow users コマンドと同様、 各 .Dq allow modes コマンドは先行するコマンドに優先し、 .Sq default セクションは常に最初にチェックされます。 .Pp 使用可能なモードは次の通りです: .Sq interactive , .Sq auto , .Sq direct , .Sq dedicated , .Sq ddial , .Sq background , .Sq * 。 .Pp マルチリンクモードで動作するときには、 現在存在する回線モードを許可するセクションをロード可能です。 .El .Pp .It nat Ar command Op Ar args このコマンドは .Nm 組込みのネットワークアドレス変換機能 (マスカレーディングや IP エイリアシングとしても知られています) を 制御するために使用します。 NAT は、外部インタフェースでのみ動作し、 .Fl direct フラグと共に使用してもおそらく意味がありません。 .Pp 後方互換性のために、語 .Dq alias を .Dq nat の代りに使用可能です。 あなたのシステムで nat を有効にすると (コンパイル時に削除できます)、 次のコマンドが使用可能となります: .Bl -tag -width XX .It nat enable yes|no このコマンドは、ネットワークアドレス変換を有効もしくは無効にします。 .Fl nat コマンドラインフラグは .Dq nat enable yes と同じ意味です。 .It nat addr Op Ar addr_local addr_alias このコマンドには、 .Ar addr_alias のデータを .Ar addr_local へリダイレクトします。 少数の実 IP アドレスを持ち、 それらをゲートウェイの後の特定のマシンにマップしたい場合に有用です。 .It nat deny_incoming Op yes|no yes に設定すると、 ファイアウォールとほぼ同様にパケットを落とすことにより、 このコマンドは全入力接続を拒否します。 +.Pp +このオプションを有効化すると、 +libalias が識別不可能な IP パケットを落とすことに注意してください。 +これは将来修正される予定です。 .It nat help|? このコマンドは、使用可能な nat コマンドのまとめを表示します。 .It nat log Op yes|no このオプションは、NAT の様々な統計と情報がファイル .Pa /var/log/alias.log に記録されるようにします。 .It nat port Ar proto Ar targetIP Ns Xo .No : Ns Ar targetPort Ns .Oo .No - Ns Ar targetPort .Oc Ar aliasPort Ns .Oo .No - Ns Ar aliasPort .Oc Oo Ar remoteIP : Ns .Ar remotePort Ns .Oo .No - Ns Ar remotePort .Oc Oc .Xc このコマンドは、 .Ar aliasPort への入力の .Ar proto 接続を、 .Ar targetIP の .Ar targetPort へリダイレクトします。 .Ar proto は、 .Dq tcp または .Dq udp です。 .Pp ポート番号の範囲は、前述のように指定可能です。 範囲は同じ大きさであることが必要です。 .Pp .Ar remoteIP が指定された場合、この IP 番号から来たデータのみがリダイレクトされます。 .Ar remotePort は、 .Dq 0 .Pq すべての送信元ポート か、もう一方の範囲と同じ大きさのポート範囲です。 .Pp あなたのゲートウェイの後のマシンでインターネット電話等を実行したい場合に、 このオプションは有用です。 しかし、送信元ホストと宛先ポートにつき 内部マシン 1 台のみに接続可能という制限があります。 .It "nat proxy cmd" Ar arg Ns No ... このコマンドは、 .Nm に特定の接続に対する代理をさせ、 これらの接続を指定したサーバにリダイレクトします。 使用可能なコマンドについての詳細は .Xr libalias 3 の .Fn PacketAliasProxyRule の記述を参照してください。 .It nat same_ports yes|no 有効になると、 ネットワークアドレス変換エンジンが 出力パケットのポート番号を変更しようとすることを、 止めさせます。 RPC や LPD といった、 ウェルノウンポート (well known port) からの接続を要求する プロトコルをサポートするのに有用です。 .It nat target Op Ar address アドレスを指定したときは、そのアドレスをターゲットアドレスとして設定し、 指定しないときは、ターゲットアドレスの設定をクリアします。 ターゲットアドレスは、デフォルトでどのように受信パケットを NAT するかを指定するために libaliases が使用します。 ターゲットアドレスが設定されていないか、または .Dq default が与えられている場合、パケットは変更されないまま内部ネットワークに ルーティングされるようになります。 .Pp ターゲットアドレスを .Dq MYADDR に設定することもでき、その場合、libaliases はすべてのパケットを 内部ネットワークにリダイレクトします。 .It nat use_sockets yes|no 有効になると、 ネットワークアドレス変換エンジンにソケットを作成させ、 正しい ftp データ入力や IRC 接続を保証できるようになります。 .It nat unregistered_only yes|no 登録されていない送信元アドレスの出力パケットのみを、変更します。 RFC1918 によると、登録されていない送信元アドレスは 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 です。 .El .Pp これらのコマンドはソース配布物の .Pa README.alias ファイル中でも議論されています。 .Pp .It Op \&! Ns Xo .No bg Ar command .Xc 指定した .Ar command を、次の語を置換した後に、バックグラウンドで実行します: .Bl -tag -width PEER_ENDDISC .It Li AUTHNAME これは、ローカルの .Ar authname の値と置き換えられます。後述の .Dq set authname コマンドを参照してください。 .It Li COMPILATIONDATE これは、 .Nm がコンパイルされた日付と置き換えられます。 .It Li DNS0 No " & " Li DNS1 これは、それぞれプライマリ DNS サーバ、セカンダリ DNS サーバの IP アドレスに置き換えられます。IPCP によりネームサーバが ネゴシエーションされた場合、このマクロの値は変わります。 .It Li ENDDISC これは、ローカルの終点選択値と置き換えられます。 後述の .Dq set enddisc コマンドを参照してください。 .It Li HISADDR これは、相手の IP 番号と置き換えられます。 .It Li INTERFACE これは、使用中のインタフェース名と置き換えられます。 .It Li LABEL これは、最後に使用したラベル名と置き換えられます。 ラベルは、 .Nm のコマンドラインから .Dq load または .Dq dial のコマンドから指定するか、 .Pa ppp.secret ファイルから指定可能です。 .It Li MYADDR これは、ローカルインタフェースに割り当てられた IP 番号と置き換えられます。 .It Li PEER_ENDDISC これは、相手の終点選択番号と置き換えられます。 .It Li PROCESSID これは、現在のプロセス ID と置き換えられます。 .It Li VERSION これは、 .Nm ppp の現在のバージョン番号と置き換えられます。 .It Li USER これは、PAP もしくは CHAP で認証されたユーザ名と置き換えられます。 通常、この変数は -direct モードでのみ割り当てられます。 この値は、utmp ロギングが有効になっているかどうかに関わらず、利用可能です。 .El .Pp これらの置換は .Dq set proctitle コマンドによっても実行されます。 .Pp コマンド実行中に .Nm を停止させたい場合は、 .Dq shell コマンドを使用してください。 .It clear physical|ipcp Op current|overall|peak... .Dq physical もしくは .Dq ipcp 階層で、指定されたスループット値をクリアします。 .Dq modem を指定する場合にはコンテキストが与えられなければなりません (後述の .Dq link コマンドを参照)。 第 2 引数が与えられない場合、すべての値がクリアされます。 .It clone Ar name Ns Xo .Op \&, Ns Ar name Ns .No ... .Xc 指定されたリンクを複製し、引数の .Ar name に関連づけた新しいリンクを作成します。 このコマンドは、リンクが 1 つしかない場合 (この場合にはそのリンクがデフォルトになります) を除いて後述の .Dq link コマンドから使用する必要があります。 リンクは下記の .Dq remove コマンドで削除できます。 .Pp デフォルトのリンク名は .Dq deflink です。 .It close Op lcp|ccp Ns Op \&! 引数が与えられないと、適切なプロトコル層がダウンし、リンクが閉じられます。 .Dq lcp が指定されると LCP 層がダウンしますが、 .Nm をオフラインにはしません。例えば .Dq slirp のようなものを使用すれば、 .Dq term .Pq 後述 を使用して相手のマシンと会話できます。 .Dq ccp が指定されると適切な圧縮層が閉じられます。 .Dq \&! が使用されると、圧縮層はクローズ状態のままとなります。 使用されない場合には、STOPPED 状態へ再度入り、 相手が更なる CCP ネゴシエーションを開始するのを待ちます。 なにが起きようとも、ユーザを .Nm から切り離すことはありませんし、 .Nm を終了させることもありません。 後述の .Dq quit を参照してください。 .It delete Ns Xo .Op \&! .Ar dest .Xc このコマンドは指定した .Ar dest IP アドレスの経路を削除します。 .Ar dest に .Sq ALL が指定された場合、 現在のインタフェースの経路表の非直接エントリと .Sq スティッキー経路 がすべて削除されます。 .Ar dest に .Sq default が指定された場合、デフォルト経路が削除されます。 .Pp .Ar delete! コマンドが使用された場合 .Po 最後の .Dq \&! に注意 .Pc 、存在しない経路について .Nm は文句を言わなくなります。 .It dial|call Op Ar label Ns Xo .No ... .Xc このコマンドは、 .Dq load label の次に .Dq open を指定することと同等です。後方互換性のために提供されています。 .It down Op Ar lcp|ccp 適切な階層をダウンさせますが、 綺麗な方法ではなく、下位層が使用不能になったように見えます。 オープン状態にある有限状態機械でこのコマンドを使用することは、 丁寧ではないとされています。 引数が与えられない場合、すべてのリンクが閉じられます (コンテキストが与えられない場合にはすべてのリンクが終了されます)。 .Sq lcp が指定された場合、 .Em LCP 層は終了されますが、デバイスはオフラインに移行せず、 リンクも閉じられません。 .Sq ccp が指定された場合、 関連する圧縮層のみが終了されます。 .It help|? Op Ar command 利用可能なコマンドをリストします。 .Ar command を指定した場合、このコマンドの使用方法を表示します。 .It iface add Ns Xo .Op \&! .Ar addr Ns Op / Ns Ar bits .Op Ar peer .Xc .It iface add Ns Xo .Op \&! .Ar addr .Ar mask .Ar peer .Xc このコマンドは、 .Nm ppp が使用するインタフェースを制御します。 .Ar command は次のいずれかです: .Bl -tag -width XX .It iface add[!] Ar addr[[/bits| mask] peer] 指定された .Ar addr mask peer の組み合わせをインタフェースに追加します。 .Ar mask を指定する代りに、 .Ar /bits を使用可能です .Pq addr との間に空白を入れてはなりません 。指定したアドレスが既に存在する場合、 .Dq \&! を使用していない限りコマンドは失敗します - この場合、 以前のインタフェースアドレスエントリは新しいもので置き換えられ、 ネットマスクと相手のアドレスの変更を許します。 .Pp .Ar addr のみが指定されると、 .Ar bits はデフォルト値 .Dq 32 になり、 .Ar peer はデフォルト値 .Dq 255.255.255.255 になります。 このアドレス (ブロードキャストアドレス) は、 相手のアドレスとして複数存在することを .Nm が唯一許すものです。 .It iface clear .Nm が OPENED 状態または .Fl auto モードの場合にこのコマンドを使用すると、 IPCP ネゴシエートされたアドレス以外の全アドレスが インタフェースから削除されます。 .Nm が OPENED 状態でも .Fl auto モードでもない場合、全インタフェースアドレスが削除されます。 .Pp .It iface delete Ns Xo .Op \&! Ns .No |rm Ns Op \&! .Ar addr .Xc このコマンドは、指定した .Ar addr をインタフェースから削除します。 .Dq \&! が指定されると、現在そのアドレスがインタフェースに割り当てられていなくても、 エラーは報告されません (削除も行われません)。 .It iface show インタフェースの現在の状態と現在のアドレスを表示します。 .Dq ifconfig INTERFACE を実行することと、ほとんど同じです。 .It ident Op Ar text Ns No ... .Ar text を使用して、相手に対してリンクを自己証明 (identify) します。 .Ar text が空の場合、リンクの自己証明は無効化されます。 前述の .Ic bg コマンドに使用できる語はすべて使用可能です。 .Nm が相手に対して自己証明する場合についての詳細は、 .Ic sendident コマンドを参照してください。 .It iface help Op Ar sub-command このコマンドを .Ar sub-command 無しで起動すると、利用可能な .Dq iface サブコマンドと、おのおのの短い書式を表示します。 .Ar sub-command 付きで起動すると、指定した sub-command の書式のみを表示します。 .El .It Op data Ns Xo .No link .Ar name Ns Op , Ns Ar name Ns .No ... Ar command Op Ar args .Xc コマンドが影響を与えるリンクを特定したい場合に、このコマンドを 任意の他のコマンドのプレフィックスとして使うことができます。 これはマルチリンクモードで .Dq clone コマンドを使って複数のリンクを作成した後でのみ適用されます。 .Pp .Ar name は存在するリンク名を指定します。 .Ar name がコンマ区切りのリストの場合には、 .Ar command はそれぞれのリンクに対して実行されます。 .Ar name が .Dq * の場合には、 .Ar command はすべてのリンクに対して実行されます。 .It load Op Ar label Ns Xo .No ... .Xc .Pa ppp.conf ファイルから指定された .Dq label (複数指定可) をロードします。 .Dq label が指定されない場合、 .Dq default ラベルが仮定されます。 .Pp .Ar label セクションが .Dq set mode , .Dq open , .Dq dial のいずれのコマンドも使用しない場合、 .Nm はすぐに接続を確立しようとはしません。 .It open Op lcp|ccp|ipcp これは .Dq close の反対のコマンドです。 閉じられているリンクのうち、2 番目以降の .Ar demand-dial リンク以外、全リンクがすぐに立ち上がります - 2 番目以降の .Ar demand-dial リンクは、どのような .Dq set autoload コマンドが使用されたかに依存して立ち上ります。 .Pp LCP 層がすでにオープンされているときに .Dq lcp 引数を指定すると、LCP は再度ネゴシエートされます。 したがって、種々の LCP オプションを変更したあとで .Dq open lcp コマンドを用いることで、変更を有効にすることができます。 LCP が再度ネゴシエートされた後、 同意したあらゆる認証が実行されます。 .Pp .Dq ccp 引数が用いられると、関連する圧縮層がオープンされます。 すでにオープンされている場合には、再度ネゴシエートされます。 .Pp .Dq ipcp 引数が用いられると、リンクが通常通り起動されます。すでに IPCP が オープンされている場合には、IPCP は再度ネゴシエートされ、 ネットワークインタフェースが再設定されます。 .Pp このようにして PPP の状態機械を再オープンするのは、 おそらく良い手段ではありません。 接続相手が正しく振る舞わない可能性があるためです。 しかしながら、強制的に CCP もしくは VJ 辞書をリセットする手段としては 便利です。 .It passwd Ar pass すべての .Nm コマンドセットにアクセスするために要求されるパスワードを指定します。 このパスワードは診断ポート ( .Dq set server コマンド参照) に接続するときに必要です。 .Ar pass は .Dq set server コマンドラインで指定します。 .Ar command ログが有効でも、値 .Ar pass は記録されず、文字列 .Sq ******** が記録されます。 .It quit|bye Op all .Dq quit が制御接続もしくはコマンドファイルから実行されると、 ppp はすべての接続を閉じた後に終了します。その他の場合、 つまりユーザが診断ソケットから接続している場合には、 単にその接続が失われます。 .Pp .Ar all 引数が与えられた場合、 .Nm はコマンドがどこから発行されたかに関わらず、 すべての存在する接続を閉じて終了します。 .It remove|rm このコマンドは与えられたリンクを消去します。 これはマルチリンクモードでのみ有用です。リンクは消去する前に .Dv CLOSED 状態になっていなければなりません。 .It rename|mv Ar name このコマンドは与えられたリンクの名前を .Ar name に変更します。 .Ar name がすでに他のリンクで使用されている場合には、失敗します。 .Pp デフォルトリンクの名前は .Sq deflink です。これを .Sq modem , .Sq cuaa0 , .Sq USR のいずれかに変更すると、ログファイルの可読性が向上するかも知れません。 .It resolv Ar command このコマンドは .Nm が行なう .Xr resolv.conf 5 ファイルの操作を制御します。 .Nm の起動時に、以後の参照に備え、このファイルの内容をメモリに読み込み 保持します。 .Ar command は次のいずれかです。 .Bl -tag -width readonly .It Em readonly .Pa /etc/resolv.conf を読み込み専用とします。 .Dq dns が有効にされている場合、 .Nm は、接続相手との間でネームサーバのネゴシエーションを試みます。 ネゴシエーションの結果は、マクロ .Dv DNS0 , .Dv DNS1 を通じて利用可能となります。 このコマンドは、 .Dq resolv writable コマンドの反対です。 .It Em reload .Pa /etc/resolv.conf をメモリに再ロードします。 例えば、DHCP クライアントが .Pa /etc/resolv.conf を上書きする場合などに、このコマンドが必要になります。 .It Em restore .Pa /etc/resolv.conf を、起動時に読み込んだ元のバージョンか、もしくは .Dq resolv reload コマンドで最後に読み込んだ状態のものに戻します。 このコマンドは、 .Pa /etc/ppp/ppp.linkdown ファイルの中でうまく使えることがあります。 .It Em rewrite .Pa /etc/resolv.conf ファイルを書き換えます。 このコマンドは、 .Dq resolv readonly コマンドが既に使用されていても動作します。 他のコマンドが完了するまで .Pa /etc/resolv.conf の更新を遅らせたい場合に、 .Pa /etc/ppp/ppp.linkup の中でうまく使えることがあります。 .It Em writable .Dq dns が有効になっており、DNS の ネゴシエーションが成功した場合に、 .Nm が .Pa /etc/resolv.conf を更新できるようにします。 これは .Dq resolv readonly コマンドの反対です。 .El .It save このオプションは (まだ) 実装されていません。 .It sendident このコマンドは、 .Nm に対し、相手に対して自己証明するように指示します。 リンクは、LCP 状態以上であることが必要です。( .Ic ident コマンドによって) 自己証明の設定がなされていない場合、 .Ic sendident は失敗します。 .Pp 自己証明の設定がなされている場合、 設定拒否を送信または受信するときか、 ネゴシエーションが失敗したときか、 LCP が OPENED 状態になるときのいずれかのときに、 .Nm は自動的に自己証明します。 .Pp 受信した自己証明パケットは、LCP ログに記録し (詳細は .Ic set log を参照してください)、これに対する応答は行いません。 .It set Ns Xo .No Op up .Ar var value .Xc このオプションは次に示す変数の設定のために使用します: .Bl -tag -width XX .It set accmap Ar hex-value ACCMap は非同期制御文字マップ (Asyncronous Control Character Map) を 意味します。 これはいつも相手とネゴシエートされ、デフォルト値は 16 進数で 00000000 です。 このプロトコルが必要なのは、 (XON/XOFF などの) 特定の文字を終点間で受渡すことに依存するハードウェアを 使用する場合です。 .Pp XON/XOFF については .Dq set accmap 000a0000 を使用します。 .It set Op auth Ns Xo .No key Ar value .Xc クライアントモードでの PAP または CHAP のネゴシエーションで使用される 認証キー (もしくはパスワード) を、指定した値に設定します。 ダイヤルまたはログインスクリプトの .Sq \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\P シーケンスで使用するパスワードもまた指定します。 これにより実際のパスワードは記録されません。 .Ar command または .Ar chat のログが有効な場合、セキュリティの観点から、 .Ar value は .Sq ******** として記録されます。 .Pp .Ar value の最初の文字がエクスクラメーションマーク .Pq Dq \& の場合、 .Nm は残りの文字列を、 .Dq authname と .Dq authkey の値を確定するために実行すべきプログラムとして扱います。 .Pp 実行するプログラムを得るために .Ar value をパーズする際には、 .Dq \&! が二重 .Pq Dq \&!! である場合、単一のリテラル .Dq \&! として扱います、そうでない場合、 .Dq \&! を無視します。また、前述の .Dq !bg コマンドと同様に特殊な名前を置換します。 プログラムを実行すると、 .Nm はこのプログラムに対して次の 3 行の入力を与えます。 各行の末尾には改行文字が置かれます。 .Bl -bullet .It CHAP チャレンジで送られたホスト名。 .It CHAP チャレンジで送られたチャレンジ文字列。 .It ローカルに定義された .Dq authname 。 .El .Pp そして、出力として次の 2 行を待ちます。 .Bl -bullet .It CHAP 応答と共に送るための .Dq authname 。 .It .Dq authkey 。これは、チャレンジと要求 ID で暗号化したもの であり、この結果は CHAP 応答パケットに含めて送られます。 .El .Pp .Nm をこのように設定するとき、 ホストチャレンジは ASCII の数値もしくは文字であることを 想定しています。 指定されたチャレンジに対する適切な秘密情報を計算するために、 通常は、暗号化デバイスまたは Secure ID カードが必要です。 .It set authname Ar id クライアントモードでの PAP または CHAP のネゴシエーションで使用される 認証 ID を設定します。 .Pp CHAP を enable にして .Fl direct モードで利用すると、 .Ar id は初期認証チャレンジで用いられ、通常はローカルマシン名に設定されます。 .It set autoload Xo .Ar min-percent max-percent period .Xc これらの設定はマルチリンクモードでのみ適用され、 デフォルト値はそれぞれ 0, 0, 5 です。 1 つ以上の .Ar demand-dial .Po .Fl auto としても知られる .Pc モードのリンクが存在する場合、 .Nm が最初に tun デバイスからデータを読むときには最初のリンクのみが 有効になっています。 次の .Ar demand-dial リンクが開かれるのは、現在のバンドルの .Ar period 秒間のスループットがバンドルの総バンド幅の最低 .Ar max-percent パーセントであるときに限られます。 現在のバンドルの .Ar period 秒間のスループットがバンドルの総バンド幅の .Ar min-percent パーセント以下に減少したとき、最後のアクティブな リンクでない場合、 .Ar demand-dial リンクはダウンします。 .Pp バンドルのスループットは、 内向きおよび外向きのトラフィックの最大値として計測されます。 .Pp デフォルト値では .Ar demand-dial リンクは 1 つだけオープンされます。 .Pp デバイスによっては物理バンド幅を判定できないものがありますので、 .Dq set autoload が正しく動作するためには、(後述の) .Dq set bandwidth コマンドを使用する必要がある場合があります。 .It set bandwidth Ar value 本コマンドは、接続のバンド幅を、秒あたりのビット数で設定します。 .Ar value は 0 より大きいことが必要です。 現在、前述の .Dq set autoload コマンドのみが使用します。 .It set callback Ar option Ns No ... 引数が与えられない場合、コールバックは disable になります。 そうでない場合には、 .Nm は与えられた .Ar option でコールバックを要求します (もしくは .Ar direct モードでは受け付けます)。 クライアントモードでは、 .Ar option の否定応答が返されると、 .Nm は他に選択肢がなくなるまで別の .Ar option 要求を出します ( .Ar option のひとつとして .Dq none を指定していた場合を除きます)。 サーバモードでは、 .Nm は与えられるプロトコルをなんでも受け付けますが、 クライアントがいずれかひとつを要求する .Em 必要があります 。コールバックをオプションにしたいのであれば、オプションとして .Ar none を指定する必要があります。 .Pp .Ar option は下記の通りです (優先度順): .Pp .Bl -tag -width Ds .It auth コールバック応答側は、認証に基づいてコールバック番号を 決定することが求められます。 .Nm がコールバック応答側である場合、番号は .Pa /etc/ppp/ppp.secret 中の接続先エントリの 5 番目のフィールドで指定されます。 .It cbcp Microsoft コールバック制御プロトコルが用いられます。後述の .Dq set cbcp を参照してください。 .Pp クライアントモードで .Ar cbcp をネゴシエートしたい場合でありかつ、 CBCP ネゴシエーション時にサーバがコールバック無しを要求することを許したい場合、 コールバックオプションとして .Ar cbcp と .Ar none の両方を指定する必要があります。 .It E.164 *| Ns Xo .Ar number Ns Op , Ns Ar number Ns .No ... .Xc コールバック要求側が .Ar number を指定します。 .Nm がコールバック応答側である場合、 .Ar number は許可する番号をコンマで区切って並べたリスト、もしくは 任意の番号を許可するという意味の .Dq \&* とします。 .Nm がコールバック要求側である場合、1 つの数字だけを指定します。 .Pp .Dq \&* を用いる場合、このオプションはとても危険なものとなることに 注意してください。 というのは、悪意あるコールバック要求者が、最初の認証なしに 電話すべき番号として任意の (国際通話番号も可能です) 番号を 伝えることができるからです。 .It none 接続相手がコールバックをまったく望まない場合、 .Nm はそのことを受け入れ、接続を終了するのではなく コールバックせずに処理を続けます。 コールバックをオプションにしたいのであれば、 (1 個以上の他のコールバックオプションに加えて) これも指定する必要があります。 .El .Pp .It set cbcp Oo Xo .No *| Ns Ar number Ns No .Oo .No , Ns Ar number Ns .Oc .No ... .Op Ar delay Op Ar retry .Oc .Xc 引数が与えられない場合、CBCP (Microsofts CallBack Control Protocol) は disable です。言い換えれば .Dq set callback コマンドで CBCP を設定すると .Nm が CBCP フェーズでコールバック要求を行わなくなります。 そうでない場合、 .Nm は与えられた電話番号 .Ar number を使おうとします。 .Pp サーバモード .Pq Fl direct では、 .Dq \&* を使わない限り .Nm はクライアントがこれらの番号の 1 つを使うことを主張します。 .Dq \&* を使った場合には、クライアントが番号を指定するものと想定します。 .Pp クライアントモードでは .Nm は与えられた番号 (そのうち接続相手と合意可能なもの) を使用しようとします。 .Dq \&* が指定された場合には、 .Nm 接続相手が番号を指定するものと想定します。 .It set cd Oo .No off| Ns Ar seconds Ns Op \&! .Oc 通常、オープンしたデバイスのタイプにより、 .Nm はキャリアの存在をチェックします。 .Bl -tag -width XXX -offset XXX .It 端末デバイス ログインスクリプト完了後、1 秒間キャリアがチェックされます。 このパラメータが設定されていない場合、 デバイスがキャリアをサポートしていない (ほとんどの .Dq laplink ヌルモデムケーブルの場合がそうです) と .Nm は仮定し、この事実をログに取って、キャリアのチェックを止めます。 .Pp 仮想端末 (pty) は TIOCMGET ioctl をサポートしていないため、 デバイスが仮想端末であることを検知した場合、 端末デバイスはすべてのキャリア検出をオフにします。 .It ISDN (i4b) デバイス 6 秒間、1 秒ごとに 1 回キャリアの検出を行ないます。 6 秒後にキャリアが設定されない場合、接続の試みは失敗したと見なされ、 デバイスはクローズされます。 i4b デバイスの場合、キャリアが常に要求されます。 .It PPPoE (netgraph) デバイス 5 秒間、1 秒ごとに 1 回キャリアの検出を行ないます。 5 秒後にキャリアが設定されない場合、接続の試みは失敗したと見なされ、 デバイスはクローズされます。 PPPoE デバイスの場合、キャリアが常に要求されます。 .El .Pp 他のすべてのデバイスタイプはキャリアをサポートしていません。 デバイスをオープンするときにキャリアを設定すると警告が出ます。 .Pp モデムによっては、接続が確立してからキャリア信号線がアサートされるまで 1 秒以上かかるものがあります。この遅れを増やせない場合、 .Nm はそのデバイスがキャリアをアサートできないと見なすので、 .Nm はリンクのドロップを検出できないことになります。 .Pp .Dq set cd コマンドはデフォルトのキャリアの動作を上書きします。 .Ar seconds は、ダイヤルスクリプトが完了してからキャリアが利用可能か判断する前に、 .Nm が待つべき秒数の上限を指定します。 .Pp .Dq off が指定されると、 .Nm はデバイスのキャリアを確認しません。そうでない場合、 キャリアが検出されるか .Ar seconds の秒数が経過するまで、 .Nm はログインスクリプトへは進みません。このとき、 .Ar seconds の秒数が経過した時点で、 .Nm はデバイスがキャリアを設定できないと想定します。 .Pp 引数を与えない場合、キャリア設定はデフォルトの値に戻ります。 .Pp .Ar seconds の直後にエクスクラメーションマーク .Pq Dq \&! がある場合、 .Nm はキャリアを .Em 要求 します。 .Ar seconds 秒後にキャリアが検知されないと、リンクは切断されます。 .It set choked Op Ar timeout これは .Nm がすべての未送出パケットを破棄する前に 送出キュー詰まりを保持する秒数を設定します。 .Ar timeout が 0 以下もしくは .Ar timeout が指定されない場合、デフォルト値の .Em 120 秒 に設定されます。 .Pp 送出キュー詰まりは .Nm がローカルネットワークから特定の数の送出パケットを読み込んだが、 リンク失敗 (接続相手がビジーなど) のためにデータを送れない場合に 発生します。 .Nm はパケットを無限には読み込みません。代りに .Em 30 パケット (マルチリンクモードでは .Em 30 No + .Em nlinks No * .Em 2 パケット) まで読み込み、 .Ar timeout 秒経過するか、1 つ以上のパケットが送られるまで ネットワークインタフェースの読み込みを停止します。 .Pp .Ar timeout 秒が経過すると、すべての未送出パケットは破棄されます。 .It set ctsrts|crtscts on|off ハードウェアフロー制御をセットします。 デフォルトではハードウェアフロー制御は .Ar on です。 .It set deflate Ar out-winsize Op Ar in-winsize DEFLATE アルゴリズムの、 デフォルトの出力ウィンドウサイズと入力ウィンドウサイズを設定します。 .Ar out-winsize および .Ar in-winsize は、 .Em 8 から .Em 15 までの値をとる必要があります。 .Ar in-winsize が指定されると、 .Nm はこのウィンドウサイズの使用を強要し、相手が他の値を示しても受け入れません。 .It set dns Op Ar primary Op Ar secondary .Dq accept dns コマンドで使用される、DNS 上書きを設定します。 詳細については前述の .Dq accept コマンドの記述を参照してください。本コマンドは .Dq enable dns を使用して要求される IP 番号には影響を与えません。 .It set device|line Xo .Ar value Ns No ... .Xc .Nm が使用するデバイスを、指定された .Dq value に設定します。 .Pp すべての ISDN デバイスとシリアルデバイスの名前は .Pa /dev/ から始まることが仮定されています。 ISDN デバイスは通常 .Pa i4brbchX という名前であり、シリアルデバイスは通常 .Pa cuaXX という名前です。 .Pp .Dq value が .Pa /dev/ から始まらない場合、エクスクラメーションマーク .Pq Dq \&! から始めるか、 .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc の形式であるか、 .Ar host Ns No : Ns Ar port Ns Oo .No /tcp|udp .Oc の形式である必要があります。 .Pp エクスクラメーションマークで始まる場合、 デバイス名の残りはプログラム名として扱われ、 そのデバイスがオープンされるときにそのプログラムが実行されます。 標準入出力およびエラーは .Nm にフィードバックされ、それらが通常デバイスであるかのように読み書きされます。 .Pp .No PPPoE: Ns Ar iface Ns Xo .Op \&: Ns Ar provider Ns .Xc 指定が与えられる場合、 .Nm は、指定された .Ar iface インタフェースを使用して .Em PPP オーバイーサネット接続を作成しようとします。 この際 .Xr netgraph 4 を使用します。 .Xr netgraph 4 が使用不能の場合、 .Nm は .Xr kldload 2 を使用してロードしようとします。 これが失敗する場合には、OpenBSD で利用できる .Xr pppoe 8 のような外部プログラムを使用する必要があります。 与えられた .Ar provider は、PPPoE Discovery Initiation (PADI) パケット中で サービス名として渡されます。 provider が与えられないと、空の値が使用されます。 さらなる詳細は .Xr netgraph 4 と .Xr ng_pppoe 8 を参照してください。 .Pp .Ar host Ns No : Ns Ar port Ns Oo .No /tcp|udp .Oc 指定が与えられる場合、 .Nm は、指定された .Ar host の指定された .Ar port と接続しようとします。 .Dq /tcp または .Dq /udp のサフィックスがない場合、デフォルトは .Dq /tcp となります。 詳細は上述の .Em PPP オーバ TCP と PPP オーバ UDP の節を参照してください。 .Pp 複数の .Dq value を指定した場合、 .Nm は成功するか全デバイスについて実行し終るまで、順番にオープンを試みます。 .It set dial Ar chat-script 相手へダイヤルする際に使用されるチャットスクリプトを指定します。 後述の .Dq set login コマンドも参照してください。 チャットスクリプトのフォーマットの詳細については、 .Xr chat 8 と設定ファイルの例を参照してください。 次の特殊な .Sq value をチャットスクリプトに指定可能です: .Bd -unfilled -offset indent .It \\\\\\\\\\\\\\\\c .Sq 送信 文字列の最後の文字として使用した場合、 改行を追加してはならないことを意味します。 .It \\\\\\\\\\\\\\\\d チャットスクリプトがこのシーケンスに出会うと、2 秒待ちます。 .It \\\\\\\\\\\\\\\\p チャットスクリプトがこのシーケンスに出会うと、1/4 秒待ちます。 .It \\\\\\\\\\\\\\\\n 改行文字と置き換えられます。 .It \\\\\\\\\\\\\\\\r 復改文字と置き換えられます。 .It \\\\\\\\\\\\\\\\s 空白文字と置き換えられます。 .It \\\\\\\\\\\\\\\\t タブ文字と置き換えられます。 .It \\\\\\\\\\\\\\\\T 現在の電話番号と置き換えられます (後述の .Dq set phone 参照)。 .It \\\\\\\\\\\\\\\\P 現在の .Ar authkey 値と置き換えられます (前述の .Dq set authkey 参照)。 .It \\\\\\\\\\\\\\\\U 現在の .Ar authname 値と置き換えられます (前述の .Dq set authname 参照)。 .Ed .Pp 2 つのパーザがこれらのエスケープシーケンスを検査することに注意してください。 .Sq チャットのパーザ にエスケープ文字を見せるには、 .Sq コマンドパーザ からエスケープする必要があります。 つまり、2 つのエスケープを使用する必要があります。例えば次のようにします: .Bd -literal -offset indent set dial "... ATDT\\\\T CONNECT" .Ed .Pp チャットスクリプトから外部コマンドを実行することもできます。 そうするためには、 受信待ち文字列または送信文字列の最初の文字をエクスクラメーションマーク .Pq Dq \&! にします。 リテラルのエクスクラメーションマークが必要な場合には、二重 .Dq \&!! にすれば、単一のリテラル .Dq \&! として扱われます。 コマンドが実行されると、標準入力と標準出力がオープンデバイス ( .Dq set device 参照) に向けられ、標準エラー出力が .Nm に読まれて受信待ち文字列もしくは送信文字列に置き換えられます。 .Nm が対話モードで実行されている場合、ファイルデスクリプタ 3 は .Pa /dev/tty に接続されます。 .Pp 例えば (読み易さのために折り返しています); .Bd -literal -offset indent set login "TIMEOUT 5 \\"\\" \\"\\" login:--login: ppp \e word: ppp \\"!sh \\\\-c \\\\\\"echo \\\\-n label: >&2\\\\\\"\\" \e \\"!/bin/echo in\\" HELLO" .Ed .Pp は次のチャットシーケンスになります (ダイヤル前の .Sq set log local chat コマンドによる出力): .Bd -literal -offset indent Dial attempt 1 of 1 dial OK! Chat: Expecting: Chat: Sending: Chat: Expecting: login:--login: Chat: Wait for (5): login: Chat: Sending: ppp Chat: Expecting: word: Chat: Wait for (5): word: Chat: Sending: ppp Chat: Expecting: !sh \\-c "echo \\-n label: >&2" Chat: Exec: sh -c "echo -n label: >&2" Chat: Wait for (5): !sh \\-c "echo \\-n label: >&2" --> label: Chat: Exec: /bin/echo in Chat: Sending: Chat: Expecting: HELLO Chat: Wait for (5): HELLO login OK! .Ed .Pp 複数レベルのネストについて、 エスケープ文字の使用方法に (再度) 注意してください。 ここでは、4 つのパーザが動作してます。 1 番目は、オリジナルの行をパーズし、3 つの引数として読みます。 2 番目は、第 3 引数を 11 個の引数として読みます。 ここで、 .Dq \&- 記号がエスケープされていることが重要です。 そうでなければパーザは、 受信待ち-送信-受信待ちのシーケンスとして見てしまいます。 .Dq \&! 文字を見付けると、実行パーザは最初のコマンドを 3 つの引数として読み、 .Xr sh 1 自身が .Fl c 以降の引数を展開します。 我々は出力をモデムに送り返したいので、 1 番目の例では出力をファイルデスクリプタ 2 (stderr) にリダイレクトして .Nm 自身に送信および記録させ、 2 番目の例では単に stdout に出力して直接モデムに出力させます。 .Pp もちろん全体を、組み込みのものではなく外部の .Dq chat コマンドに実行させることが可能です。 良い代替方法については .Xr chat 8 を参照してください。 .Pp 実行される外部コマンドは、 .Dq !bg コマンドと同様に、特殊語の展開対象となります。 .It set enddisc Op label|IP|MAC|magic|psn value このコマンドは、ローカル終点の選択値を設定します。 LCP ネゴシエーションの前に設定された場合であり、 .Dq disable enddisc コマンドを使用していない場合、 .Nm は LCP 終点選択値オプションを使用して、相手に情報を送ります。 次の選択値を設定可能です。 .Bd -unfilled -offset indent .It Li label 現在のラベルが使用されます。 .It Li IP 当方のローカル IP 番号を使用します。 LCP は IPCP より前にネゴシエートされますので、 IPCP 層が後からこの値を変更することが可能です。 その場合、手動でリセットしない限り、終点の選択値は古い値のままとなります。 .It Li MAC 前述の .Ar IP オプションに似ていますが、 ローカル IP 番号に関係する MAC アドレスが使用される点が異なります。 ローカル IP 番号がどのイーサネットインタフェースにも存在しない場合、 本コマンドは失敗します。 .Pp ローカル IP 番号のデフォルトは、 マシンホスト名がなんであれ、その名前になりますので、通常 .Dq set enddisc mac を .Dq set ifaddr コマンドよりも先に実行します。 .It Li magic 20 桁の乱数が使用されます。 マジックナンバを使用するときには注意が必要です。 .Nm の再開や別の .Nm を使ったリンク作成においては、別のマジックナンバを使用するため、 同じバンドルに属すとは相手に認識されないのです。 このため、 .Fl direct 接続では使えません。 .It Li psn Ar value 指定された .Ar value が使用されます。 .Ar value は、絶対的な公衆スイッチネットワーク番号の先頭に 国コードを付けたものであるべきです。 .Ed .Pp 引数が与えられない場合、終点の選択値はリセットされます。 .It set escape Ar value... このオプションは前述の .Dq set accmap オプションに似ています。 リンクを経由する時に .Sq エスケープ される文字を指定するために使用します。 .It set filter dial|alive|in|out Ar rule-no Xo .No permit|deny|clear| Ns Ar rule-no .Op \&! .Oo Op host .Ar src_addr Ns Op / Ns Ar width .Op Ar dst_addr Ns Op / Ns Ar width .Oc Oo tcp|udp|ospf|igmp|icmp Op src lt|eq|gt Ar port .Op dst lt|eq|gt Ar port .Op estab .Op syn .Op finrst .Op timeout Ar secs .Oc .Xc .Nm は 4 つのフィルタセットをサポートします。 .Em alive フィルタは接続を活性状態に保つパケットを指定します - アイドルタイマをリセットします。 .Em dial フィルタは、 .Fl auto モード時に .Nm にダイヤルさせるパケットを指定します。 .Em in フィルタは、マシンに入力可能なパケットを指定します。 .Em out フィルタは、マシンから出力可能なパケットを指定します。 .Pp フィルタリングが行われるのは、 出力パケットでは NAT エンジンによる IP 変更前であり、 入力パケットでは NAT エンジンによる IP 変更後です。 デフォルトでは、すべての空のフィルタセットは全パケットの通過を許可します。 ルールは .Ar rule-no に従って順番に処理されます (ルール番号を .Ar action に指定してスキップする場合を除きます)。 各セットに対し 40 までのルールを指定可能です。 指定されるセットにおけるどのルールにもマッチしないパケットは破棄されます。 .Em in と .Em out のフィルタでは、パケットをドロップすることを意味します。 .Em alive フィルタでは、アイドルタイマをリセットしないことを意味します (これは .Ar in Ns No / Ns Ar out フィルタが .Dq timeout 付きである場合でもです)。 .Em dial フィルタではダイヤルさせることにはならないことを意味します。 ダイヤルを引き起こさないパケットは、 キューされるのではなく、捨てられることに注意してください。 上述の .Sx パケットのフィルタリング の節を参照してください。 .It set hangup Ar chat-script デバイスを閉じる前にこれをリセットする時に使用する、 チャットスクリプトを指定します。 通常は不要であるべきですが、 閉じる時に自己を正しくリセットできないデバイスに対して使用できます。 .It set help|? Op Ar command 利用可能な set コマンドのまとめを表示するか、 .Ar command が指定されると、コマンドの使用方法を表示します。 .It set ifaddr Oo Ar myaddr Ns .Op / Ns Ar \&nn .Oo Ar hisaddr Ns Op / Ns Ar \&nn .Oo Ar netmask .Op Ar triggeraddr .Oc Oc .Oc このコマンドは、IPCP ネゴシエーションの間使用される IP アドレスを指定します。 アドレスのフォーマットは次の通りです。 .Pp .Dl a.b.c.d/nn .Pp ここで .Dq a.b.c.d は希望する IP アドレスであり、 .Ar nn はこのうち何ビットが有効であるかを示します。 .No / Ns Ar nn が省略された場合、デフォルトの .Dq /32 になります。 ただし IP アドレスが 0.0.0.0 である場合には、マスクのデフォルトは .Dq /0 です。 .Pp 相手に動的な IP 番号を割り当てたい場合、 .Ar hisaddr に IP 番号の範囲として .Bd -literal -offset indent .Ar \&IP Ns Oo \&- Ns Ar \&IP Ns Xo .Oc Oo , Ns Ar \&IP Ns .Op \&- Ns Ar \&IP Ns .Oc No ... .Xc .Ed .Pp のフォーマットを指定できます。例えば: .Pp .Dl set ifaddr 10.0.0.1 10.0.1.2-10.0.1.10,10.0.1.20 .Pp は .Dq 10.0.0.1 のみをローカル IP 番号としてネゴシエートしますが、 指定された 10 個の IP 番号から 相手に割り当てを行います。 相手がこれらの番号のうちの 1 つを要求し、この番号が未使用な場合には、 .Nm は相手の要求を認めます。 相手がリンクを再確立して前回割り当てていた IP 番号を使用したい場合に有用です (既存の TCP と UDP の接続を保存します)。 .Pp 相手が要求した IP 番号が範囲外もしくは使用中の場合、 .Nm は範囲内の未使用 IP 番号をランダムに指示します。 .Pp .Ar triggeraddr が指定された場合、この値が .Ar myaddr の代りに IPCP ネゴシエートで使用されます。 ただし、 .Ar myaddr の範囲のアドレスのみ受け入れられます。 これが有用なのは、相手が .Dq 0.0.0.0 を要求しない限り IP アドレスを割り当てようとしない .Dv PPP 実装とネゴシエートするときです。 .Pp .Fl auto モードでは設定ファイルの .Dq set ifaddr 行を読んだ直後に .Nm がインタフェースを構成することに注意してください。 他のモードではこれらの値は IPCP ネゴシエーションで使用され、 IPCP 層がアップするまでこれらのインタフェースは構成されません。 .Pp .Po PAP か CHAP が .Dq enable である場合 .Pc クライアントが自己証明をした後では、 .Ar HISADDR 引数は .Pa ppp.secret ファイルの第 3 引数で上書きされうることに注意してください。 .Sx 内向き接続の認証 の節を参照してください。 .Pp どの場合でも、インタフェースが既に構成されている場合には、 .Nm はインタフェースの IP 番号を保存して、 既にバインドされているソケットが正しいままであるようにします。 .It set ifqueue Ar packets どのリンクへもデータが送信できない状態のとき、 .Nm がトンネルインタフェースから読み込むパケット数の最大値を 指定します。 .Nm ppp が利用できるリンクの束よりもトンネルインタフェースがはるかに 高速となりそうな場合に、送出データのフロー制御のために このキューの制限は必要になります。 .Ar packets にリンクの数よりも小さな値を設定した場合、 その設定に関わらず .Nm はリンクの数までは読み込みます。これにより、遅延の問題が回避されます。 .Pp .Ar packets のデフォルトの値は .Dq 30 です。 .It set ccpretry|ccpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set chapretry|chapretries Oo Ar timeout .Op Ar reqtries .Oc .It set ipcpretry|ipcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set lcpretry|lcpretries Oo Ar timeout .Op Ar reqtries Op Ar trmtries .Oc .It set papretry|papretries Oo Ar timeout .Op Ar reqtries .Oc これらのコマンドは .Nm が有限状態機械 (Finite State Machine; FSM) に要求パケットを送る前に 待つ秒数を指定します。 .Ar timeout のデフォルトは、全 FSM において 3 秒です (ほとんどの場合十分です)。 .Pp .Ar reqtries を指定すると、 相手から応答を受信しなくても諦めるまでに設定要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は、CCP, LCP, IPCP の場合 5 回であり、 PAP と CHAP の場合 3 回です。 .Pp .Ar trmtries を指定すると、 相手の応答を待つことを諦めるまでに終了要求を作成する回数を、 .Nm に指示します。 デフォルトの試行回数は 3 回です。 認証プロトコルは終了されませんので、 PAP や CHAP に対して指定することは不正です。 .Pp 合意できない相手とのネゴシエーションを避けるために、 どのようなネゴシエーションセッションであっても諦めたり層をクローズする前には、 .Nm は最大で .Ar reqtries の設定値の 3 倍までのみ送信します。 .It set log Xo .Op local .Op +|- Ns .Ar value Ns No ... .Xc このコマンドにより現在のログレベルを修正できます。 詳細はログ機能の節を参照してください。 .It set login chat-script この .Ar chat-script はダイヤルスクリプトを補います。 もし両方が指定された場合、ダイヤルスクリプトの後で、 ログインスクリプトが実行されます。 ダイヤルスクリプト中で使用可能なエスケープシーケンスはここでも使用可能です。 .It set logout Ar chat-script このコマンドは、 ハングアップスクリプトが呼ばれる前にログアウトのために使用される、 チャットスクリプトを指定します。 通常では必要ないでしょう。 .It set lqrperiod Ar frequency このコマンドは、 .Em LQR または .Em ECHO LQR のパケットが送信される頻度 .Ar frequency を秒で指定します。デフォルトは 30 秒です。 相手に LQR 要求を送りたい場合には、 .Dq enable lqr コマンドもまた使用する必要があります。 .It set mode Ar interactive|auto|ddial|background 指定したリンクにおけるモード .Sq mode を変更できます。通常マルチリンクモードでのみ有用ですが、 単一リンクモードでも使用可能です。 .Pp .Sq direct または .Sq dedicated のリンクを変更することはできません。 .Pp 注: コマンド .Dq set mode auto を発行し、ネットワークアドレス変換が enable にされていた場合、後で .Dq enable iface-alias を行うと便利です。 .Nm が必要なアドレス変換を行うようにすることにより、 相手が当方に新しい (動的な) IP アドレスを割り当てたとしても、 リンクがアップすると接続のトリガとなるプロセスが接続できるようにします。 .It set mrru Op Ar value このオプションを設定すると、 マルチリンクプロトコルまたは MP としても知られる、 マルチリンク PPP ネゴシエーションを有効にします。 MRRU (Maximum Reconstructed Receive Unit) の値にはデフォルトはありません。 引数を指定しないと、マルチリンクモードは無効にされます。 .It set mru Op Ar value デフォルトの MRU (最大受信単位; Maximum Receive Unit) は 1500 です。 この値を増加させた場合、相手は MTU を増加させても *かまいません*。 デフォルトの MRU より減らすことは意味がありません。 なぜなら、 .Em PPP プロトコルでは少なくとも 1500 オクテットのパケットを 受信できなければ *ならない* からです。 引数が指定されないと、1500 が仮定されます。 .It set mtu Op Ar value デフォルトの MTU は 1500 です。 ネゴシエーション時に、(296 バイト未満でなければ) 相手が望むいかなる MRU および MRRU も受け付け可能です。 MTU が設定されると、 .Nm は .Ar value よりも小さい MRU/MRRU の値を受け付けなくなります。 ネゴシエーションが完了すると、 相手がより大きな MRU/MRRU を要求していたとしても、 インタフェースに対して MTU が割り当てられます。 当方のパケットサイズを制限するのに有用です (よりよくバンド幅を共有できるようになりますが、 ヘッダデータが増えるというコストがかかります)。 .Pp .Ar value を指定しないと、1500 または相手が要求した値が使用されます。 .It set nbns Op Ar x.x.x.x Op Ar y.y.y.y このオプションは、相手の要求によって返される Microsoft NetBIOS ネームサーバの値を設定します。 値を指定しないと、 .Nm はそのような要求を拒否するようになります。 .It set openmode active|passive Op Ar delay デフォルトでは、 .Ar openmode は常に、1 秒の .Ar delay をもって .Ar active となります。 この場合、 .Nm は回線が設定されてから 1 秒が経過したなら いつでも LCP/IPCP/CCP のネゴシエーションを開始します。 相手がネゴシエーションを開始するのを待ちたい場合は、値 .Dq passive を使用します。 直ちにもしくは 1 秒以上待ってからネゴシエーションを開始したい場合、 .Ar delay を秒単位で指定します。 .It set parity odd|even|none|mark 回線のパリティを設定できます。デフォルト値は .Ar none です。 .It set phone Ar telno Ns Xo .Oo \&| Ns Ar backupnumber .Oc Ns ... Ns Oo : Ns Ar nextnumber .Oc Ns ... .Xc ダイヤルおよびログインのチャットスクリプトで使用される \\\\T 文字列が 置き換えられる電話番号を指定できます。 複数の電話番号をパイプ .Pq Dq \&| もしくはコロン .Pq Dq \&: で区切って指定可能です。 .Pp パイプの後の番号がダイヤルされるのは、 直前の番号へのダイヤルもしくはログインのスクリプトが失敗した場合のみです。 回線の切断の理由にかかわらず、 コロンで区切られた番号は順番に試行されます。 .Pp 複数の番号を指定した場合、接続が確立するまで .Nm はこのルールに基づいてダイヤルします。 再試行の最大値は、後述の .Dq set redial で指定します。 .Fl background モードでは各番号は最大 1 回試行されます。 .It set Op proc Ns Xo .No title Op Ar value .Xc .Xr ps 1 が表示する現在のプロセスタイトルを、 .Ar value に従って変更します。 .Ar value が指定されないと、元のプロセスタイトルが回復されます。 シェルコマンドが行うすべての語置換 (前述の .Dq bg コマンドを参照してください) は、ここでも行われます。 .Pp プロセスタイトル中に USER が必要な場合、 .Dq set proctitle コマンドは .Pa ppp.linkup 中に登場する必要があることに注意してください。 .Pa ppp.conf が実行されているときには、分からないからです。 .It set radius Op Ar config-file このコマンドは RADIUS サポートを (組み込まれていれば) 有効にします。 .Ar config-file は、 .Xr radius.conf 5 に記述されている radius クライアント設定ファイルを参照します。 PAP または CHAP が .Dq enable にされている場合、 .Nm は .Em \&N Ns No etwork .Em \&A Ns No ccess .Em \&S Ns No erver として振舞い、設定されている RADIUS サーバを使用して認証し、 .Pa ppp.secret ファイルやパスワードデータベースによる認証は行いません。 .Pp PAP と CHAP のいずれも有効になっていない場合、 .Dq set radius は効果がありません。 .Pp .Nm は、RADIUS 応答中の、次の属性を使用します: .Bl -tag -width XXX -offset XXX .It RAD_FRAMED_IP_ADDRESS 相手の IP アドレスは指定された値に設定されました。 .It RAD_FRAMED_IP_NETMASK tun インタフェースのネットマスクは指定された値に設定されました。 .It RAD_FRAMED_MTU 指定された MTU が LCP ネゴシエーションで合意された相手の MRU より 小さい場合であり、 *かつ* 設定された MTU のいずれよりも小さい場合 ( .Dq set mru コマンド参照)、 tun インタフェースの MTU は指定した値に設定されます。 .It RAD_FRAMED_COMPRESSION 受信した圧縮タイプが .Dq 1 の場合、 .Dq disable vj 設定コマンドが指定されていたとしても、IPCP ネゴシエーションにおいて .Nm は VJ 圧縮を要求します。 .It RAD_FRAMED_ROUTE 受信した文字列は、 .Ar dest Ns Op / Ns Ar bits .Ar gw .Op Ar metrics という書式であると期待します。 指定した metrics は無視されます。 .Dv MYADDR と .Dv HISADDR は、 .Ar dest と .Ar gw の正当な値として理解されます。 .Dq default を .Ar dest に使用可能であり、デフォルト経路を指定します。 .Dq 0.0.0.0 は、 .Ar dest に対する .Dq default と同じであると解釈され、 .Ar gw に対する .Dv HISADDR と同じであると解釈されます。 .Pp 例えば、戻り値 .Dq 1.2.3.4/24 0.0.0.0 1 2 -1 3 400 は 1.2.3.0/24 ネットワークへは .Dv HISADDR を介するという経路表エントリになり、 戻り値 .Dq 0.0.0.0 0.0.0.0 または .Dq default HISADDR は .Dv HISADDR 行きのデフォルト経路になります。 .Pp すべての RADIUS の経路は、 すべてのスティッキーな経路が適用された後で適用されます。 これにより、RADIUS の経路が、設定済みの経路に優先します。 これは、 .Dv MYADDR または .Dv HISADDR というキーワードを含まない RADIUS の経路にもあてはまります。 .Pp .El RADIUS サーバから受信した値は、 .Dq show bundle を使用して見られます。 .It set reconnect Ar timeout ntries (CD の喪失もしくは LQR の失敗により) 予想外の回線切断となった場合、 指定した .Ar timeout の後に接続が再確立されます。 回線は最大 .Ar ntries 回、再接続されます。 .Ar ntries のデフォルトは 0 です。 .Ar timeout に .Ar random を指定すると、1 から 30 秒の間の任意時間の停止となります。 .It set recvpipe Op Ar value ルーティングテーブルの RECVPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set redial Ar secs Ns Xo .Oo + Ns Ar inc Ns .Op - Ns Ar max Ns .Oc Op . Ns Ar next .Op Ar attempts .Xc .Nm に .Ar attempts 回のリダイヤルを指示できます。 1 より大きな数を指定した場合 (前述の .Ar set phone 参照)、 各番号にダイヤルする前に、 .Ar next だけ停止します。 最初の番号に戻ってダイヤル開始する前に .Ar secs だけ停止します。リテラル値 .Dq Li random を .Ar secs および .Ar next のところで使用でき、1 から 30 秒の間の任意時間の停止となります。 .Pp .Ar inc が指定されると、 .Nm が新規番号を試すたびに、この値が .Ar secs に加えられます。 .Ar secs が増加されるのは、最大 .Ar max 回だけです。 .Ar max のデフォルト値は 10 です。 .Ar attempts が経過した後でも .Ar secs の遅延は効果があるので、 すぐに手動でダイヤルしても何も起ってないように見えるかもしれません。 すぐにダイヤルする必要がある場合、 .Dq \&! を .Dq open キーワードの直後に付けます。 更なる詳細については、前述の .Dq open の記述を参照してください。 .It set sendpipe Op Ar value ルーティングテーブルの SENDPIPE 値を設定します。 最適な値は、MTU 値を 2 倍した値を丁度越える値です。 .Ar value が指定されないまたは 0 の場合、デフォルトの、カーネルが制御する値を使用します。 .It set server|socket Ar TcpPort|LocalName|none password Op Ar mask このコマンドは .Nm に指定したソケットもしくは .Sq 診断ポート にてコマンド接続の入力を listen するように指示します。 .Pp 語 .Ar none は .Nm に既に存在するソケットを閉じさせます。 .Pp ローカルドメインソケットを指定したい場合、 .Ar LocalName に絶対ファイル名を指定します。そうしないと、TCP ポートの名前もしくは番号 であると解釈されます。 ローカルドメインソケットに使用される 8 進 umask を指定する必要があります。 umask の詳細については .Xr umask 2 を参照してください。TCP ポート名がどのように変換されるかについては .Xr services 5 を参照してください。 .Pp このソケットにクライアントが接続するときに使用されねばならないパスワードも 指定可能です ( 前述の .Dq passwd コマンドを使用します)。 パスワードが空文字列として指定される場合、 クライアントが接続するときにパスワードを必要とされません。 .Pp ローカルドメインソケットが指定される場合、ソケット名中の最初の .Dq %d シーケンスは現在のインタフェースユニット番号で置換されます。 複数接続のために同一のプロファイルを使用したい場合に便利です。 .Pp 同様の方法で TCP ソケットの前に .Dq + 文字を付けることができます。 この場合、現在のインタフェースユニット番号が、ポート番号に加算されます。 .Pp .Nm をサーバソケットと共に使用する場合、通信機構として .Xr pppctl 8 コマンドを使用することが好ましいです。 現在 .Xr telnet 1 も使用可能ですが、将来リンク暗号化が実装されるかもしれませんので、 .Xr telnet 1 に依存しないようにしてください。 .It set speed Ar value シリアルデバイスの速度を指定します。 速度指定が .Dq sync の場合、 .Nm はデバイスを同期デバイスとして扱います。 .Pp デバイスタイプによっては、 同期または非同期のいずれかであることが分るものがあります。 これらのデバイスでは、不正な設定を上書きして、 この結果に対する警告を記録します。 .It set stopped Op Ar LCPseconds Op Ar CCPseconds このオプションが指定されると、 指定した FSM (有限状態機械; Finite State Machine) が停止状態になってから .Dq seconds で指定した秒数だけ停止したのち、 .Nm はタイムアウトします。 このオプションは、 相手が終了要求を送り我々が終了確認応答を送ったにもかかわらず 実際には接続を閉じない場合に、有用かもしれません。また、 .Dq set openmode passive を使用した場合に相手が指定時間内に Configure Request を送らないことを タイムアウト検出する場合には、便利かもしれません。 .Dq set log +lcp +ccp を使用すると、 .Nm は適切な状態遷移を記録します。 .Pp デフォルト値は 0 であり、 停止状態による .Nm のタイムアウトは発生しません。 .Pp この値は openmode の遅延 (上述の .Dq set openmode 参照) より小さくなってはなりません。 .It set timeout Ar idleseconds Op Ar mintimeout このコマンドはアイドルタイマの値を指定します。 更なる詳細については .Sx アイドルタイマの設定 というタイトルの節を参照してください。 .Pp .Ar mintimeout が指定された場合、 最短でも指定された秒数だけリンクがアップしていないと、 .Nm はアイドルアウトしません。 .It set urgent Xo .Op tcp|udp|none .Oo Op +|- Ns .Ar port .Oc No ... .Xc このコマンドは、データ転送時に .Nm が優先するポートを制御します。 デフォルトの優先 TCP ポートは、ポート 21 (ftp control), 22 (ssh), 23 (telnet), 513 (login), 514 (shell), 543 (klogin), 544 (kshell) です。 優先 UDP ポートは、デフォルトではありません。 詳細は .Xr services 5 を参照してください。 .Pp .Dq tcp も .Dq udp も指定しないと、 .Dq tcp が仮定されます。 .Pp .Ar port を指定しないと、優先ポートリストがクリアされます ( .Dq tcp または .Dq udp を指定すると、そのリストのみがクリアされます)。 最初の .Ar port 引数にプラス .Pq Dq \&+ またはマイナス .Pq Dq \&- のプレフィックスを付けた場合、現在のリストが修正されますが、 そうでない場合には、再割り当てされます。 プラスのプレフィックス付きまたはプレフィックス無しの .Ar port はリストに追加され、マイナスのプレフィックス付きの .Ar port はリストから削除されます。 .Pp .Dq none が指定された場合、優先ポートリスト全体が無効になり、 .Dv IPTOS_LOWDELAY パケットも特別扱いされなくなります。 .It set vj slotcomp on|off このコマンドは .Nm に VJ スロット圧縮をネゴシエートするか否かを指示します。 デフォルトではスロット圧縮は .Ar on です。 .It set vj slots Ar nslots このコマンドは最初の .Ar slots 番号を指定します。 .Nm は VJ 圧縮が enable されている時には、 これを使用して相手とネゴシエートします (前述の .Sq enable コマンドを参照してください)。 デフォルト値は 16 です。 .Ar nslots は .Ar 4 以上 .Ar 16 以下の値です。 .El .Pp .It shell|! Op Ar command .Ar command が指定されない場合、 .Dv SHELL 環境変数で指定されるシェルが起動されます。 そうでなければ指定された .Ar command が実行されます。 語の置換は、前述の .Dq !bg コマンドと同様の方法で行われます。 .Pp 文字 ! を使用する場合、コマンドとの間に空白が必要です。 このコマンドはフォアグラウンドで実行されることに注意してください - .Nm はプロセスが終了するまでは実行を続けません。 バックグラウンドでコマンド処理を行いたい場合には、 .Dv bg コマンドを使用してください。 .It show Ar var このコマンドを使用して、次の内容を確認できます: .Bl -tag -width 20 .It show bundle 現在のバンドル設定を表示します。 .It show ccp 現在の CCP 圧縮統計を表示します。 .It show compress 現在の VJ 圧縮統計を表示します。 .It show escape 現在のエスケープ文字を表示します。 .It show filter Op Ar name 指定したフィルタの現在のルールをリストします。 .Ar name を指定しないと、全フィルタが表示されます。 .It show hdlc 現在の HDLC 統計を表示します。 .It show help|? 利用可能な show コマンドのまとめを表示します。 .It show iface 現在のインタフェース情報 .Po Dq iface show と同じです .Pc を表示します。 .It show ipcp 現在の IPCP 統計を表示します。 .It show layers 現在使用中のプロトコル層を表示します。 .It show lcp 現在の LCP 統計を表示します。 .It show Op data Ns Xo .No link .Xc 高レベルリンク情報を表示します。 .It show links 利用可能な論理リンクのリストを表示します。 .It show log 現在のログ値を表示します。 .It show mem 現在のメモリ統計を表示します。 .It show physical 現在の下位レベルリンク情報を表示します。 .It show mp マルチリンク情報を表示します。 .It show proto 現在のプロトコルの総計を表示します。 .It show route 現在の経路表を表示します。 .It show stopped 現在の stopped タイムアウト値を表示します。 .It show timer アクティブアラームタイマを表示します。 .It show version .Nm の現在のバージョン番号を表示します。 .El .Pp .It term 端末モードに移行します。 キーボードからタイプした文字はデバイスに送られます。 デバイスから読んだ文字はスクリーンに表示されます。 .Nm の相手が認識された時には、 .Nm は自動的にパケットモードを有効にし、コマンドモードに戻ります。 .El .Pp .Sh 更に詳細について .Bl -bullet .It 設定ファイルの例を読んでください。良い情報源です。 .It 何が利用できるかについては、 .Dq help , .Dq nat ? , .Dq enable ? , .Dq set ? , .Dq show ? コマンドを使って、オンライン情報を取得してください。 .It 次の URL に有用な情報があります: .Bl -bullet -compact .It http://www.FreeBSD.org/FAQ/userppp.html .It http://www.FreeBSD.org/handbook/userppp.html .El .Pp .El .Pp .Sh 関連ファイル .Nm は、4 つのファイル .Pa ppp.conf , .Pa ppp.linkup , .Pa ppp.linkdown , .Pa ppp.secret を参照します。 これらのファイルは .Pa /etc/ppp に置かれます。 .Bl -tag -width XX .It Pa /etc/ppp/ppp.conf システムのデフォルト設定ファイル。 .It Pa /etc/ppp/ppp.secret 各システム用の認証設定ファイル。 .It Pa /etc/ppp/ppp.linkup .Nm がネットワークレベルの接続を確立した時に実行されるファイル。 .It Pa /etc/ppp/ppp.linkdown .Nm がネットワークレベルの接続を閉じる時にチェックするファイル。 .It Pa /var/log/ppp.log ログとデバッグ情報のファイル。このファイル名は .Pa /etc/syslogd.conf にて指定されます。詳細は .Xr syslog.conf 5 を参照してください。 .It Pa /var/spool/lock/LCK..* tty ポートをロックするためのファイル。詳細は .Xr uucplock 3 を参照してください。 .It Pa /var/run/tunN.pid tunN デバイスに接続されている .Nm プログラムのプロセス ID (pid) 。 ここで .Sq N はデバイスの番号です。 .It Pa /var/run/ttyXX.if このポートで使われている tun インタフェース。 このファイルも .Fl background , .Fl auto , .Fl ddial のいずれかのモードの時のみ作成されます。 .It Pa /etc/services サービス名でポート番号が指定されている場合に、ポート番号を取得します。 .It Pa /var/run/ppp-authname-class-value マルチリンクモードでは、 相手の認証名称 .Pq Sq authname と相手の終点選択クラス .Pq Sq class と相手の終点選択値 .Pq Sq value を使用して、ローカルドメインソケットが生成されます。 終点選択値はバイナリ値であってもかまわないため、 実際のファイル名を判定するために 16 進数に変換されます。 .Pp このソケットは、別の .Nm のインスタンスとリンクを受け渡しを行うために使用します。 .El .Pp .Sh 関連項目 .Xr at 1 , .Xr ftp 1 , .Xr gzip 1 , .Xr hostname 1 , .Xr isdnd 8 , .Xr login 1 , .Xr tcpdump 1 , .Xr telnet 1 , .Xr kldload 2 , .Xr libalias 3 , .Xr syslog 3 , .Xr uucplock 3 , .Xr netgraph 4 , .Xr crontab 5 , .Xr group 5 , .Xr passwd 5 , .Xr radius.conf 5 , .Xr resolv.conf 5 , .Xr syslog.conf 5 , .Xr adduser 8 , .Xr chat 8 , .Xr getty 8 , .Xr inetd 8 , .Xr init 8 , .Xr ng_pppoe 8 , .Xr named 8 , .Xr ping 8 , .Xr pppctl 8 , .Xr pppd 8 , .Xr pppoe 8 , .Xr route 8 , .Xr sshd 8 , .Xr syslogd 8 , .Xr traceroute 8 , .Xr vipw 8 .Sh 歴史 元のプログラムは .An Toshiharu OHNO Aq tony-o@iij.ad.jp が作成し、 .Fx 2.0.5 に .An Atsushi Murai Aq amurai@spec.co.jp が提出しました。 .Pp 1997 年中に .An Brian Somers Aq brian@Awfulhak.org が本格的な修正をし、 11 月に .Ox に移植されました (2.2-RELEASE の直後です)。 .Pp 1998 年初頭にマルチリンク ppp サポートが追加されたときに、 ほとんどのコードを .An Brian Somers が書き直しました。 diff --git a/ja_JP.eucJP/man/man8/rtadvd.8 b/ja_JP.eucJP/man/man8/rtadvd.8 index e287006ee1..e05631868f 100644 --- a/ja_JP.eucJP/man/man8/rtadvd.8 +++ b/ja_JP.eucJP/man/man8/rtadvd.8 @@ -1,161 +1,162 @@ -.\" %KAME: rtadvd.8,v 1.8 2000/05/22 22:12:11 itojun Exp % +.\" $KAME: rtadvd.8,v 1.9 2000/05/27 13:37:01 jinmei Exp $ .\" .\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. Neither the name of the project nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/rtadvd/rtadvd.8,v 1.3.2.1 2000/07/15 07:36:57 kris Exp % +.\" %FreeBSD: src/usr.sbin/rtadvd/rtadvd.8,v 1.3.2.2 2000/10/30 17:39:46 ume Exp % .\" jpman %Id: rtadvd.8,v 1.3 2000/05/01 16:04:12 yt-kage Stab % .\" .Dd May 17, 1998 .Dt RTADVD 8 .Os .Sh 名称 .Nm rtadvd .Nd ルータ通知デーモン .Sh 書式 .Nm .Op Fl c Ar configfile -.Op Fl dDfmRs +.Op Fl dDfRs .Op Fl dDfs .Ar interface ... .Sh 解説 .Nm は指定された .Ar interfaces に対して -ルータ通知パケットを通知します。 +ルータ通知パケットを送信します。 .Pp このプログラムは実行時に自身をデーモン化します。 そして、定期的にルータ通知パケットを送信します。 また、エンドホストが送信したルータ要請メッセージに対しても、これで応答します。 .Pp ルータ通知は、インタフェース毎に設定可能であり、 .Xr rtadvd.conf 5 で記述されています。 .Pp 設定ファイル中でインタフェースに対する記述が存在しない、または 設定ファイルが存在しない場合には、 .Nm は全てのパラメータに対してデフォルト値を設定します。 特に、 .Nm は全てのインタフェースの経路を経路表より取得し、 リンク上のプレフィックスとして通知します。 .Pp .Nm はまた、経路表を監視します。 デフォルトでは、 もしインタフェースダイレクト経路が 通知しているインタフェースに追加もしくは削除された場合で、 設定ファイルに静的なプレフィックスが指定されていない場合、 .Nm は対応するプレフィックスを通知リストへ追加もしくは削除します。 この機能を有効としたくない場合、 -.Ic Fl s -コマンドラインオプションを起動時に指定可能です。 +.Fl s +オプションを起動時に指定可能です。 さらに、通知中のインタフェースの状態が変わった場合、 最新状態に基づいて、 .Nm はルータ通知を開始または停止します。 .Pp コマンドラインオプションは次の通りです: .Bl -tag -width indent .\" .It Fl c 設定ファイルとして代わりの場所 .Ar configfile を指定します。 デフォルトでは .Pa /etc/rtadvd.conf が使用されます。 .It Fl d デバッグ情報を表示します。 .It Fl D より詳細なデバッグ情報を表示します。 .It Fl f フォアグランドモードです (デバッグ時に有用です)。 -.It Fl m -モバイル IPv6 サポートを有効にします。 -ルータ通知オプションの内容と、 -許可された設定ディレクティブの内容を、変更します。 +.\" .It Fl m +.\" モバイル IPv6 サポートを有効にします。 +.\" ルータ通知オプションの内容と、 +.\" 許可された設定ディレクティブの内容を、変更します。 .It Fl R ルータリナンバリング (ルータの番号付け直し) 要求を受け付けます。 これを有効にする場合、セキュリティ上の理由から、IPsec の設定をお勧めします。 .It Fl s 静的プレフィックスモードです。 経路表を監視しません。 .El .Pp シグナル .Dv SIGUSR1 を受信すると、 .Nm は現在の内部状態を .Pa /var/run/rtadvd.dump へダンプします。 .Pp .Nm を綺麗に殺したい場合には .Dv SIGTERM を使用してください。 この場合、 ルータ有効期間 (lifetime) 0 のルータ通知を、 .Nm は、すべてのインタフェースに送信します .Pq RFC2461 6.2.5 による 。 .Sh 戻り値 +.Nm プログラムは成功時に 0 を、エラー時に 0 以外を返します。 .Sh 関連ファイル -.Bl -tag -width /etc/rtadvd.conf -compact +.Bl -tag -width Pa -compact .It Pa /etc/rtadvd.conf デフォルトの設定ファイル。 .It Pa /var/run/rtadvd.pid 現在実行中の .Nm rtadvd の PID を含みます。 .It Pa /var/run/rtadvd.dump .Nm の内部状態をここにダンプします。 .El .Sh 関連項目 .Xr daemon 3 , .Xr rtadvd.conf 5 , .Xr rtsol 8 .Sh 歴史 .Nm コマンドは WIDE Hydrangea IPv6 プロトコルスタックキットで はじめて登場しました。 .Sh 警告 ルータ通知は、下流方向に対してのみ通知すべきです。 誤って上流方向に通知した場合、 そのサブネットにおいて .Xr icmp6 4 リダイレクトパケットの嵐を引き起すでしょう。 これは、(仕様によると) 通知を行うルータが、 サブネット内のエンドホストにとってのデフォルトルータになるものと されているからです。 diff --git a/ja_JP.eucJP/man/man8/syslogd.8 b/ja_JP.eucJP/man/man8/syslogd.8 index 51032a4084..8a50090e4f 100644 --- a/ja_JP.eucJP/man/man8/syslogd.8 +++ b/ja_JP.eucJP/man/man8/syslogd.8 @@ -1,246 +1,257 @@ .\" Copyright (c) 1983, 1986, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)syslogd.8 8.1 (Berkeley) 6/6/93 -.\" %FreeBSD: src/usr.sbin/syslogd/syslogd.8,v 1.22.2.2 2000/09/23 22:39:54 alfred Exp % +.\" %FreeBSD: src/usr.sbin/syslogd/syslogd.8,v 1.22.2.3 2000/10/30 11:42:27 dwmalone Exp % .\" .\" jpman %Id: syslogd.8,v 1.3 1997/05/19 17:08:30 horikawa Stab % .\" .Dd October 12, 1995 .Dt SYSLOGD 8 .Os BSD 4.2 .Sh 名称 .Nm syslogd .Nd システムメッセージの記録をとる .Sh 書式 .Nm syslogd -.Op Fl dnsuv +.Op Fl dknsuv .Op Fl a Ar allowed_peer .Op Fl f Ar config_file .Op Fl m Ar mark_interval .Op Fl p Ar log_socket .Op Fl l Ar path .Sh 解説 .Nm デーモンは設定ファイルに指定された通りに、システムコンソール、 ログファイル、他のマシンやユーザへのメッセージを読み込み、記録します。 .Pp オプションには以下のものがあります。 .Bl -tag -width indent .It Fl a Ar allowed_peer .Ar allowed_peer がこの .Nm に UDP データグラムを使用してログすることを許します。複数の .Fl a オプションを指定可能です。 .Pp .Ar allowed_peer は以下のいずれかです: .Bl -tag -width "ipaddr/masklen[:service]XX" .It Ar ipaddr/masklen Ns Op Ar :service .Ar ipaddr (通常のドット表記の 4 つ組) からのデータグラムを受け付けます。 アドレス比較の際、 .Ar masklen ビットを考慮します。 .Ar service が指定された場合、パケット送出元が属すべき UDP service の名前もしくは番号となります ( .Xr services 5 参照)。 .Ar service に .Ql \&* を指定すると、全ての UDP ポートから送信されたパケットを受け付けます。 デフォルトの .Ar service は .Ql syslog です。 .Ar masklen を指定しないと、 .Ar ipaddr がクラス A もしくは B のアドレス範囲に属す場合にはそれぞれ 歴史的なクラス A もしくは B のネットマスクが使用され、 そうでない場合には 24 が使用されます。 .It Ar domainname Ns Op Ar :service 送信アドレスのアドレス逆引きにおいて .Ar domainname が得られたデータグラムを受け付けます。 .Ar service の意味は前述の通りです。 .It Ar *domainname Ns Op Ar :service 上述の通りですが、送信ホスト名が .Ar domainname で .Em 終る 全てのホストから受け付けます。 .El .It Fl d .Nm をデバッグモードで実行します。これは恐らく、 .Nm の開発者にのみ役立ちます。 .It Fl f 代りの設定ファイルのパス名を指定します。 デフォルトは .Pa /etc/syslog.conf です。 +.It Fl k +ファシリティ +.Dq kern +で受信したメッセージをファシリティ +.Dq user +へ変換することを、止めます。 +通常は、 +.Dq kern +ファシリティは、直接 +.Pa /dev/klog +から読み込むメッセージ用に予約されています。 .It Fl m .Dq mark されたメッセージの間隔を分単位で指定します。 デフォルトは 20 分です。 .It Fl n すべての要求に対し、DNS への問い合わせを抑止します。 .It Fl p 代りに使用するログ用ソケットのパス名を指定します。 デフォルトは .Pa /var/run/log です。 .It Fl l .Nm が追加のログ用ソケットを置く場所を指定します。 19 個まで追加のログ用ソケットを指定可能です。 主な用法は、 様々に chroot したファイル空間において追加のログ用ソケットを .Pa /var/run/log に置くというものです。 .It Fl s セキュアモードで操作します。リモートマシンからのログメッセージをログしません。 2 度指定すると、ネットワークソケットを全くオープンせず、 またリモートマシンへのログ動作も無効にします。 .It Fl u ただ 1 つの優先度のログのみ行います。 指定した優先度のメッセージのみログします。 このオプションを指定しないと、指定した優先度以上のメッセージがログされます。 このオプションにより、デフォルトの比較を .Dq => から .Dq = に変更します。 .It Fl v 冗長なログを行います。1 度指定すると、ローカルに書き込まれたメッセージと共に、 ファシリティと優先度が数値でログされます。 複数回指定すると、ローカルに書き込まれたメッセージと共に、 ファシリティと優先度が名前でログされます。 .El .Pp .Nm デーモンは 起動時と hangup シグナルを受けとった時はいつでも設定ファイルを 読み込みます。 設定ファイルのフォーマットに関する情報は、 .Xr syslog.conf 5 参照して下さい。 .Pp .Nm デーモンは .Tn UNIX ドメインソケット .Pa /var/run/log、 .Pa /etc/services で指定されるインターネットドメインソケット および特殊デバイス .Pa /dev/klog (カーネルメッセージを読むため) からメッセージを読み込みます。 .Pp .Nm デーモンはファイル .Pa /var/run/syslog.pid を作成し、プロセス ID を記録します。 これは .Nm を kill や、設定ファイルを読み込ませるために使えます。 .Pp .Nm に送られるメッセージは単一の行で構成されます。このメッセージは先頭に 優先順位コードを含んでいます。このコードは .Sq Aq 5 のように括弧でくくられた 10 進数から構成されており、インクルードファイル .Aq Pa sys/syslog.h で定義されている優先順位に対応します。 .Sh 関連ファイル .Bl -tag -width /var/run/syslog.pid -compact .It Pa /etc/syslog.conf コンフィギュレーションファイル .It Pa /var/run/syslog.pid 動作中の .Nm のプロセス ID .It Pa /var/run/log .Tn UNIX ドメインデータグラムのログ用ソケットの名前 .It Pa /dev/klog カーネルログ用のデバイス .El .Sh 関連項目 .Xr logger 1 , .Xr syslog 3 , .Xr services 5 , .Xr syslog.conf 5 .Sh 歴史 .Nm コマンドは .Bx 4.3 から登場しました。 .Pp .Fl a , .Fl s , .Fl u , .Fl v のオプションは .Fx 2.2 における拡張です。 .Sh バグ UDP パケットで受けとったメッセージを記録する能力は認証されていない ディスクを溢れさせるリモートサービスと等価であり、恐らくデフォルトで無効に されるべきです。ある種の .Nm 間の認証メカニズムが用意されるべきでしょう。 最悪の無駄遣いを避けるために、 .Fl a オプションの使用を強く勧めます。 .Pp .Fl a のマッチングアルゴリズムは非常に効率的には見えません; ドメイン名比較より、数値による IP アドレスを使用する方が高速です。 許可されたピアのリストの検索は線型に行なわれるため、 多くのメッセージを受け付けると予測されるピアグループは .Fl a リストの最初の方に置くべきです。 .Pp ログ用ソケットは読み込み専用のルートファイルシステムの扱いを容易にする ために .Pa /dev から移されました。このことは古いバイナリを混乱させるかもしれないので、 過渡期の間はシンボリックリンクが役に立つでしょう。 diff --git a/ja_JP.eucJP/man/man8/wicontrol.8 b/ja_JP.eucJP/man/man8/wicontrol.8 index 7d6dc6eca4..f1e8340b5e 100644 --- a/ja_JP.eucJP/man/man8/wicontrol.8 +++ b/ja_JP.eucJP/man/man8/wicontrol.8 @@ -1,321 +1,322 @@ .\" Copyright (c) 1997, 1998, 1999 .\" Bill Paul All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Bill Paul. .\" 4. Neither the name of the author nor the names of any co-contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY Bill Paul AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF .\" THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/usr.sbin/wicontrol/wicontrol.8,v 1.14.2.2 2000/09/21 00:26:59 wpaul Exp % +.\" %FreeBSD: src/usr.sbin/wicontrol/wicontrol.8,v 1.14.2.3 2000/10/30 02:16:05 joe Exp % .\" .\" jpman %Id: wicontrol.8,v 1.3 1999/07/31 05:08:56 kuma Stab % .\" .Dd April 21, 1999 .Dt WICONTROL 8 .Os FreeBSD 3.0 .Sh 名称 .Nm wicontrol .Nd WaveLAN/IEEE デバイスの設定 .Sh 書式 .Nm wicontrol .Fl i Ar iface Op Fl oa .Nm wicontrol .Fl i Ar iface Fl t Ar tx rate .Nm wicontrol .Fl i Ar iface Fl n Ar network name .Nm wicontrol .Fl i Ar iface Fl s Ar station name .Nm wicontrol .Fl i Ar iface Fl c Ar 0|1 .Nm wicontrol .Fl i Ar iface Fl q Ar SSID .Nm wicontrol .Fl i Ar iface Fl p Ar port type .Nm wicontrol .Fl i Ar iface Fl a Ar access point density .Nm wicontrol .Fl i Ar iface Fl m Ar mac address .Nm wicontrol .Fl i Ar iface Fl d Ar max data length .Nm wicontrol .Fl i Ar iface Fl e Ar 0|1 .Nm wicontrol .Fl i Ar iface Fl k Ar key .Op Fl v Ar 1|2|3|4 .Nm wicontrol .Fl i Ar iface Fl T Ar 1|2|3|4 .Nm wicontrol .Fl i Ar iface Fl r Ar RTS threshold .Nm wicontrol .Fl i Ar iface Fl f Ar frequency .Nm wicontrol .Fl i Ar iface Fl P Ar 0|1 .Nm wicontrol .Fl i Ar iface Fl S Ar max_sleep_duration .Nm wicontrol .Fl i Ar iface Fl Z (zero signal cache) .Nm wicontrol .Fl i Ar iface Fl C (display signal cache) .Sh 解説 .Nm コマンドは、 .Xr wi 4 ドライバを介し、 WaveLAN/IEEE ワイヤレスネットワークデバイスの動作を制御します。 変更可能なほとんどのパラメータは、 WaveLAN が実装している IEEE 802.11 プロトコルに関連するものです。 これに含まれるのは、 ステーション名、 ステーションの動作がアドホック (ポイントツーポイント) と BSS (サービスセット) のどちらであるか、 BSS モードが有効な場合には加入するサービスセットのネットワーク名 (IBSS) です。 .Nm コマンドを使用して、これらのパラメータの現在の設定を見ることができますし、 カードの統計情報カウンタの値をダンプできます。 .Pp .Nm に与えられる .Ar iface 引数は、 WaveLAN/IEEE デバイスに関連付けられる論理インタフェース名であることが必要です (wi0 や wi1 など)。 +指定しない場合には wi0 が仮定されます。 .Sh オプション オプションを示します: .Bl -tag -width Fl .It Fl i Ar iface Op Fl oa 指定した WaveLAN/IEEE インタフェースの現在の設定を表示します。 現在のカードの設定をドライバから取り出し、表示します。 追加の .Fl o フラグを使用すると、 .Nm は、カードの設定の代りに統計情報カウンタを表示します。 追加の .Fl a フラグを使用することで、暗号化キーを 16 進数の代りに ASCII 文字で表示します。 暗号化キーは、wicontrol が root で実行された場合のみ表示されます。 .It Fl i Ar iface Fl t Ar tx rate 指定したインタフェースの転送レートを設定します。 転送レートとしての正当な値は、 インタフェースが標準の WaveLAN/IEEE であるか WaveLAN/IEEE Turbo アダプタ かによって変わります。 標準の NIC でサポートする最大転送レートは 2Mbps ですが、 ターボ版の NIC では最大速度 6Mbps をサポートします。 次の表は、正当な転送レートの設定と対応する転送速度を示します: .Bd -filled -offset indent .Bl -column "TX rate " "NIC speed " .Em "TX レート NIC 速度" 1 固定低速 (1Mbps) 2 固定標準速 (2Mbps) 3 自動レート選択 (高速) 4 固定中速 (4Mbps) 5 固定高速 (6Mbps) 6 自動レート選択 (標準) 7 自動レート選択 (中速) .El .Ed .Pp 標準の NIC は 1 から 3 までの設定のみサポートします。 ターボ版の NIC は前述の設定すべてをサポートします。 デフォルトのドライバの設定は 3 (自動レート選択) です。 .It Fl i Ar iface Fl n Ar network name このステーションが加入を望んでいるサービスセット (IBSS) の名前を設定します。 .Ar network name は、30 文字までの長さの任意のテキスト文字列です。 デフォルトの名前は文字列 "ANY" であり、 最初に利用可能となったアクセスポイントにステーションが接続することを 許します。 このオプション設定が動作するためには、 .Fl p フラグを使用して、インタフェースを BSS モードにすることが必要です。 .Pp 注: WaveLAN のマニュアルによると、 空文字列を指定すると ホストがすべてのアクセスポイントへ接続可能となるとあります。 一方、別のドライバを見たところ、文字列 "ANY" も同様に動作するとありました。 .It Fl i Ar iface Fl s Ar station name 指定したインタフェースの .Ar station name を設定します。 .Ar station name は診断のために使用されます。 Lucent の WaveMANAGER ソフトウェアは、リモートホストの名前を調査可能です。 .It Fl i Ar iface Fl c Ar 0|1 ステーションがサービスセット (IBSS) を作成することを許します。 許される値は、0 (IBSS を作成しません) と 1 (IBSS の作成を有効にします) です。 デフォルトは 0 です。 .Pp 注: このオプションは実験的な目的でのみ提供されています: ホストシステム上で IBSS の作成を有効にしても、 実際には動作していないようです。 .It Fl i Ar iface Fl q Ar SSID 指定したインタフェース上に作成する IBSS の名前 (SSID) を指定します。 .Ar SSID は、30 文字までの長さの任意のテキスト文字列です。 .Pp 注: このオプションは実験的な目的でのみ提供されています: ホストシステム上で IBSS の作成を有効にしても、 実際には動作していないようです。 .It Fl i Ar iface Fl p Ar port type 指定したインタフェースの .Ar port type を設定します。 .Ar port type の正当な値は、1 (BSS モード) と 3 (アドホック) モードです。 アドホックモードでは、 あるステーションは直接電波が届く範囲の他のステーション (これらもアドホックモードで動作していることが必要です) と直接通信可能です。 BSS モードでは、 アクセスポイントが制御するサービスセットとホストとが関連付けられることが 必要です。 アクセスポイントは、エンドステーション間のトラフィックを中継します。 デフォルトの設定は 3 (アドホックモード) です。 .It Fl i Ar iface Fl a Ar access_point_density 指定したインタフェースの .Ar access point density を指定します。 正当な値は、1 (低)、2 (中)、3 (高) です。 この設定は、電波モデムの閾値の設定に影響します。 .It Fl i Ar iface Fl m Ar mac address 指定したインタフェースのステーションアドレスを設定します。 .Ar mac address は、コロンで区切られる 6 個の 16 進数の連続として指定されます。 例えば 00:60:1d:12:34:56 となります。 これにより、新規アドレスがカード上にプログラムされ、 インタフェースも更新されます。 .It Fl i Ar iface Fl d Ar max_data_length 指定したインタフェースの、送受信フレームサイズの最大を指定します。 .Ar max data length は、350 から 2304 までの任意の数値です。デフォルトは 2304 です。 .It Fl i Ar iface Fl e Ar 0|1 WEP 暗号化を有効化または無効化します。 使用可能な値は .Ar 0 (暗号化無効) または .Ar 1 (暗号化有効) です。 暗号化はデフォルトでは無効です。 .It Fl i Ar iface Fl k Ar key "[-v 1|2|3|4]" WEP 暗号化キーを設定します。 プログラム可能な暗号化キーは、デフォルトで 4 個あります。 個々のキーは .Fl v フラグで設定可能です。 .Fl v フラグが指定されないと、最初のキーが設定されます。 暗号化キーは、通常テキスト (すなわち "hello") または一連の 16 進数 (すなわち "0x1234512345") のどちらかです。 WaveLAN Turbo Silver カードでは、キーは 40 ビットに制限されていますので、 キーは 5 文字までのテキスト文字列か 10 桁の 16 進数です。 WaveLAN Turbo Gold カードでは、キーは 104 ビットまでですので、 Silver カードでサポートされている書式に加え、 キーは 13 文字までのテキスト文字列か 26 桁の 16 進数がサポートされます。 .It Fl i Ar iface Fl T Ar 1|2|3|4 4 個の WEP 暗号化キーのどれを使用して転送パケットを暗号化するかを指定します。 .It Fl i Ar iface Fl r Ar RTS threshold 指定したインタフェースの RTS/CTS 閾値を設定します。 これは、RTS/CTS ハンドシェーク境界に使用するバイト数を制御します。 .Ar RTS threshold は 0 から 2047 までの任意の数値です。デフォルトは 2347 です。 .It Fl i Ar iface Fl f Ar frequency 指定したインタフェースの電波の周波数を設定します。 .Ar frequency は次の表に示すチャネル ID で指定することが必要です。 利用可能な周波数は、各地の当局によって指定される電波規制に依存します。 既知の規制元としては、 FCC (米国)、ETSI (欧州)、フランス、日本があります。 表中の周波数は Mhz です。 .Bd -filled -offset indent .Bl -column "チャネル ID " "FCC " "ETSI " "仏 " "日 " .Em "チャネル ID FCC ETSI 仏 日" 1 2412 2412 - 2412 2 2417 2417 - 2417 3 2422 2422 - 2422 4 2427 2427 - 2427 5 2432 2432 - 2432 6 2437 2437 - 2437 7 2442 2442 - 2442 8 2447 2447 - 2447 9 2452 2452 - 2452 10 2457 2457 2457 2457 11 2462 2462 2462 2462 12 - 2467 2467 2467 13 - 2472 2472 2472 14 - - - 2484 .El .Ed .Pp 不正なチャネルを指定すると、NIC はデフォルトチャネルに戻ります。 米国および欧州で販売されている NIC では、デフォルトチャネルは 3 です。 フランスで販売されている NIC では、デフォルトチャネルは 11 です。 日本で販売されている NIC では、デフォルトチャネルは 14 です。 これは、11Mbps 以前の NIC においては唯一利用可能なチャネルです。 2 つのステーションが通信するためには、 同一のチャネルに設定されていることが必要であることに注意してください。 .It Fl i Ar iface Fl P Ar 0|1 指定したインタフェースの電源管理を有効または無効にします。 電源管理を有効にすると、 交互にスリープ/ウェイクプロトコルを使用することにより、 モバイルステーションの省電力を助けます。 このために受信遅延がいくぶん増加します。 デフォルトでは、電源管理はオフです。 電源管理が機能するためには、 アクセスポイントとの協調が必要なことに注意してください。 アドホックモードでは動作しません。 また電源管理がサポートされているのは、 Lucent WavePOINT のバージョン 2.03 以降のファームウェア、 WaveLAN PCMCIA アダプタのバージョン 2.00 以降のファームウェアのみです。 古いリビジョンでは、電源管理の設定は黙って無視されます。 このパラメータにとって正当な値は、0 (オフ) と 1 (オン) です。 .It Fl i Ar iface Fl S Ar max_sleep_interval 電源管理が有効なときに使用するスリープ間隔を指定します。 .Ar max sleep interval はミリ秒で指定します。デフォルトは 100 です。 .It Fl i Ar iface Fl Z .Nm wi ドライバ内部で管理される信号強度キャッシュをクリアします。 .It Fl i Ar iface Fl C .Nm wi ドライバ内部で管理されるキャッシュされた信号強度情報を表示します。 ドライバは、他のホストから受信するパケットに関し、 信号強度とノイズレベルに関する情報を維持します。 信号強度とノイズレベルの値は dBms の単位で表示されます。 信号品質値は、信号強度からノイズレベルを減じたものです (すなわち、低ノイズで良い信号の場合、信号品質が向上します)。 .El .Sh 関連項目 .Xr wi 4 , .Xr ifconfig 8 .Sh 歴史 .Nm コマンドが最初に登場したのは .Fx 3.0 です。 .Sh 作者 .Nm コマンドは .An Bill Paul Aq wpaul@ctr.columbia.edu が記述しました。