我正在尝试在将openssl从0.9.8更新到1.0.x后,在我们的自定义Linux发行版上构建curl 7.41.0。我尝试过1.0.1m和1.0.2a。在curl .so库上运行ldd正确地显示了libssl.so.1.0.0和libcrypto.so.1.0.0,但是curl二进制文件显示了对libssl和libcrypto .so文件的BOTH 0.9.8和1.0.0的依赖关系。 / p>
这不是openssl的并行安装,我们正在删除0.9.8并重建依赖它的所有软件包。由于0.9.8库不再在系统上,因此ldd对这些条目显示“未找到”。 openssl的头文件也会更新,所以它不包括旧头文件。我所知道的系统上没有留下0.9.8的痕迹。
包括openssh和wget在内的其他软件包编译正常,只能动态链接1.0.0 .so文件。
答案 0 :(得分:1)
我弄清楚问题是什么。旧的curl仍然安装,两个版本都有libcurl.so.4。在构建rpm或在安装之前从构建目录运行新curl时,系统将其与旧的libcurl.so.4相链接。因此rpm将0.9.8 .so文件列为依赖项。我删除了旧的curl rpm包并重新构建它。