我想尝试在Debian容器中安装cdebconf-udeb
,但是apt search cdebconf-udeb
显示为空。如果我真的想安装这个软件包,我怎么能试着安装。
我在建立一个码头形象。我的一个依赖项是tzdata
,它本身依赖于debconf-2.0
(或debconf
)。
现在,debconf-2.0
可以由cdebconf
、debconf
或cdebconf-udeb
提供。cdebconf
和debconf
都(递归)依赖于perl-base
。我希望最小化容器的大小,并消除Perl依赖项。我想我可以通过安装cdebconf-udeb
来尝试这一点,它不具有Perl依赖性,仍然可以提供debconf-2.0
。然而,似乎我找不到这个包裹的资质。
我知道cdebconf-udeb
只用于构建Debian映像,而不是普通的Debian系统。然而,如果我能用它来最小化我的码头形象,我还是想试一试。
我可以安装cdebconf-udeb
来最小化我的码头容器吗?
我知道这个类似的问题,但是在评论中有人建议我问一个新的问题。
发布于 2021-02-23 15:02:05
这是一种减少容器大小的有趣方法!任何相关的危险都将限于生成的容器图像.
apt
& co.不知道如何处理微deb
S,所以你需要自己做他们的工作.对于cdebconf-udeb
来说,这意味着下载适合您的目标体系结构(S)的udeb
,以及libc6-udeb
、libdebian-installer4-udeb
和libtextwrap1-udeb
的。然后,您可以使用dpkg -i
安装所有这些。因为微deb
S不使用多重架构,图书馆不会与他们的“大哥”发生冲突。
在某些情况下,您将得到重复的库,我不确定micro-deb
变体是否包含标准变体所支持的所有特性,因此您可能会遇到问题。同样的情况也适用于任何依赖于您最终会放弃的基本包,比如perl-base
(包不应该声明它们对基本包的依赖,除非它们需要版本依赖;任何包都可以假定所有必需的包都已安装)。
发布于 2021-02-23 16:31:33
根据斯蒂芬的回答,我试图如下:
# docker build --tag udeb-experiment --file ./Dockerfile .
FROM debian:buster-slim
RUN apt-get update \
&& apt-get install --quiet --yes --no-install-recommends \
wget \
&& apt-get clean \
&& mkdir /tmp/debs \
&& cd /tmp/debs \
&& wget http://ftp.de.debian.org/debian/pool/main/g/glibc/libc6-udeb_2.28-10_amd64.udeb \
&& wget http://ftp.de.debian.org/debian/pool/main/c/cdebconf/cdebconf-udeb_0.249_amd64.udeb \
&& wget http://ftp.de.debian.org/debian/pool/main/libd/libdebian-installer/libdebian-installer4-udeb_0.119_amd64.udeb \
&& wget http://ftp.de.debian.org/debian/pool/main/libt/libtextwrap/libtextwrap1-udeb_0.1-14.2_amd64.udeb \
&& dpkg -i --force overwrite ./*.udeb \
&& apt-get purge --auto-remove --yes --allow-remove-essential \
wget \
&& apt-get clean \
&& rm --recursive --force /var/lib/apt/lists/* /tmp/debs
这用udebs覆盖了一些库。但是,这不会减少大小,也不会消除perl的依赖关系。Apt仍然列出debconf
及其安装的依赖项。此外,这也导致了我想要安装的其他软件包的下游问题。
https://unix.stackexchange.com/questions/635991
复制相似问题