lunix so文件找不處處理方法

vim: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directorylinux


當運行vi或者vim時,報告以下錯誤:vim

vim: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory spa


解決方案 .net

出現相似錯誤是因爲缺乏相關的庫文件(*.so文件)形成的get

可能的緣由是版本不匹配或者沒有安裝相應的rpm文件thread


首先要執行的文件在那裏,用which命令test

[root@test  /root]# which viobject

alias vi='vim'file

/usr/bin/vimperl

[root@test  /root]#

便可看到vi命令在/usr/bin/vim路徑


而後使用ldd命令確認這個程序執行須要哪些動態連接庫

[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)


上邊輸出的結果中,有一行是:

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到系統的lib目錄中便可

ln -s /usr/lib/perl5/5.8.3/i386-linux-thread-multi/CORE/libperl.so /lib/libperl.so


而後在運行ldd /usr/bin/vi確認是否找到了so文件

若是找到的話就ok了

相關文章
相關標籤/搜索