使用 openssl 1.0.x 构建 curl,ldd 显示对 0.9.8 和 1.0.x 的依赖

Building curl with openssl 1.0.x, ldd shows dependencies on both 0.9.8 and 1.0.x

在将 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 二进制文件显示对 0.9.8 和 1.0.0 的依赖关系libssl 和 libcrypto .so 文件。

这不是 openssl 的并行安装,我们正在删除 0.9.8 并重建依赖于它的所有包。由于 0.9.8 库不再在系统上,ldd 显示这些条目的 "not found"。 openssl 的头文件也更新了,所以它不包括旧的头文件。据我所知,系统上没有留下 0.9.8 的痕迹。

包括 openssh 和 wget 在内的其他软件包可以正常编译,并且只能动态地 link 针对 1.0.0 .so 文件。

我知道问题出在哪里了。旧的 curl 仍然安装,两个版本都有 libcurl.so.4。在安装 rpm 或 运行 构建目录中的新 curl 时,系统会将其链接到旧的 libcurl.so.4。所以 rpm 将 0.9.8 .so 文件列为依赖项。我删除了旧的 curl rpm 包并重建了它。