Centos ldconfig:*.so*不是符号链接

Centos ldconfig:*.so*不是符号链接,centos,shared-libraries,rpm,Centos,Shared Libraries,Rpm,我最近在一位同事不在的时候接管了一些RPM工作。在安装后步骤中,RPM在特定位置安装一些库,将包含这些文件路径的文件写入/etc/ld.conf.so.d/,然后运行“ldconfig”。但是当调用时,很少有消息表明:“libXYZ.so*不是一个符号链接” 我查看了文件,发现sym链接设置不正确。例如,libA.so.1和libA.so.1.1是相同的文件,而不是libA.so.1->libA.so.1.1。只要在安装了RPM的系统上运行ldconfig,就会显示这些消息 现在,没有特别的原因

我最近在一位同事不在的时候接管了一些RPM工作。在安装后步骤中,RPM在特定位置安装一些库,将包含这些文件路径的文件写入/etc/ld.conf.so.d/,然后运行“ldconfig”。但是当调用时,很少有消息表明:“libXYZ.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的文件,它与前面的文件相同。我在/etc/ld.conf.so.d中添加了一个test.conf文件,其中包含这些共享库的路径,然后运行了ldconfig。但我没有看到这些“非符号链接”的信息。相反,ldconfig设置了两个指向这两个文件的符号链接。该信息是否仅在特定情况下显示

此外,在安装共享库时,是否需要设置以下链接:

链接器名称->so名称->真实名称

手动?然后运行ldconfig

这是我第一次使用RPM并安装共享库,因此任何输入都将不胜感激


感谢

通常的做法是制作符号链接,将库版本和soname与构建/链接程序时使用的名称关联起来。以下是一些评论:

ldconfig期望只有一个实际文件。这里有几个地方提出了这个问题:


通常,这方面的问题是由于符号链接更新不当造成的。但是错误的构建脚本也可能是问题所在。

通常的做法是创建符号链接,将库版本和soname与构建/链接程序时使用的名称关联起来。以下是一些评论:

ldconfig期望只有一个实际文件。这里有几个地方提出了这个问题:


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

伙计们,没关系,我知道我做得不对。请注意下面的消息。请注意将文件放在<代码> /ETC/LD。CON..D.<代码>由正常<代码> %Su安装< /Cuff>进程生成,并在 %file >代码中列出,以便RPM数据库知道它是从哪里来的。code>rpm-q——提供什么/etc/ld.conf.so.d/yourfile对管理员很有用。谢谢Aaron,我不确定安装程序现在是否这样做。如果它在%post期间写入该文件,是否将其添加到RPM数据库?否,仅当它在
%files
部分中列出(或导入)时。
%post
应该只调用
ldconfig
。别介意,伙计们,我知道我做错了什么。请注意下面的消息。请注意将文件放在<代码> /ETC/LD。CON..D.<代码>由正常<代码> %Su安装< /Cuff>进程生成,并在 %file >代码中列出,以便RPM数据库知道它是从哪里来的。code>rpm-q——提供什么/etc/ld.conf.so.d/yourfile对管理员很有用。谢谢Aaron,我不确定安装程序现在是否这样做。如果它在%post期间写入该文件,是否将其添加到RPM数据库?否,仅当它在
%files
部分中列出(或导入)时。
%post
应该只调用
ldconfig