今天在一台sun solaris 5.10系统使用vi报错:
# vi a
Unable to setup term:'unknown' missing in the terminfo database: No such file or directory
从这个信息我们很难定位问题,我们用truss命令跟踪一下vi的命令需要调用那些东西:
# truss vi
execve("/usr/bin/vi", 0xFFBFFE1C, 0xFFBFFE24) argc = 1
resolvepath("/usr/lib/ld.so.1", "/lib/ld.so.1", 1023) = 12
resolvepath("/usr/bin/vi", "/usr/bin/vi", 1023) = 11
stat("/usr/bin/vi", 0xFFBFFBF8) = 0
open("/var/ld/ld.config", O_RDONLY) Err#2 ENOENT
stat("/lib/libmapmalloc.so.1", 0xFFBFF718) Err#2 ENOENT
......
access("/usr/share/lib/terminfo/", F_OK) = 0
Unable to setup term:'unknown' missing in the terminfo databasewrite(2, " U n a b l e t o s e".., 63) = 63
: write(2, " : ", 2) = 2
No such file or directorywrite(2, " N o s u c h f i l e".., 25) = 25
write(2, " ", 1) = 1
_exit(1)
从跟踪信息可以看到,vi是在查找/usr/share/lib/terminfo/的文件时报错。
我们看看这个命令下的文件:
bash-3.00# cd /usr/share/lib/terminfo
bash-3.00# ls
G t w y z
找一个可以正常使用vi的系统看看有那些文件:
# cd /usr/share/lib/terminfo
# ls
1 3 5 7 9 B H P a c e g i k m o q s u w y
2 4 6 8 A G M S b d f h j l n p r t v x z
可以发现,两者相差很大。把vi出错的系统缺失的文件拷贝回去,vi就可以正常运行了。
实际上,要使vi正常运行,只需要拷贝文件夹v下面的文件过去即可。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63850/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/231499/viewspace-63850/