2015-09-19 284 views
0

我最近接手了一些RPM工作,而我们的一位同事不在。在后期安装步骤中,RPM将某些库安装在特定位置,将文件写入/etc/ld.conf.so.d/,其中包含这些文件的路径,然后运行“ldconfig”。但是当调用完成后,很少有消息指出:“libXYZ.so *不是符号链接”。ldconfig:* .so *不是符号链接

我看着文件和sym链接没有正确设置。例如,libA.so.1和libA.so.1.1是相同的文件,而不是libA.so.1-> libA.so.1.1。只要在安装了RPM的系统上运行ldconfig,就会显示这些消息。

现在没有特别的原因,我尝试通过创建一个名为libmylib.so.1.1的共享库来复制它。然后我创建了另一个名为libmylib.so.1的文件,它与前一个文件相同。我添加了一个test.conf文件到/etc/ld.conf.so.d,其中包含这些共享库的路径,然后运行ldconfig。但是我没有看到任何这些“不是符号链接”的消息。相反,ldconfig为这两个文件设置了两个符号链接。该消息是否仅在特定情况下显示?

此外,当我安装的共享库,我需要设置链接,如:

连接器的名称 - >这样的名称 - >实名

手动?然后运行ldconfig?

这是我第一次使用RPM和安装共享库,所以任何输入将不胜感激。

感谢

+0

没关系,我知道我做错了什么。现在获取该消息。 – muddy

+0

备注 - 请考虑在'/ etc/ld.conf.so.d'中放入的文件由普通'%install'进程生成并列在'%files'中,以便RPM数据库知道它来自哪里。 'rpm -q - whatprovides/etc/ld.conf.so.d/yourfile'对于管理员很有用。 –

+0

谢谢Aaron,我不确定安装人员目前是否这样做。如果它在%post期间写入该文件,它会被添加到RPM数据库中吗? – muddy

回答

0

常见的做法是使符号链接到相关的库版本,并SONAME建设/链接程序时使用的名称。以下是这几个意见:

预计LDCONFIG即只有一个实际的文件。这里是哪里这个问题已经被问了几个地方:

通常情况下,这方面的问题是由于符号链接的更新不当。但是不正确的构建脚本也可能是问题。