[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

F. 問題の解決

CVS の使用に問題があれば、この付録が役立つかもしれません。特定の エラーメッセージが出ているなら、そのメッセージをアルファベット順に探す ことができます。そうでない場合は、他の問題の章を眺めて説明されているか どうかを知ることができます。


F.1 エラーメッセージの部分的一覧

これは CVS で起こるかもしれないエラー・メッセージの部分的な一覧で す。完全な一覧ではありません--CVS はたくさん、たくさんのエラー・ メッセージを印字する能力があり、しばしば一部分はオペレーティング・シス テムにより提供されます。しかし、ここでの意図はよくあるもの、混乱する可 能性のあるエラー・メッセージの、両方もしくはどちらかにあてはまるものの 一覧を挙げることです。

メッセージはアルファベット順ですが、`cvs update: ' のような前置き の文章は順番にするときには省かれています。

この一覧は古いバージョンの CVS で印字されるメッセージがある場合も あります (使用者は特定の時にどのバージョンの CVS を使用しているか を必ずしも知らないというのが理由の一つです)。

cvs command: authorization failed: server host rejected access

これは pserver のサーバに接続しようとして、それが特定の理由を教えるこ となく認証を拒否することを選んだときの一般的な反応です。指定された使用 者名とパスワードが正しいことと、指定された CVSROOT が `inetd.conf' の `--allow-root' で使用可になっているこを確認 してください。

file:line: Assertion 'text' failed

システムによってこのメッセージの正確な形式は異なります。これは CVS のバグを示し、CVS かこのマニュアルのバグに対処する で説明されているように扱うことができ ます。

cvs command: conflict: removed file was modified by second party

このメッセージは、あなたがファイルを消去し、誰か別の人がそれを修正した ということを示します。衝突を解消するために、まず `cvs add file' を実行します。それが望まれていれば、他の人々の修正を見てま だそれを消したいかどうかを決定します。消したくなければ、ここで止めます。 消去したければ、 `cvs remove file' を実行して、削除を格納し ます。

cannot change permissions on temporary directory
 
Operation not permitted

このメッセージは、Red Hat Linux 3.0.3 と 4.1 でクライアント/サーバのテ スト一式を実行しているときいに、再現不可能な方法でときどき発生しました。 我々は何がそれを起こしたのか、また linux (もしくは、このマシンそのもの!) に特有かどうかも分かりません。他の unix でも問題が発生した場合は、おそ らく `Operation not permitted' は `Not owner' や当のシステム が unix の EPERM エラーで使用している他のものになっているでしょ う。追加の情報があれば、CVS かこのマニュアルのバグに対処する で説明されているように我々に知らせ てください。もし CVS を使用していてこのエラーを経験したときは、そ れを発生させた操作をもう一度繰り返すとちゃんと動作するでしょう。

cvs [server aborted]: Cannot check out files into the repository itself

このメッセージの明らかな原因は (特にクライアント/サーバでない CVS のときは)、CVS のルートが例えば `/usr/local/cvsroot' で、 `/usr/local/cvsroot/test' のようなサブディレクトリにファイルを取 り出そうとしたことです。しかしながら、サーバの一時ディレクトリがルート のサブディレクトリに設定されている (これも許可されていません) というよ り微妙な場合もあります。これが問題の原因であるなら、一時ディレクトリを 別のところに設定してください。例えば、`/var/tmp' に。一時ディレク トリの設定のしかたは、CVS に影響する全ての環境変数TMPDIR を 参照してください。

cannot open CVS/Entries for reading: No such file or directory

これは一般的に CVS の内部エラーを示し、他の CVS のバグと同様 に扱うことがきます (see section CVS かこのマニュアルのバグに対処する)。たいていの場合、対策があります--正 確な方法は状況に依りますが、おそらく見付け出すことができるでしょう。

cvs [init aborted]: cannot open CVS/Root: No such file or directory

このメッセージは無害です。もし他のエラーと一緒にでなければ、操作は成功 しています。現在のバージョンの CVS では出ないはずですが、CVS 1.9 以前のために説明されています。

cvs [checkout aborted]: cannot rename file file to CVS/,,file: Invalid argument

このメッセージは Solaris 2.5 上での CVS 1.9 でときどき発生することが報 告されています。原因は不明です。原因についてさらに知っていれば、 CVS かこのマニュアルのバグに対処する で説明されているように我々に知らせてください。

cvs [command aborted]: cannot start server via rcmd

この残念ながらあまり詳しくないメッセージは、CVS のクライアントを 実行していてサーバとの接続に問題があったときに CVS 1.9 が印字しま す。現在のバージョンの CVS はもっと詳しいエラーメッセージを印字す るようになっています。クライアントを実行しようとはしていないのにこのメッ セージが出たときは、おそらく リポジトリ で説明されている方法で :local: を指定することを忘れたのでしょう。

ci: file,v: bad diff output line: Binary files - and /tmp/T2a22651 differ

CVS 1.9 以前は RCS が正しくインストールされていないときにバイナリ ファイルを格納しようとしたときにこのメッセージを印字します。RCS の配布とともに取得している指示をもう一度読んで、CVS 配布の INSTALL ファイルを読んでください。代替法として、RCS を経由し ないで自分自身でファイルを格納する現在のバージョンの CVS に変更す ることもできます。

cvs checkout: could not check out file

CVS 1.9 では、これは co プログラム (RCS プログラムの一部で す) が失敗の値を返したということです。他のエラーメッセージがその前にあ るはずですが、別のエラーメッセージなしに発生することも確認されており、 原因はよくわかっていません。現在のバージョンの CVS は co を実行 しないので、このメッセージが別のエラーメッセージとともに現れなければ、 それは間違いなく CVS のバグです (see section CVS かこのマニュアルのバグに対処する)。

cvs [update aborted]: unexpected EOF reading file,v

`EOF in key in RCS file' を参照。

cvs [login aborted]: could not find out home directory

これはホームデレクトリの位置を特定するために CVS が使用する環境変数を 設定する必要があるということです。CVS に影響する全ての環境変数HOME, HOMEDRIVE, HOMEPATH の議論を参照してくださ い。

cvs update: could not merge revision rev of file: No such file or directory

CVS 1.9 以前は rcsmerge プログラムを見つけるときに問題が発生し たときにこのメッセージを印字します。それが PATH にあることを確 認するか、外部 rcsmerge プログラムを必要としない現在のバージョ ンの CVS に更新してください。

cvs [update aborted]: could not patch file: No such file or directory

これは patch プログラムの探索に問題があったということです。それ が PATH 上にあるとを確認してください。メッセージの外観とは違っ て、file を見つけるかどうかについて言っているのではないこ とに注意してください。クライアントとサーバが現在のバージョンの CVS を実行しているなら、外部 patch プログラムは必要ではなく、この メッセージを見ることはないでしょう。しかし、クライアントかサーバが CVS 1.9 を実行していれば、patch が必要です。

cvs update: could not patch file; will refetch

これは、何らかの理由により、クライアントはサーバが送った patch を適用 できなかったということです。メッセージは心配するようなものではありませ ん。これは、patch の適用ができなかったというのはちょっと作業を遅らせる だけで、CVS が実行することには影響しないからです。

dying gasps from server unexpected

CVS 1.9.18 以前のサーバにはこれを発生する既知のバグがあります。私 は、`-t' 広域オプションを使用しているときに再現可能です。もし興味 があれば、それは Andy Piper の1997年11月4日の src/filesubr.c への変更 で修正されました。このメッセージが出たときは、おそらく失敗した操作をた だもう一度試すことができます。また、この原因に関して情報を発見したなら、 CVS かこのマニュアルのバグに対処する に書かれているように我々に知らせてください。

end of file from server (consult above messages if any)

このメッセージの一番多い原因は、外部 rsh プログラムを使用してい て、それがエラーを出して終了するというものです。この場合 rsh プログラムは、上のメッセージの前にメッセージを印字しているはずです。 CVS のクライアントとサーバの設定の情報は 別のマシンのリポジトリ を参照してください。

cvs commit: Executing 'mkmodules'

これはリポジトリが CVS 1.8 より前のバージョンの CVS で設定さ れているということです。CVS 1.8 以降を使っていると、上記のメッセー ジの前に以下のものがでます。

 
cvs commit: Rebuilding administrative file database

両方のメッセージが表示されれば、データベースは2回再構築されていて、こ れは不必要ですが、無害です。重複を避けたくて、CVS 1.7 以前を使っ ていないなら、modules ファイルにある全ての -i mkmodules を消してください。modules ファイルの情報は The modules file を参照 してください。

missing author

普通これは使用者名が空の RCS ファイルを作成したときに発生します。CVS は、間違って author 部分に値のない不正な RCS ファイルを作成します。解 決策は、使用者名が空でないことを確認して、RCS フィルを再作成することで す。

*PANIC* administration files missing

これは普通は CVS という名前のディレクトリがあるけれど、CVS が CVS ディ レクトリに置く管理ファイルがないということです。もし問題が CVS 以外の 何らかの機構で CVS ディレクトリを作ったというものであれば、CVS 以外の 名前を使ってください。もしそうでなければ、それは CVS のバグを示してい ます (see section CVS かこのマニュアルのバグに対処する)。

rcs error: Unknown option: -x,v/

このメッセージの後には RCS の使用法のメッセージが続きます。それは 古いバージョンの RCS (おそらくオペレーティングシステムと共に提供 されたものでしょう) があるということです。CVS は RCS バージョン 5 以降でのみ動作します。

cvs [server aborted]: received broken pipe signal

これは、CVS かそれが実行されているシステムの追跡が困難なバグ (良 く判っていません--我々はまだ追いかけていません!) により発生するようで す。CVS コマンドが完了した後でのみ発生するようで、メッセージは無 視できます。しかしながら、その原因に関する情報を発見したなら、 CVS かこのマニュアルのバグに対処する で説明されているように我々に知らせてください。

Too many arguments!

このメッセージは普通は CVS のソース配布の `contrib' ディレク トリにある `log.pl' スクリプトにより印字されます。CVS のバー ジョンには、`log.pl' が既定の CVS インストールに含まれている ものもあります。`log.pl' スクリプトは `loginfo' 管理ファイル から呼ばれます。`loginfo' で渡されている引数があなたのバージョン の `log.pl' が期待するものとあっているか調べてください。特に、 CVS 1.3 以前の `log.pl' はログファイルを引数として期待します が、CVS 1.5 以降の `log.pl' はログファイルは `-f' オプ ションで指定されることを期待します。もちろん、`log.pl' が必要でな ければ、`loginfo' 中で註釈にして、使用しないようにすることができ ます。

cvs [login aborted]: unrecognized auth response from server

このメッセージは普通はサーバが適切に設定されていないことを意味します。 例えば、`inetd.conf' が存在しない cvs 実行ファイルを指していると きです。これをデバッグするためには、inetd が書くログファイル (`/var/log/messages' やあなたのシステムの inetd が使うその他のも の) を見つけてください。詳細は CVS サーバに接続をしようとするときの問題パスワード認証のためのサーバの設定 参照。

cvs commit: Up-to-date check failed for `file'

これはあなたが最後に cvs update を実行した後に誰かが変更を格納 したということです。ですから、cvs commit を継続する前に cvs update をする必要があります。CVS はあなたのした変更と他の人 がした変更をマージします。衝突が発見されなれば、`M cacErrCodes.h' のように報告され、cvs commit を実行する準備が整っています。もし 衝突が発見されれば、その由を印字し、`C cacErrCodes.h' と報告され、 手で衝突を解消する必要があります。この過程の詳細は 衝突の例 を参照してください。

Usage: diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 file2 file3
 
Only one of [exEX3] allowed

これは diff3rcsmerge のインストールに問題があること を示しています。特に rcsmerge は GNU diff3 を探すようにコンパイ ルされているけれど、代わりに unix の diff3 が使われています。一番簡単 な解決法は外部の rcsmergediff3 プログラムに頼らない 現在のバージョンの CVS に更新することです。

warning: unrecognized response `text' from cvs server

もし text が有効な応答 (`ok' のようなもの) で、続きに余分な キャリッジリターンがあると (多くのシステムではこれはメッセージの2番目 の部分が1番目の部分を上書きします)、おそらく、既定では透過的なデータス トリームを提供しない、多くの unix でない rsh のバージョンで `:ext:' 接続方法を使用としているのでしょう。その様な場合はたぶん `:ext:' の代わりに `:server:' を試みるのが良いでしょう。 text が何か他のものなら、CVS サーバに問題があることを表します。 CVS サーバを設定するための指示を見てインストールを再度確認してください。

cvs commit: [time] waiting for user's lock in directory

これは普通のメッセージであり、エラーではありません。詳細は 同時に CVS の実行を試みる複数の開発者 参照。

cvs commit: warning: editor session failed

これは CVS が使用しているエディタが非零の値で終了したということで す。vi のバージョンにはファイルの編集に問題がなかったときでさえそうす るものがあります。もしそうなら、環境変数 CVSEDITOR を以下のよう な小さなスクリプトを指すようにしてください:

 
#!/bin/sh
vi $*
exit 0

F.2 CVS サーバに接続をしようとするときの問題

この章は CVS サーバに接続しようとしたときに問題が起こったときに何 をすれば良いかということを書いています。 Windows で CVS コマンド ライン・クライアントを実行しているなら、まず CVS 1.9.12 以降に更 新してください。以前のバージョンのエラー報告は、問題がどうであったかに ついて、ほとんど情報を提供しません。クライアントが Windows でなければ、 CVS 1.9 は問題ありません。

問題を追いかけるためにエラー・メッセージが十分でなければ、次の手段は使 用している接続方法によってかなり異なります。

:ext:

コマンド行からの rsh プログラムの実行を試してください。例えば: "rsh servername cvs -v" は CVS のバージョン情報を印字します。もしこれ が動作しなければ、CVS の問題を気にする前にそれを修正する必要があ ります。

:server:

この接続方法を使用するためにコマンド行の rsh プログラムは必要ではあり ませんが、rsh プログラムがあれば、デバッグ道具として役に立つでしょう。: ext: のところの指示に従ってください。

:pserver:

良いデバッグ道具は "telnet servername 2401" です。接続後、任意のテキス ト (例えば、"foo" リターン)。CVS が正しく動作していれば、以下のよ うに反応するはずです。

 
cvs [pserver aborted]: bad auth protocol start: foo

これの動作に失敗すれば、inetd が正しく動作しているか確認してください。 `inetd.conf' での起動を cvs の代わりに echo プログラムに変更して ください。例えば:

 
2401  stream  tcp  nowait  root /bin/echo echo hello

その変更をして、inetd に設定ファイルを再読み込みするように指示した後で は、"telnet servername 2401" はテキスト hello を表示して、サーバが接続 を切るはずです。これが動作しなければ、CVS の問題を気にする前にそ れを修正してください。

AIX システムでは、システムにポート 2401 を使おうとするプログラムがあり ます。これは、ポート 2401 は CVS での使用に登録されているという点 で AIX の問題です。この問題を解決するために AIX のパッチがあるというこ とを聞いたことがあります。

他の良いデバッグツールは inetd に `-d' (debugging) オプションを付 けることです。詳しい情報はシステムの説明文書を調べてください。

接続はできているようですが、次のようなエラーが出る場合は:

 
cvs server: cannot open /root/.cvsignore: Permission denied
cvs [server aborted]: can't chdir(/root): Permission denied

`inetd.conf' で `-f' を指定しなかったか、inetd により実行さ れているプログラムの HOME 環境変数をシステムが設定しているとい うことです。後者の場合は、 inetd に HOME を未設定にして CVS を実行するシェルスクリプトを実行させるようにするか、CVS を純粋な環境で実行するために env を使うことができます。


F.3 他のよくある問題

これは上の分類には合わない問題の一覧です。順番には特に意味はありません。


[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated by Akihiro Sagawa on June, 15 2005 using texi2html 1.70.