lunix so文件找不到处理方法

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


当运行vi或者vim时,报告如下错误:

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


解决方案 

出现类似错误是由于缺少相关的库文件(*.so文件)造成的

可能的原因是版本不匹配或者没有安装相应的rpm文件


首先要执行的文件在那里,用which命令

[root@test  /root]# which vi

alias vi='vim'

/usr/bin/vim

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


你可能感兴趣的:(lunix so文件找不到处理方法)