0

我已经在网上搜索了这个问题,但没有得到正确的答复。我正在运行一个需要 libcrypto.so.0.9.7 的内部应用程序。

但我不断收到以下错误:

 error while loading shared libraries: libcrypto.so.0.9.7: cannot open shared object file: No such file or directory

我在网上遇到了两种解决方案:

  1. 使用现有的 libcrypto 文件创建符号链接。
  2. 安装一些包含这个库文件的包。

我在 Fedora 系统上运行它。我无法在网上找到包含这个库的包。唯一可用的是 OpenSuse 和 Mandriva。

为了创建符号链接,我有一个 libcrypto.so.1.0.0h 和 libcrypto.so.1.0.0d 文件可用。我不确定是否允许我符号链接到较新的版本。

如果有人可以为这种情况提供合适的解决方案,那将是非常有帮助的,因为我在不同的系统中多次遇到过这种情况。

提前致谢!

4

1 回答 1

1

如果库是二进制兼容的,你有时可以避免创建符号链接,但在你的情况下,你在 0.X 和 1.X 版本之间,所以我猜他们不会。即使它确实运行,它也可能无法正常工作。

您可以尝试使用 rpmfind.net 等网站查找软件包,但通常您不会找到旧版本。

我认为第三种选择是从源代码重建 libcrypto。根据您构建和安装它的方式,您可能必须将一个新目录添加到您的 LD_LIBRARY_PATH 以使其找到新编译的共享对象。您可以从 openssl.org 下载源代码。

请注意,如果可能的话,我强烈建议您找到一种方法来针对最新版本的 OpenSSL 重建您的应用程序,以确保您不会受到最近的心脏出血安全问题的影响(请参阅heartbleed.com)。

于 2014-05-01T21:55:19.023 回答