我有一个使用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-devlibssl1.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/

10-10 14:07