用于perl的Docker基础映像; E:包“libssl1.0.0”没有安装候选者

时间:2018-06-15 11:06:57

标签: perl ubuntu docker dockerfile libssl

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

我明白了:

  

步骤2/3:运行apt-cache策略libssl1.0.0&& apt-cache策略   libssl-dev --->在a60f0185ef5a libssl1.0.0中运行:
  已安装:(无)   候选人:(无)
  版本表:   中的libssl-dev的:
  安装:1.1.0f-3 + deb9u2
  候选人:1.1.0f-3 + deb9u2
  版本表:
  *** 1.1.0f-3 + deb9u2 500           500 http://security.debian.org/debian-security个stretch / updates / main amd64包           100 / var / lib / dpkg / status        1.1.0f-3 + deb9u1 500           500 http://deb.debian.org/debian stretch / main amd64包

无法安装 libssl1.0.0 ;我明白了:

  

E:包'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 之间存在差异吗?

1 个答案:

答案 0 :(得分:2)

实际上,它已默认安装。

ArrayList<ArrayList<String>> stylistIDArray;
ArrayList<ArrayList<String>> durationArray;
stylistIDArray = differentGenderServicesAdapter.getSelectedStylistIdArray();                
durationArray = differentGenderServicesAdapter.getSelectedDurArray();

ArrayList<String>stylistId = new ArrayList<>();
ArrayList<String>duration = new ArrayList<>();

for(int i=0; i<stylistIDArray.size(); i++) {
    stylistId = stylistIDArray.get(i);
    duration = durationArray.get(i);
}

perl图像基于debian:stretch,不再支持libssl1.0.0。您可以从jessie(https://packages.debian.org/jessie/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 进行安装。

示例Dockerfile添加:

dpkg

关于版本,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 给出:

  

包:libssl-dev

     

版本:1.1.0f-3 + deb9u2

如果您可以使用1.1.0而不是1.0.0,那实际上取决于您的软件要求。