我正在尝试使用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
答案 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,并且运行正常。
希望这对您有所帮助。但是请注意不要覆盖任何文件,否则可能会导致系统不稳定。