데비안에 udeb 패키지를 설치하는 방법은 무엇입니까?

데비안에 udeb 패키지를 설치하는 방법은 무엇입니까?

설치해 보려고 합니다cdebconf-udebDebian Buster Docker 컨테이너에 있지만 apt search cdebconf-udeb결과는 비어 있습니다. 정말로 원할 경우 이 패키지를 설치하려면 어떻게 해야 합니까?

문맥

Docker 이미지를 구축 중입니다. 내 의존성 중 하나는tzdata그것은 그 자체에 달려있다debconf-2.0(또는 debconf).

지금debconf-2.0cdebconfdebconf, 또는 에서 제공할 수 있습니다 cdebconf-udeb. cdebconf둘 다 debconf에 (재귀적) 종속성을 갖습니다 perl-base. 컨테이너의 크기를 최소화하고 Perl 종속성을 제거하고 싶습니다. cdebconf-udebPerl 종속성이 없고 여전히 제공되는 패키지를 설치하여 시도해 볼 수 있다고 생각했습니다 debconf-2.0. 그러나 적성에서 패키지를 찾을 수 없는 것 같습니다.

cdebconf-udeb나는 이것이 debian-installer 이미지를 빌드하는 데만 사용되며 일반 데비안 시스템에는 사용되지 않는다는 것을 알고 있습니다 . 하지만 여전히 이를 사용하여 Docker 이미지를 최소화할 수 있는지 확인하고 싶었습니다.

내가 설치해도 돼?cdebconf-udebDocker 컨테이너를 최소화하시겠습니까?

알아요이 비슷한 질문, 하지만 댓글에서 새로운 질문을 하라는 제안을 받았습니다.

답변1

이것은 컨테이너의 크기를 줄이는 재미있는 방법입니다! 관련된 모든 위험은 결과 컨테이너 이미지로 제한됩니다...

apt& 회사는 마이크로소프트로 무엇을 해야할지 모르기 deb때문에 귀하가 직접 업무를 수행해야 합니다. 의 경우 cdebconf-udeb이는 udeb대상 아키텍처에 맞는 항목과 libc6-udeb, libdebian-installer4-udeb및 을 다운로드하는 것을 의미합니다 libtextwrap1-udeb. 그런 다음 dpkg -i.deb

~ 할 것이다경우에 따라 중복 라이브러리가 발생하고 deb마이크로 변형에 표준 변형에서 지원하는 모든 기능이 포함되어 있는지 확실하지 않으므로 문제가 발생할 수 있습니다. 결국 포기할 기본 패키지에 의존하는 모든 경우에도 마찬가지입니다. 예를 들어 perl-base패키지는 버전이 지정된 종속성을 요구하지 않는 한 기본 패키지에 대한 종속성을 선언해서는 안 됩니다. 모든 패키지는 모든 기본 패키지가 설치되어 있다고 가정할 수 있습니다.

답변2

Stephen의 답변을 바탕으로 다음을 시도했습니다.

# 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

그러면 일부 라이브러리가 udeb로 덮어쓰여집니다. 그러나 이는 크기를 줄이지 않으며 Perl 종속성을 제거하지도 않습니다. Apt는 여전히 debconf설치된 종속성을 나열합니다. 또한 이로 인해 설치하려는 다른 패키지에 다운스트림 문제가 발생했습니다.

관련 정보