加载共享库时出错:libssl.so.10:无法在Docker中打开共享对象文件

时间:2019-05-15 18:15:09

标签: linux docker

我正在尝试使用stunnel构建图像。

我的基本映像操作系统是

  

Linux 2338b11efbe1 4.9.93-linuxkit-aufs#1 SMP周三6月6日16:55:56 UTC   2018 x86_64 x86_64 x86_64 GNU / Linux

按如下所示安装libssl。

RUN apt-get -y update
RUN apt-get -y install libssl1.0.0 libssl-dev && \
    ln -s libssl.so.1.0.0 libssl.so.10 && \
    ln -s libcrypto.so.1.0.0 libcrypto.so.10

下面的命令列出了库。

  

运行ls libssl.so。* libcrypto.so *

输出------ >>>

libcrypto.so.10
libssl.so.10

仍然,下面的命令失败。

  

运行./tunnel

错误:-

  

./ stunnel:加载共享库时出错:libssl.so.10:无法   打开共享对象文件:没有这样的文件或目录

我在这里错过了其他任何说明吗?

这是我完整的dockerfile。

from <BASE_IMAGE>
COPY stunnel .
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y update && \
    apt-get -y install libssl1.0.0 libssl-dev && \
    ln -s libssl.so.1.0.0 libssl.so.10 && \
    ln -s libcrypto.so.1.0.0 libcrypto.so.10
RUN ./stunnel

3 个答案:

答案 0 :(得分:0)

失败模式表明您的libssl.so.10是断开的符号链接。表示文件libssl.so.1.0.0不存在。

即使符号链接的目标不存在(例如),ln -s libssl.so.1.0.0 libssl.so.10之类的命令也会成功执行。断开的符号链接上的普通ls也不会报告任何不良情况。

如果要确保符号链接没有断开,请用test -e检查每个符号链接。

更具体地说,将ln -s libssl.so.1.0.0 libssl.so.10用作某种“修复”表示您还有其他问题:soname的版本组件由abi-version.patch-level.backwards-compatibility字段组成,并且由加载程序,以确定给定的库文件(符号链接或其他)是否可能与应用程序请求的库匹配。如您所见,您使用ln声称ABI版本1与ABI版本10相同。这可能无法正常工作。

最后,您的ln命令使用相对路径,因此您可能在错误的目录中工作-因此,为什么最终创建损坏的符号链接。在基于Debian的系统上,libssl.so通常可以在/usr/lib/x86_64-linux-gnu/中找到。 x86_64-linux-gnu位取决于体系结构(由Debian多体系结构支持定义),此特定示例对64位x86代码有效。

答案 1 :(得分:0)

只需从此链接https://rosa.pkgs.org/2014.1/rosa-main-updates-x86_64/lib64crypto1.0.0-1.0.2q-1-rosa2014.1.x86_64.rpm.html下载二进制软件包文件,然后将libcrypto.so.1.0.0文件复制到/ usr / lib 这样就解决了问题!

答案 2 :(得分:0)

在Ubuntu 19.10上安装RStudio时遇到类似的错误。它抱怨找不到libssl.so.1.0.0和libcrypto.so.1.0.0。一段时间后,我尝试确定这些文件是否在系统上安装,因为尝试手动安装它们从未起作用。我像这样使用locate命令: locate libssl

This image shows the output of the locate command

输出显示“缺失”库实际上已安装在我的系统上。 然后,我尝试查看lib(即/lib/目录)文件夹,但从未找到这些文件。因此,我尝试将它们从定位命令的输出中推断出它们的路径复制到/lib/目录中,如下所示:

$sudo cp /snap/core/7917/lib/x86_64-linux-gnu/libssl.so.1.0.0 /lib/

我对libcrypto.so.1.0.0 lib文件做了同样的事情。

然后我尝试再次运行RStudio,并且运行正常。

希望这对您有所帮助。但是请注意不要覆盖任何文件,否则可能会导致系统不稳定。