run 时:

    sudo /sbin/ldconfig

出现以下错误:

    /sbin/ldconfig: /usr/local/lib/ is not a symbolic link

当我运行file命令时,会出现以下情况:

    file /usr/local/lib/
    /usr/local/lib/: directory

/usr/local/lib/里面有三个我使用的库.我给他们打lib1lib2lib3.

现在,当我对二进制文件进行ldd运算时,结果是:

    lib1.so => not found
    lib2.so => not found
    lib3.so => /usr/local/lib/lib3.so (0x00216000)

但它们都和/usr/local/lib/{lib1,lib2,lib3}.so放在同一个文件夹里.

每次我运行ldconfig,都会出现相同的错误:

/usr/local/lib/ is not a symbolic link

我认为/usr/local/lib应该在/etc/ld.conf.d/*.conf年申报两次,但不是:

    sudo egrep '\/usr\/local' /etc/ld.so.conf.d/*
    projectA.conf.old:/usr/local/projectA/lib
    local.conf:/usr/local/lib

ld.so.conf只包括/etc/ld.so.conf.d/*.conf,所以这*.old没有被处理,它指的是/usr/local/projectA/lib.

经过一段时间的try ,我删除了所有的lib1和lib2(在某个时候,我在binary的文件夹中测试了它),同样的错误也发生了.

推荐答案

我在Oracle 11R2客户端遇到了这个问题.我不确定是Oracle安装人员做的,还是有人在我来之前做的.它不是64位对32位,而是64位.

错误在于libexpat.so.1不是一个符号链接.

原来有两个完全相同的文件,libexpat.so.1.5.2libexpat.so.1.删除有问题的文件并使其成为1.5.2版本的符号链接,导致错误消失.

有道理的是,您希望将已知名称作为指向当前版本的符号链接.如果你这样做了,你就不太可能最终得到一个陈旧的库.

Linux相关问答推荐

将UTC字符串日期时间转换为毫秒UTC时间戳

如何告诉链接器不要在链接的共享库中查找某些符号?

匹配模式和提取

jinja2.exceptions.TemplateSyntaxError:预期标记,,得到整数(支持十六进制,八进制和二进制整数文字)

Linux内核模块构建过程中,许可信息添加了前缀

从另一个文件中的大文件中查找行的最快方法

如何使用 ftrace 过滤查看函数上方的调用堆栈?

具体来说,fork() 如何处理 Linux 中 malloc() 动态分配的内存?

Linux C程序:如何找到函数所属的库

为什么这个命令会杀死我的 shell?

是否可以在 Linux x86 GAS 程序集中创建没有系统调用的线程?

模拟器在内核映像文件中找不到Linux 版本字符串

grep 时间命令输出

如何设置errno值?

Ant 找不到 javac,在 Ubuntu 上不会设置 JAVA_HOME

从命令行导入 PostgreSQL CSV

如何为 Git 命令设置自动完成功能?

如何在redhat linux上安装maven

在linux中将制表符分隔的文件转换为csv的最快方法

如何用逗号而不是空格分割列表