Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 加载共享库时出错:libssl.so.10:无法在Docker中打开共享对象文件_Linux_Docker - Fatal编程技术网

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

Linux 加载共享库时出错:libssl.so.10:无法在Docker中打开共享对象文件,linux,docker,Linux,Docker,我正试图用特技创造一个形象 我的基本映像OS是 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 libss

我正试图用特技创造一个形象

我的基本映像OS是

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
下面的命令列出了lib

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

输出------->>

不过,下面的命令失败了

快跑./stunnel

错误:-

./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
来自
复制特技。
环境DEBIAN_前端非交互
运行apt get-y更新&&\
apt get-y安装libssl1.0.0 libssl开发和\
ln-s libssl.so.1.0.0 libssl.so.10&&\
ln-s libcrypto.so.1.0.0 libcrypto.so.10
快跑./stunnel

故障模式表明您的
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.backwardwards-compatibility字段组成,加载程序使用该字段来确定给定的库文件是否存在(符号链接或其他)可能与应用程序请求的库匹配。如您所见,使用
ln
您声称ABI版本1与ABI版本10相同。这可能不会像预期的那样起作用


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

只需从此链接下载二进制软件包文件,并将libcrypto.so.1.0.0文件复制到/usr/lib即可
这就解决了问题

我在Ubuntu 19.10上安装RStudio时也遇到了类似的错误。它抱怨没有找到libssl.so.1.0.0和libcrypto.so.1.0.0。过了一段时间,我试图查找这些文件是否安装在我的系统上,因为试图手动安装它们从未起作用。我使用了
locate
命令,如下所示:
找到libssl

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

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

我对
libcrypto.so.1.0.0
lib文件也做了同样的操作

然后我又试着运行RStudio,它成功了


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

您能提供一个而不是几个命令吗?一个不依赖于其他非共享文件来添加和复制的完整Dockerfile将允许我们复制它。
stunnel
是针对OpenSSL 1.1.0还是1.0.2构建的?它们不是二进制兼容的,您必须在系统上安装正确的。另请参见OpenSSL常见问题。@jww-当我运行stunnel时,它正在寻找libssl.so.10。我相信它使用的是libssl/so.1.0.0。我的stunnel verison是5.40。@BMitch-我已经更新了dockerfile。@user1578872,不幸的是,它不能为我生成。我没有那个基本映像,下一个复制命令将失败,而没有一个我不知道如何创建/下载的
stunnel
二进制文件。我在/usr/x86_64-linux-gnu/1.libssl.a 2.libssl.so 3.libssl.so.0.9.8 4.libssl3.so下有以下libs。为什么不选择现有库?
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