我在网上搜索了这个问题,但我没有得到适当的回复。 我正在运行一个需要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
我在网上遇到了两个解决方案:
我在fedora系统上运行它。我无法在网上找到包含此库的软件包。唯一可用的是OpenSuse和Mandriva。
为了创建符号链接,我有一个libcrypto.so.1.0.0h和libcrypto.so.1.0.0d文件可用。我不确定我是否可以使用符号链接到更新的版本。
如果有人能够为这种情况提供合适的解决方案,那将是很有帮助的,因为我已经在不同的系统中多次面对它。
提前致谢!
答案 0 :(得分:1)
如果库是二进制兼容的,你有时可以创建符号链接,但在你的情况下,你会在0.X和1.X版本之间进行,所以我猜他们不会。即使它确实运行它可能无法正常工作。
您可以尝试使用rpmfind.net等网站查找软件包,但通常您不会找到旧版本。
我认为第三种选择是从源代码重建libcrypto。根据您构建和安装它的方式,您可能必须向LD_LIBRARY_PATH添加一个新目录,以使其找到新编译的共享对象。您可以从openssl.org下载源代码。
请注意,如果可能的话,我强烈建议您找到一种方法来针对最新版本的OpenSSL重建您的应用程序,以确保您不会受到最近的心脏安全问题的影响(请参阅{{3} })。