徐小玉的博客。
分类: LINUX
2008-03-21 10:18:09
下一个: , 上层:
F.1 部分错误消息列表
这里是你从 cvs 看到的部分错误消息列表。它不是一个完整的列表 –cvs 可以打印很多很多的错误消息,其中一部分通常由操作系统提供,这里是要列出通用和/或易误解的错误消息。
这些消息按字母顺序排列,但是指导文字如 `cvs update: ' 不按这种次序。
某些情况下列表包含了旧版本 cvs (部分原因是因为用户在特定时刻无法确认所使用的 cvs 版本) 打印的消息。
file:line: Assertion 'text' failed
准确的消息格式会因不同的系统而变。它指出 cvs 里面有 bug,参见 了解如何处理。
cvs command: authorization failed: server host rejected access
连接 pserver 服务器,认证失败时的一般的响应。检查用户名与密码是否正确,在 inetd.conf 的 `--allow-root' 是否允许 CVSROOT。参见 。
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 [server aborted]: Cannot check out files into the repository itself
产生这个消息明显的原因(特别是非客户机/服务器 cvs),是由于 cvs 的根为,比如,/usr/local/cvsroot,但你要检出到它的子目录,像 /usr/local/cvsroot/test。但还有一种微妙的原因,是将服务器上的临时目录设为根的子目录(这也是不允许的)。如果这就是原因,将临时目录改成其他地方,例如 /var/tmp; 参考 里面的 TMPDIR,了解如何设置临时目录。
cannot commit files as 'root'
参阅 `'root' is not allowed to commit files'.
cannot open CVS/Entries for reading: No such file or directory
通常这是一个 cvs 内部错误,需要通过解决其他 cvs bug 处理(参阅 )。一般情况下有一个工作环境–性质决定于状态,但希望能指出。
cvs [init aborted]: cannot open CVS/Root: No such file or directory
此消息是无害的。无其他错误时,操作可以成功执行。此消息不会出现在现在的 cvs 版本里面,写在这里是为 cvs 1.9 和之前的版本。
cvs server: cannot open /root/.cvsignore: Permission denied
cvs [server aborted]: can't chdir(/root): Permission denied
参阅 .
cvs [checkout aborted]: cannot rename file file to CVS/,,file: Invalid argument
该消息在 Solaris 2.5 的 cvs 1.9 上偶尔会出现。原因不明; 如果你知道造成的原因请让我们知道,见 。
cvs [command aborted]: cannot start server via rcmd
很不幸,如果你运行的客户端是 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 文件。或者,升级到当前的 cvs 版本,它不会使用 rcs,而是自己提交文件。
cvs checkout: could not check out file
在 cvs 1.9 中,这意味着 co 程序(rcs 的一部分)返回错误。在此之前应该还有其他的错误消息,但没看到其他错误消息会让这个信息难以理解。在当前版本的 cvs 中,因为不再使用 co,如果没有伴随其他错误消息,可以说是 cvs 的 bug (参阅 )。
cvs [login aborted]: could not find out home directory
意思是你需要设置环境变量,使得 cvs 可以找到 home 目录。参见 里面的 HOME,HOMEDRIVE 和 HOMEPATH 讨论。
cvs update: could not merge revision rev of file: No such file or directory
在 cvs 1.9 和更早的版本中,如果搜索 rcsmerge 程序有问题,将显示此消息。请确保它在你的 PATH 之中,或者更新到现在的 cvs 版本,因为它不再使用外部的 rcsmerge 程序。
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
这意味着客户端无论如何也不会打服务器发来的补丁。因为不能打补丁,只会降低速度,对 cvs 也没有影响,所以消息是无关紧要的。
dying gasps from server unexpected
在 cvs 1.9.18 和更早的版本中,这是一个已知的 bug。我使用 `-t' 全局选项时会重现。如果有人想了解情况,它已经被 Andy Piper 于 1997 年 11 月 14 日更改 src/filesubr.c 而修复。如果你见到这个消息,可在执行一次失败的操作,并让我们知道,见 。
end of file from server (consult above messages if any)
通常造成的原因是你使用了外部 rsh 程序,并返回一个错误。在这种情况下, rsh 程序应该在上面消息前面打印一个错误消息。了解建立 CVS 客户机和服务器的更多信息,见 。
cvs [update aborted]: EOF in key in RCS file file,v
cvs [checkout aborted]: EOF while looking for end of string in RCS file file,v
这意味着在 rcs 文件里面有语法错误。注意,即使 rcs 可以正确读取这个文件; cvs 要对 rcs 文件做更多的错误检测。这也是从 cvs 1.9 升级到 1.10 时看到这个消息的原因。可能是硬件、操作系统或者类似的因素造成错误。当然,如果你发现是 cvs 造成的,请报告(参阅 )。这个错误消息会因 cvs 在 rcs 文件里面发现的不同语法错误,有其他一些变化。
cvs commit: Executing 'mkmodules'
这个消息意味着你的参考是在 cvs 1.8 之前的版本下建立的。当使用 cvs 1.8 以后的版本,这个消息前会有
cvs commit: Rebuilding administrative file database
如果你看到所有的两条消息,数据库重建了两次,虽没有必要,但是无害。如果你希望避免重复,并且没有使用 cvs 1.7 和更早的版本,对每个出现的 modules 文件,用删除 -i mkmodules。modules 文件的更多信息,见 。
missing author
当你创建 RCS 文件时将用户名设为空,这条消息将显示。cvs 将假装创建一个作者字段没有值的非法的 RCS。解决方法是确保用户名非空并重新建立 RCS 文件。
cvs [checkout aborted]: no such tag tag
此消息的意思是 cvs 不知道 tag 标签。经常是由于你打错了标签名。偶尔也会因创建的标签的用户没有权限写 CVSROOT/val-tags 文件(参考参阅 了解更多情况)。
在 cvs 1.12.10 之前的版本里面,有时是一些隐含的原因造成,其中标签是在仓库里面的档案文件中创建,但是 cvs 要求用户试用其他的涉及此标签的 cvs 命令,直到发现让 cvs 更新 val-tags 文件的命令,然后最初失败的命令才能工作。同样可以修理因前面权限造成 val-tags 过期的问题。每个标签只需要更新一次 - 一旦标签列入 val-tags 文件,它就留在那里。
注意使用 `tag -f' 不要求标签匹配,也不覆盖此检查(参阅 )。
*PANIC* administration files missing
一般这是因为名为 cvs 的目录下并没有包含 cvs 使用的管理文件。如果这个问题是因为该 cvs 目录是由非 cvs 程序创建,那么简单的处理方法是将它改成其他名字。如果不是上述原因,这意味着是 cvs 的 bug (参阅 )。
rcs error: Unknown option: -x,v/
这条消息之后会紧跟着 rcs 的使用方法。这意味着你使用的是旧版本的 rcs (也许是你的操作系统提供的),和旧版本的 cvs。在 cvs 1.9.18 和更早的版本只与 rcs 5 及以后的版本一起工作; 当前版本的 cvs 不再需要运行 rcs 程序。
cvs [server aborted]: received broken pipe signal
这条消息是因为 loginfo 程序从标准输入读取所有的日志信息失败造成。如果你发现它在其他环境下产生,请让我们知道,见 。
'root' is not allowed to commit files
当提交一个永久性的更改,cvs 会为提交修改的人建立一个日志条目。如果你的提交被当作 "root" (不是使用 "su" 或者其他具有 root 授权的程序) 记录,cvs 将无法判断是谁做了真正的修改。正因为此,CVS 默认不允许登录为 "root" 来提交。(你可以在 configure 里面加上 --enable-rootcommit 选项并重新编译来禁止此选项。在有些系统上面需要在编译 cvs 前修改对应的 config.h 文件)。
cvs [server aborted]: Secondary out of sync with primary!
这通常出现在 cvs 运行在一个第二服务器上面,并且与第一服务器的版本不兼容 (参阅 )。如果客户端支持重定向,将不会发生。
这里版本号并不重要,但是支持列表需要服务器提供给客户端。例如,即使两台服务器使用相同的版本,如果第二服务器编译的有 GSSAPI 支持,然而第一服务器没有,那么两个服务器提供的支持列表会不同,并且第二服务器将不能作为第一服务器的传输代理。反之,如果两个服务器版本不同,但都提供相同的客户端请求支持,那么传输代理可以成功。
Terminated with fatal signal 11
该信息表示 cvs (服务器,如果你使用的是客户端/服务器模式) (虚拟)内存溢出。虽然 cvs 尽力捕获错误并给出有意义的信息,在有些条件下仍无法获得。如果你有大量的系统内存,这个问题可能存在于系统对单一进程或类似限制可以使用的内存。显示和设置这种限制的方法因系统而不同,如果你不知道如何处理,请询问你所使用系统的专家。
Too many arguments!
一般该消息是 log.pl 脚本打印,此脚本位于 cvs 源码发布版的 contrib 目录下面。在某些版本的 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 [update aborted]: unexpected EOF reading file,v
参见 `EOF in key in RCS file'.
cvs [login aborted]: unrecognized auth response from server
这个消息一般是指服务器没有正确建立。例如,inetd.conf 指向了一个不存在的 cvs 执行文件。为了进一步调试,请查找 inetd 的日志文件(/var/log/messages 或者其他你系统里面 inetd 所采用的)。详细情况,参阅 ,和 。
cvs commit: Up-to-date check failed for `file'
它的意思是自从你上次 cvs update 以后,有人提交了这个文件的修改。所以,在进行 cvs commit 之前需要先 cvs update。cvs 将合并你与他人所做的修改。如果没有检测到冲突,将提示 `M file',你可以进行 cvs commit。如果发现冲突,将打印 `C file',你需要手动解决冲突。要了解更详细的处理过程,见 。
Usage: diff3 [-exEX3 [-i | -m] [-L label1 -L label3]] file1 file2 file3
Only one of [exEX3] allowed
这指明了安装 diff3 和 rcsmerge 的问题。特别是 rcsmerge 编译需要寻找 GNU diff3,但由搜索到的 unix diff3 替代。确切的消息内容会根据不同的系统变化。最简单的解决方法是升级当前的 cvs 版本,它不再需要使用外部的 rcsmerge 或 diff3 程序。
warning: unrecognized response `text' from cvs server
假如 text 包含有意义的回答(像 `ok'),跟随着一个额外的回车符(在某些系统上,这会使第二部分的消息覆盖第一部分),那么也许是你用 `:ext:' 访问方式所采用的 rsh 程序,如非 unix 的 rsh 版本,它们默认不提供传输数据报文。在这种情况下,你也许需要采用 `:server:' 替代 `:ext:'。如果 text 是其他内容,它预示着你的 cvs 服务器有问题。请再次确认安装是否符合 cvs 服务器架设的要求。
cvs commit: [time] waiting for user's lock in directory
这是一条普通消息,不是错误。参见 Concurrency 了解详细情况。
cvs commit: warning: editor session failed
这是指 cvs 使用的编辑器返回了非零状态。一些版本的 vi 即使编辑正常也会这样。那么将 CVSEDITOR 环境变量指向一个小的脚本,如:
#!/bin/sh
vi $*
exit 0
cvs update: warning: file was lost
这意味着 file 的工作副本被删除,但并没有从 cvs 清除。不必担心,update 将从仓库重建本地文件。(这也是放弃本地更改的常用方法: 删除它,然后执行 cvs update)。
cvs update: warning: file is not (any longer) pertinent
这意味着 file 的工作副本已经删除,但在当前的工作目录里面没有使用 cvs 删除,但却在其他的工作目录中用 cvs 删除。不必担心,update 将彻底删除本地的文件。
chinaunix网友2008-04-08 20:52:58
请问一下,您知道 cvs [login aborted]: Error reading from server 168.5.130.95: -1: No such file or directory 是什么问题吗?急死我了。