도커: apt-utils 설치 문제 발생
설치하려고 합니다.apt-utils
도커에 있는 이유는 내가 막 했을 때.apt-get update
오류가 발생했습니다.debconf: delaying package configuration, since apt-utils is not installed
그래서 설치할 라인을 추가했습니다.apt-utils
(와 함께)curl
):
RUN apt-get update && apt-get install -y apt-utils && apt-get install -y curl
하지만 여전히 오류가 발생하여 제 명령이 제대로 작동하지 않았다고 생각하게 됩니다.아래는 제가 이미지를 구축하려고 할 때 출력한 것입니다.
Step 5/12 : RUN apt-get update && apt-get install -y apt-utils && apt-get install -y curl
---> Running in 6e6565ff01bd
Get:1 http://security.debian.org jessie/updates InRelease [94.4 kB]
Ign http://deb.debian.org jessie InRelease
Get:2 http://deb.debian.org jessie-updates InRelease [145 kB]
Get:3 http://deb.debian.org jessie Release.gpg [2420 B]
Get:4 http://deb.debian.org jessie Release [148 kB]
Get:5 http://security.debian.org jessie/updates/main amd64 Packages [624 kB]
Get:6 http://deb.debian.org jessie-updates/main amd64 Packages [23.0 kB]
Get:7 http://deb.debian.org jessie/main amd64 Packages [9098 kB]
Fetched 10.1 MB in 6s (1541 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
libapt-inst1.5
The following NEW packages will be installed:
apt-utils libapt-inst1.5
0 upgraded, 2 newly installed, 0 to remove and 24 not upgraded.
Need to get 537 kB of archives.
After this operation, 1333 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian/ jessie/main libapt-inst1.5 amd64 1.0.9.8.4 [169 kB]
Get:2 http://deb.debian.org/debian/ jessie/main apt-utils amd64 1.0.9.8.4 [368 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 537 kB in 0s (557 kB/s)
Selecting previously unselected package libapt-inst1.5:amd64.
(Reading database ... 21676 files and directories currently installed.)
Preparing to unpack .../libapt-inst1.5_1.0.9.8.4_amd64.deb ...
Unpacking libapt-inst1.5:amd64 (1.0.9.8.4) ...
Selecting previously unselected package apt-utils.
Preparing to unpack .../apt-utils_1.0.9.8.4_amd64.deb ...
Unpacking apt-utils (1.0.9.8.4) ...
Setting up libapt-inst1.5:amd64 (1.0.9.8.4) ...
Setting up apt-utils (1.0.9.8.4) ...
Processing triggers for libc-bin (2.19-18+deb8u10) ...
Reading package lists...
Building dependency tree...
Reading state information...
curl is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 24 not upgraded.
Removing intermediate container 6e6565ff01bd
---> f65e29c6a6b9
Step 6/12 : RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
---> Running in f5764ba56103
Detected operating system as debian/8.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing debian-archive-keyring which is needed for installing
apt-transport-https on many Debian systems.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/github_git-lfs.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.
The repository is setup! You can now install packages.
Removing intermediate container f5764ba56103
---> a4e64687ab73
무엇이 원인이며 어떻게 해결할 수 있습니까?
이것은 실제로 오류가 아니며 무시해도 무방합니다.많은 컨테이너 이미지를 구축했습니다.apt-utils
이 경고 메시지와 관계없이 모든 패키지 설치가 완료되고 정상적으로 작동합니다.
어쨌든, 당신이 원한다면,apt-utils
설치합니다.이 경고를 한 번 준 다음 다음 다음 호출을 위해 사라집니다.apt-get
(자신의 로그에서 볼 수 있듯이,curl
해당 메시지 없이 설치됨).
설치하는 경우 참고apt-utils
이제 설치 관리자가 대화형 구성을 실행할 수 있으며 이를 시도했다가 실패하기 때문에 다른 경고가 표시됩니다.이러한 구성을 억제하고 기본값과 대화형 구성을 가진 패키지를 사용하려면 다음을 실행합니다.apt-get
다음과 같이:DEBIAN_FRONTEND=noninteractive apt-get install -y pkgs....
인터넷을 통해 검색한 후, 나는 언급할 가치가 있는 몇 가지 대안을 찾았습니다, 매번 그것을 넣는 것 대신에.DEBIAN_FRONTEND=noninteractive
앞에apt-get install -y {your-pkgs}
:
대안 1: ARG DEBIAN_FRONTEND= 비대화형
중요:피드백에 따르면 대안 2와 3은 대부분에게 효과가 있는 반면 대안 1은 효과가 없습니다.이러한 이유로 이 대안은 삭제되지만 추적 가능성과 완전성을 위해 유지됩니다.
ARG 명령어는 사용자가 빌드 시 --build-arg = 플래그를 사용하여 docker build 명령어로 Builder에 전달할 수 있는 변수를 정의합니다. (참조: [6])
솔루션 특성:
ARG
지침은 빌드 중에만 설정됩니다.- '비인터랙티브' 옵션은 빌드 시간에만 기본값으로 설정됩니다.
- 인수이므로 이 인수에 대한 다른 값을 예를 들어 전달하여 변경할 수 있습니다.
docker build --build-arg DEBIAN_FRONTEND=newt
예:
ARG DEBIAN_FRONTEND=noninteractive
...
RUN apt-get -yq install {your-pkgs}
대안 2: 즉시 사용
이것은 레오 K의 해결책입니다.
솔루션 특성:
- 필요한 위치에 설정할 수 있습니다.그래서 좋은 미세한 해결책입니다.
- 특정 명령에서 다른 값으로 설정할 수 있으므로 전역적으로 설정되지 않습니다.
- 는 범는입니다.
RUN
다른 지시사항에 영향을 미치지 않을 것입니다.
예:
RUN DEBIAN_FRONTEND=noninteractive apt-get -yq install {your-pkgs}
대안 3: ENV DEBIAN_FRONTEND= 비인터랙티브
정ENV DEBIAN_FRONTEND noninteractive
또한 대안이 될 수도 있지만 매우 낙담하고 있습니다.
다른 방법은 Docker 파일의 시작 부분에서 설정하고 Docker 파일의 끝 부분에서 설정을 해제하는 것입니다.
솔루션 특성:
ENV
후에도 않음). 더 는 환경 변수를 합니다.- 기본값으로 설정하는 것을 잊어버린 경우 오류가 발생할 수 있습니다.
- 로설되있때기니다문입어정▁with다▁set니로 설정되어 있기 입니다.
ENV
이미지에서 빌드된 모든 이미지와 컨테이너에 상속되어 효과적으로 동작이 변경됩니다. ([1]에서 언급한 바와 같이) 이러한 이미지를 사용하는 사용자는 소프트웨어를 대화형으로 설치할 때 대화 상자가 표시되지 않기 때문에 문제가 발생합니다. - 기본 프런트 엔드는 다음과 같습니다.
DEBIAN_FRONTEND=newt
([2] 참조), 파일 끝에 설정해야 합니다.
예:
# Set for all apt-get install, must be at the very beginning of the Dockerfile.
ENV DEBIAN_FRONTEND noninteractive
...
# Non-interactive modes get set back.
ENV DEBIAN_FRONTEND newt
또는 4: RUN 내보내기 DEBIAN_FRONTEND= 비인터랙티브
솔루션 특성:
- 대안 2와 상당히 유사합니다.
- 디커플링을 통해 응집력은 고통받고 있습니다: 왜 이 변수와 변수가 속한 것에 대한 수출이 있는지(apt-get).
- 는 범는입니다.
RUN
다른 지시사항에 영향을 미치지 않을 것입니다.
예:
# Set the frontend and then install your package
RUN export DEBIAN_FRONTEND=noninteractive && \
...
apt-get -yq install {your-pkgs} && \
...
더 많은 읽을거리(참고 자료)
- ENV DEBIAN_FRONTEND 비인터랙티브
- debconf: apt-packets가 설치되지 않았기 때문에 패키지 구성 지연
- ENV DEBIAN_FRONTEND는 유지되므로 권장되지 않습니다.
- 도커 FAQ(자주 묻는 질문)
- Debian 설치 관리자 매개 변수
- 공식 문서 - ARG
를 하십시오.apt-get install apt-utils
들소설치되었지만 경고는 없습니다.
이것은 좋은 해결책이 없는 진행 중인 문제입니다.저는 이것을 선택했습니다. 차선이지만, 효과가 있습니다.
ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y apt-utils 2>&1 | \
grep -v "^debconf: delaying package configuration, since apt-utils.*"
설명:
grep -v
역방향 매치, 그것으로 시작하는 라인이 사라질 것입니다!- ARG는 런타임에 필요하지 않은 경우 새로운 ENV입니다.
- 그런 다음 이미지를 처음부터 작성할 때 오류가 나타나지 않고 하루 종일 apt-get을 사용할 수 있습니다.
이것이 효과가 있다는 증거: https://asciinema.org/a/WJCDEYcxCIy6EF7eXw0MAnK3c
언급URL : https://stackoverflow.com/questions/51023312/docker-having-issues-installing-apt-utils
'programing' 카테고리의 다른 글
Div 너비 100% - 고정 픽셀 수 (0) | 2023.08.02 |
---|---|
한 번에 여러 프레임의 부트스트랩 회전각 (0) | 2023.08.02 |
문자로 분할하지 않고 목록에 문자열 삽입 (0) | 2023.07.28 |
AJAX를 통해 BLOB를 검색할 때 오류 메시지 처리 (0) | 2023.07.28 |
"pyenv 설치"에 사용할 수 있는 Python 버전 찾기 (0) | 2023.07.28 |