我有一个使用perl:5.22作为基本镜像的dockerfile
当我做:
#Dockerfile:
From perl:5.22
RUN apt-get update && apt-get install libssl1.0.0 libssl-dev
我收到此错误:
当我这样做时:dockerfile中的
sudo apt-cache policy libssl1.0.0
,如下所示:#Dockerfile:
From perl:5.22
RUN apt-cache policy libssl1.0.0 && \
apt-cache policy libssl-dev
RUN apt-get update && apt-get install libssl1.0.0
我得到:
没有可用的候选人来安装
libssl1.0.0
;我得到:但是,有一个候选人可以安装
libssl-dev
软件包,但没有安装 libssl1.0.0
我是docker的新手; the perl 5.22 base image是否已经预安装了镜像中的libssl1.0.0? 我在其基本镜像中看不到它,其次, *如果没有可用的候选人安装,如何在我的dockerfile中安装此软件包
(libssl1.0.0)
?最后,由于基本镜像已经预装了libssl-dev,我可以使用这个软件包
libssl-dev
而不是libssl1.0.0, libssl-dev
和libssl1.0.0
之间有区别吗? 最佳答案
实际上,默认情况下已经安装了它。
$ docker run -it perl:5.22 /bin/bash
root@e5315bc25223:~# apt search libssl
Sorting... Done
Full Text Search... Done
libssl-dev/now 1.1.0f-3+deb9u2 amd64 [installed,local]
Secure Sockets Layer toolkit - development files
libssl1.0.0/now 1.0.1t-1+deb8u8 amd64 [installed,local]
Secure Sockets Layer toolkit - shared libraries
Perl镜像基于debian:stretch,它不再支持libssl1.0.0。您可以从jessie(https://packages.debian.org/jessie/libssl1.0.0)中提取软件包,并使用
dpkg
安装。样本Dockerfile添加:
RUN wget "http://security.debian.org/debian-security/pool/updates/main/o/openssl/libssl1.0.0_1.0.1t-1+deb8u8_amd64.deb" \
&& dpkg -i libssl1.0.0_1.0.1t-1+deb8u8_amd64.deb
关于版本,
apt show libssl-dev
提供:就可以使用1.1.0代替1.0.0而言,这实际上取决于软件的要求。
关于perl - Perl的Docker基础镜像; E:软件包 'libssl1.0.0'没有候选安装,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50874328/