linux缺少动态链接库-如vi的libperl.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了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值