當(dāng)運行vi或者vim時,報告如下錯誤:
vim: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory?
解決方案
出現(xiàn)類似錯誤是由于缺少相關(guān)的庫文件(*.so文件)造成的
可能的原因是版本不匹配或者沒有安裝相應(yīng)的rpm文件
首先要執(zhí)行的文件在那里,用which命令
[root@test /root]# which vi
alias vi='vim'
/usr/bin/vim
[root@test /root]#
即可看到vi命令在/usr/bin/vim路徑
然后使用ldd命令確認(rèn)這個程序執(zhí)行需要哪些動態(tài)鏈接庫
[root@test /root]# ldd /usr/bin/vim
libncurses.so.5 => /usr/lib/libncurses.so.5 (0x40017000)
libacl.so.1 => /lib/libacl.so.1 (0x40058000)
libgpm.so.1 => /usr/lib/libgpm.so.1 (0x4005e000)
libperl.so => not found
libutil.so.1 => /lib/libutil.so.1 (0x40063000)
libm.so.6 => /lib/libm.so.6 (0x40066000)
libc.so.6 => /lib/libc.so.6 (0x40088000)
libdl.so.2 => /lib/libdl.so.2 (0x401ad000)
libpthread.so.0 => /lib/libpthread.so.0 (0x401b0000)
libattr.so.1 => /lib/libattr.so.1 (0x40201000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
上邊輸出的結(jié)果中,有一行是:
libperl.so => not found
可以確定為缺少這個文件而不能運行
通過文件名,大致可以判斷這個文件屬于perl的rpm包
使用rpm -ql perl | grep libperl.so
通常可以找到這個文件的位置
[root@test /root]# rpm -ql perl | grep libperl.so
/usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so
[root@test /root]#
將這個文件做個link到系統(tǒng)的lib目錄中即可
ln -s /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so /lib/libperl.so
然后在運行l(wèi)dd /usr/bin/vi確認(rèn)是否找到了so文件
如果找到的話就ok了