Docker RUN apt-get install-无法找到包



我有一个Dockerfile,它正在调用RUN apt-get install guile-2.0-dev

这个脚本是在Ubuntu 20.04.4LTS上使用命令"sudo docker build -f./Dockerfile -ttest:one ./"执行的。显示错误:

E: Unable to locate package guile-2.0-dev
E: Couldn't find any package by glob 'guile-2.0-dev'
E: Couldn't find any package by regex 'guile-2.0-dev'"

但是从Dockerfile调用的其他apt-get安装命令可以正常工作。我可以从我的终端运行apt-get install guile-2.0-dev命令。你能帮我在docker脚本中找出它失败的原因吗?

下面给出了一个示例脚本。Bison安装成功,但guile失败

FROM ubuntu
RUN apt-get update

ARG DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y bison
RUN apt-get update && apt-get install -y guile-2.0-dev

您的Dockerfile提取ubuntu,默认为latest标记,即jammy-jellyfish/22.04guile-2.0-dev在那个版本中不存在,它被升级到了guile-2.2-dev,所以你想做RUN apt-get update && apt-get install -y guile-2.2-dev

FROM ubuntu
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y bison guile-2.2-dev

如果您特别需要guile-2.0-dev,则需要FROM ubuntu:focal(v20.04(或FROM ubuntu:bionic(v18.04(,具体取决于您想要的Ubuntu。

FROM ubuntu:focal
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y bison guile-2.0-dev

另请参阅ubuntu软件包列表:https://packages.ubuntu.com/cgi-bin/search_packages.pl?keywords=guile&searchon=names&释放=所有

Package guile-2.0-dev
bionic (18.04LTS) (lisp): Development files for Guile 2.0
2.0.13+1-5build2: amd64 arm64 armhf i386 ppc64el s390x
bionic-updates (lisp): Development files for Guile 2.0
2.0.13+1-5ubuntu0.1: amd64 arm64 armhf i386 ppc64el s390x
focal (20.04LTS) (lisp): Development files for Guile 2.0 [universe]
2.0.13+1-5.4: amd64 arm64 armhf i386 ppc64el s390x
Package guile-2.2-dev
bionic (18.04LTS) (lisp): Development files for Guile 2.2 [universe]
2.2.3+1-3build1: amd64 arm64 armhf i386 ppc64el s390x
bionic-updates (lisp): Development files for Guile 2.2 [universe]
2.2.3+1-3ubuntu0.1: amd64 arm64 armhf i386 ppc64el s390x
focal (20.04LTS) (lisp): Development files for Guile 2.2
2.2.7+1-4: amd64 arm64 armhf i386 ppc64el s390x
impish (21.10) (lisp): Development files for Guile 2.2
2.2.7+1-6build1: amd64 arm64 armhf i386 ppc64el s390x
jammy (22.04LTS) (lisp): Development files for Guile 2.2
2.2.7+1-6build2: amd64 arm64 armhf i386 ppc64el s390x
kinetic (lisp): Development files for Guile 2.2 [universe]
2.2.7+1-6build2: amd64 arm64 armhf ppc64el s390x

这适用于最新的Ubuntu版本

apt-get install -y guile-2.2-dev

你可能需要冻结你使用的Ubuntu版本,然后你可以优化你的Dockerfile

FROM ubuntu:20.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update -y && apt-get install -y bison guile-2.0-dev

更新:

还有https://packages.ubuntu.com查找包裹的站点,例如

https://packages.ubuntu.com/search?suite=default&section=全部&arch=任意&keywords=guile-2.0-dev&searchon=名称