Docker perl 的基本映像; E: 包 'libssl1.0.0' 没有安装候选
Docker base image for perl; E: Package 'libssl1.0.0' has no installation candidate
我有一个使用 perl:5.22 作为基础图像的 docker 文件
当我这样做时:
#Dockerfile:
From perl:5.22
RUN apt-get update && apt-get install libssl1.0.0 libssl-dev
我收到这个错误:
当我这样做时: docker 文件中的 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
我得到:
Step 2/3 : RUN apt-cache policy libssl1.0.0 && apt-cache policy
libssl-dev ---> Running in a60f0185ef5a libssl1.0.0:
Installed: (none)
Candidate: (none)
Version table:
libssl-dev:
Installed: 1.1.0f-3+deb9u2
Candidate: 1.1.0f-3+deb9u2
Version table:
*** 1.1.0f-3+deb9u2 500
500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
100 /var/lib/dpkg/status
1.1.0f-3+deb9u1 500
500 http://deb.debian.org/debian stretch/main amd64 Packages
没有可供安装的候选项libssl1.0.0
;我得到:
E: Package 'libssl1.0.0' has no installation candidate
但是有一个候选人要安装 libssl-dev
软件包,但是 none 用于 libssl1.0.0
我是 docker 的新手; the perl 5.22 base image 是否已经在映像中预装了 libssl1.0.0? 我在他们的基本映像中看不到它,其次, *如果没有候选者,我如何在我的 docker 文件中安装这个包 (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
给出:
Package: libssl-dev
Version: 1.1.0f-3+deb9u2
至于是否可以使用 1.1.0 而不是 1.0.0,这实际上取决于您的软件要求。
我有一个使用 perl:5.22 作为基础图像的 docker 文件 当我这样做时:
#Dockerfile:
From perl:5.22
RUN apt-get update && apt-get install libssl1.0.0 libssl-dev
我收到这个错误:
当我这样做时: docker 文件中的 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
我得到:
Step 2/3 : RUN apt-cache policy libssl1.0.0 && apt-cache policy libssl-dev ---> Running in a60f0185ef5a libssl1.0.0:
Installed: (none) Candidate: (none)
Version table: libssl-dev:
Installed: 1.1.0f-3+deb9u2
Candidate: 1.1.0f-3+deb9u2
Version table:
*** 1.1.0f-3+deb9u2 500 500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages 100 /var/lib/dpkg/status 1.1.0f-3+deb9u1 500 500 http://deb.debian.org/debian stretch/main amd64 Packages
没有可供安装的候选项libssl1.0.0
;我得到:
E: Package 'libssl1.0.0' has no installation candidate
但是有一个候选人要安装 libssl-dev
软件包,但是 none 用于 libssl1.0.0
我是 docker 的新手; the perl 5.22 base image 是否已经在映像中预装了 libssl1.0.0? 我在他们的基本映像中看不到它,其次, *如果没有候选者,我如何在我的 docker 文件中安装这个包 (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
给出:
Package: libssl-dev
Version: 1.1.0f-3+deb9u2
至于是否可以使用 1.1.0 而不是 1.0.0,这实际上取决于您的软件要求。