【问题标题】:ldconfig loading only .so filesldconfig 仅加载 .so 文件
【发布时间】:2014-03-04 15:20:20
【问题描述】:

我正在尝试运行一个使用 libdnet 的程序(Snort),但找不到它并输出:

snort:加载共享库时出错:libdnet.1:无法打开 共享对象文件:没有这样的文件或目录

现在我知道我应该通过运行ldconfig 并将库的路径放在/etc/ld.so.conf 中来添加库。 libdnet 位于/usr/local/lib,所以我不必修改ld.so.conf,因为it already covers that dirctory。所以我运行了以下命令并跟踪输出,我注意到我的库没有被加载。

ldconfig -v

显然 ldconfig 仅加载名称中某处包含 .solibdnet.1 与模式不匹配的文件。
我已经从源代码构建了 libdnet 并使用 ./configure; make; make install 命令安装了它。除非必须,否则我宁愿不使用包管理器安装它。我该怎么办?

编辑:
它说here 库应该与模式lib*.so* 匹配,但我无法重命名库。我既没有做到,也没有在我自己的应用程序中使用它:如果我重命名它,它将被加载,但我认为 Snort 正在寻找 libdnet.1 而不是 libdnet.so.1

【问题讨论】:

    标签: linux shared-libraries snort


    【解决方案1】:

    找到答案here。解决方案很简单:制作与模式匹配的副本。

    cp /usr/local/lib/libdnet.1.0.1 /usr/local/lib/libdnet.so.1.0.1
    

    不太受欢迎的alternative

    $ LD_LIBRARY_PATH=/usr/local/lib
    $ export LD_LIBRARY_PATH
    

    【讨论】:

      猜你喜欢
      • 2015-12-16
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      相关资源
      最近更新 更多