【发布时间】:2015-12-16 22:05:16
【问题描述】:
我最近在我们的一位同事不在时接手了一些 RPM 工作。在安装后步骤中,RPM 会在特定位置安装一些库,将包含这些文件路径的文件写入 /etc/ld.conf.so.d/,然后运行“ldconfig”。但是在调用时,很少有消息指出:“libXYZ.so* 不是符号链接”。
我查看了文件,但符号链接设置不正确。例如,libA.so.1 和 libA.so.1.1 是相同的文件,而不是 libA.so.1->libA.so.1.1。只要在安装了 RPM 的系统上运行 ldconfig,就会显示这些消息。
现在,没有什么特别的原因,我尝试通过创建一个名为 libmylib.so.1.1 的共享库来复制它。然后我创建了另一个名为 libmylib.so.1 的文件,它与之前的文件相同。我在 /etc/ld.conf.so.d 中添加了一个 test.conf 文件,其中包含这些共享库的路径,然后运行 ldconfig。但我没有看到任何这些“不是符号链接”的消息。相反,ldconfig 为这两个文件设置了两个符号链接。该消息是否仅在特定情况下显示?
另外,当我安装共享库时,是否需要设置如下链接:
链接器名称 -> so name -> 真实姓名
手动?然后运行ldconfig?
这是我第一次使用 RPM 并安装共享库,因此我们将不胜感激。
谢谢
【问题讨论】:
-
别介意伙计们,我知道我做错了什么。立即收到该消息。
-
附注 - 请考虑将放在
/etc/ld.conf.so.d中的文件由正常的%install进程生成并列在%files中,以便RPM 数据库知道它来自哪里。rpm -q --whatprovides /etc/ld.conf.so.d/yourfile对管理员很有用。 -
谢谢 Aaron,我不确定安装程序目前是否这样做。如果它在 %post 期间写入该文件,是否会将其添加到 RPM 数据库中?
-
否,仅当它在
%files部分中列出(或导入)时。%post应该只调用ldconfig。
标签: centos shared-libraries rpm