科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道运行Vim时报告缺少so无法启动

运行Vim时报告缺少so无法启动

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

出现类似vim: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory 错误是由于缺少相关的库文件(*.so文件)造成的。 

2008年3月17日

关键字: 操作系统 Linux LIB RPM 服务器 vim

  • 评论
  • 分享微博
  • 分享邮件

    问题
    当运行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了

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章