解決無法使用VI的問題

space6212發表於2019-03-30

今天在一臺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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章