Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (seongtaejeong at gmail.com)
홈페이지
첨부 파일
 

apt update 시 "The repository 'http://deb.debian.org/debian buster Release' does not have a Release file." 오류

이상하군요, (Visual Studio로 생성한) ASP.NET Core 프로젝트의 dockerfile에 추가한 "apt update" 명령어가 docker build 시 오류가 발생합니다. 단순하게 "sdk;3.1-buster" 이미지만으로도 apt update가 실패합니다.

c:\temp> type test.dockerfile
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster
RUN apt-get update

c:\temp> docker build -f test.dockerfile -t test_dotnet_img .
[+] Building 10.8s (5/5) FINISHED                                                                  docker:desktop-linux
 => [internal] load build definition from test.dockerfile                                                          0.4s
 => => transferring dockerfile: 112B                                                                               0.0s
 => [internal] load metadata for mcr.microsoft.com/dotnet/core/sdk:3.1-buster                                      0.6s
 => [internal] load .dockerignore                                                                                  0.8s
 => => transferring context: 2B                                                                                    0.0s
 => CACHED [1/2] FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster@sha256:ed737e6920105e2a5cdcd13b9697e7973011e56  2.4s
 => => resolve mcr.microsoft.com/dotnet/core/sdk:3.1-buster@sha256:ed737e6920105e2a5cdcd13b9697e7973011e5619339ea  2.3s
 => ERROR [2/2] RUN apt-get update                                                                                 5.5s
------
 > [2/2] RUN apt-get update:
4.780 Ign:1 http://deb.debian.org/debian buster InRelease
4.788 Ign:2 http://deb.debian.org/debian-security buster/updates InRelease
4.794 Ign:3 http://deb.debian.org/debian buster-updates InRelease
4.801 Err:4 http://deb.debian.org/debian buster Release
4.801   404  Not Found [IP: 146.75.50.132 80]
4.815 Err:5 http://deb.debian.org/debian-security buster/updates Release
4.815   404  Not Found [IP: 146.75.50.132 80]
4.822 Err:6 http://deb.debian.org/debian buster-updates Release
4.822   404  Not Found [IP: 146.75.50.132 80]
5.067 Reading package lists...
5.078 E: The repository 'http://deb.debian.org/debian buster Release' does not have a Release file.
5.078 E: The repository 'http://deb.debian.org/debian-security buster/updates Release' does not have a Release file.
5.078 E: The repository 'http://deb.debian.org/debian buster-updates Release' does not have a Release file.
------
test.dockerfile:2
--------------------
   1 |     FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster
   2 | >>> RUN apt-get update
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get update" did not complete successfully: exit code: 100

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/zkz3vs4wtw6bpiinp9don2xk5

사실 sdk;3.1-buster 이미지의 근간이 되는 debian:10 이미지로도 동일한 오류가 발생합니다.

c:\temp> type debian.dockerfile
FROM debian:10
RUN apt-get update

c:\temp> docker build -f debian.dockerfile -t test_debian_img .
[+] Building 29.4s (5/5) FINISHED                                                                  docker:desktop-linux
 => [internal] load build definition from debian.dockerfile                                                        0.3s
 => => transferring dockerfile: 78B                                                                                0.1s
 => [internal] load metadata for docker.io/library/debian:10                                                       3.1s
 => [internal] load .dockerignore                                                                                  0.3s
 => => transferring context: 2B                                                                                    0.0s
 => [1/2] FROM docker.io/library/debian:10@sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a2  11.0s
 => => resolve docker.io/library/debian:10@sha256:58ce6f1271ae1c8a2006ff7d3e54e9874d839f573d8009c20154ad0f2fb0a22  0.4s
 => => sha256:3892befd2c3f36ceb247ba7d906de12601d69b806597e65c4c837cf3d93df119 50.66MB / 50.66MB                   6.2s
 => => extracting sha256:3892befd2c3f36ceb247ba7d906de12601d69b806597e65c4c837cf3d93df119                          3.4s
 => ERROR [2/2] RUN apt-get update                                                                                12.8s
------
 > [2/2] RUN apt-get update:
1.603 Ign:1 http://deb.debian.org/debian buster InRelease
1.610 Ign:2 http://deb.debian.org/debian-security buster/updates InRelease
1.618 Ign:3 http://deb.debian.org/debian buster-updates InRelease
1.624 Err:4 http://deb.debian.org/debian buster Release
1.624   404  Not Found [IP: 146.75.50.132 80]
1.634 Err:5 http://deb.debian.org/debian-security buster/updates Release
1.634   404  Not Found [IP: 146.75.50.132 80]
1.642 Err:6 http://deb.debian.org/debian buster-updates Release
1.642   404  Not Found [IP: 146.75.50.132 80]
1.646 Reading package lists...
1.654 E: The repository 'http://deb.debian.org/debian buster Release' does not have a Release file.
1.654 E: The repository 'http://deb.debian.org/debian-security buster/updates Release' does not have a Release file.
1.654 E: The repository 'http://deb.debian.org/debian buster-updates Release' does not have a Release file.
------
debian.dockerfile:2
--------------------
   1 |     FROM debian:10
   2 | >>> RUN apt-get update
--------------------
ERROR: failed to solve: process "/bin/sh -c apt-get update" did not complete successfully: exit code: 100

View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/yzh9f8knxns4twzcukxwrgma0

저도 이젠 유경험자도 보니 ^^ 원인을 대충 짐작할 수 있었는데요,

dockerfile - 구 버전의 .NET Core 이미지 사용 시 apt update 오류
; https://www.sysnet.pe.kr/2/0/13331

당시의 "stretch" 버전에 이어서 이제는 "buster" 버전이 지원 종료(EOL, End Of Life)가 되었기 때문입니다.
c:\temp> docker run -it --rm --name my_test test_debian_img /bin/bash
root@1434c0b6d1ec:/# cat /etc/apt/sources.list
# deb http://snapshot.debian.org/archive/debian/20221219T000000Z buster main
deb http://deb.debian.org/debian buster main
# deb http://snapshot.debian.org/archive/debian-security/20221219T000000Z buster/updates main
deb http://deb.debian.org/debian-security buster/updates main
# deb http://snapshot.debian.org/archive/debian/20221219T000000Z buster-updates main
deb http://deb.debian.org/debian buster-updates main

따라서, 이번에도 repo 주소를 archive 쪽으로 변경해 주면 됩니다.

c:\temp> type debian.dockerfile
FROM debian:10
RUN echo "deb http://archive.debian.org/debian buster main" > /etc/apt/sources.list
RUN apt-get update

c:\temp> docker build -f debian.dockerfile -t test_debian_img .




저렇게 archive 주소로 변경한 이후 apt install 명령어에서 procps 패키지 설치 시 새롭게 문제가 발생했습니다.

# apt install procps -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 procps : Depends: libncurses6 (>= 6) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

# apt install libncurses6 -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libncurses6 : Depends: libtinfo6 (= 6.1+20181013-2+deb10u2) but 6.1+20181013-2+deb10u5 is to be installed
               Recommends: libgpm2 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

여기서 근본적인 문제는 libncurses6가 정확히 6.1+20181013-2+deb10u2 버전에 의존적이라고 명시했다는 점입니다. 그래서 해당 구성 요소를 이렇게 설치하면 안 되고,

// 6.1+20181013-2+deb10u5 버전의 libtinfo6가 설치됨

# apt install libtinfo6 -y

정확히 버전까지 지정해야 하는데요, 아쉽게도 경고가 나옵니다.

# apt install libtinfo6=6.1+20181013-2+deb10u2
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libfdisk1 libmount1 libsmartcols1
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  fdisk libncursesw6 mount sysvinit-utils util-linux
The following packages will be DOWNGRADED:
  libtinfo6
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  fdisk libncursesw6 (due to fdisk) mount util-linux (due to mount) sysvinit-utils
0 upgraded, 0 newly installed, 1 downgraded, 5 to remove and 0 not upgraded.
Need to get 325 kB of archives.
After this operation, 5897 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?] Yes, do as I say!

사실 docker 이미지라면 fdisk 등의 도구가 필요 없을 테니 제거해도 무방할 것입니다. 어쨌든 저렇게 변경하면 이후 procps 설치까지 문제는 없습니다.

정리하면, procps 설치를 한다면 이렇게 dockerfile을 구성하면 됩니다.

FROM debian:10
RUN echo "deb http://archive.debian.org/debian buster main" > /etc/apt/sources.list

RUN apt update && apt upgrade -y

RUN echo "Yes, do as I say!" | apt install libtinfo6=6.1+20181013-2+deb10u2
RUN apt install libncurses6 -y
RUN apt install procps -y




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 9/1/2025]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  107  108  109  110  111  112  113  [114]  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11162정성태3/24/201728082오류 유형: 380. Visual Studio 빌드 실패 - The OutputPath property is not set for project
11161정성태3/24/201718572오류 유형: 379. ICOMAdminCatalog.GetCollection 호출 시 0x80070422 예외 발생
11160정성태3/23/201725456.NET Framework: 649. ASP.NET - Server cannot append header after HTTP headers have been sent. (HTTP 헤더를 보낸 후에는 서버에서 헤더를 추가할 수 없습니다.)파일 다운로드1
11159정성태3/23/201722841Windows: 136. Memory-mapped File은 Private Bytes 크기에 포함될까요?파일 다운로드1
11158정성태3/22/201720827디버깅 기술: 85. Windbg - SOS 디버깅 사례 System.NullReferenceException 예외 추적
11157정성태3/22/201724077.NET Framework: 648. Dictionary<TKey, TValue>를 deep copy하는 방법파일 다운로드1
11156정성태3/21/201726241.NET Framework: 647. 닷넷(C#) 코드로 인증서 요청 코드 만드는 방법파일 다운로드1
11155정성태3/21/201726722.NET Framework: 646. SslStream의 CipherAlgorithm 선택이 가능할까요?파일 다운로드1
11154정성태3/5/201731949VC++: 109. DLL에서 STL 객체를 인자/반환값으로 갖는 함수를 제공할 때, 그 함수를 외부에서 사용하는 경우 비정상 종료한다면? [2]파일 다운로드1
11153정성태3/5/201732060VC++: 108. DLL에 정의된 C++ template 클래스의 복사 생성자 문제파일 다운로드1
11152정성태3/4/201727302VC++: 107. VirtualAlloc, HeapAlloc, GlobalAlloc, LocalAlloc, malloc, new의 차이점 [1]파일 다운로드1
11151정성태3/3/201726616VC++: 106. DLL 개발자가 주의해야 할 Secure CRT 함수 사용 [1]파일 다운로드1
11150정성태2/21/201722484.NET Framework: 645. Visual Studio Fakes 기능에서 Shim... 클래스가 생성되지 않는 경우 [5]
11149정성태2/21/201726471오류 유형: 378. A 64-bit test cannot run in a 32-bit process. Specify platform as X64 to force test run in X64 mode on X64 machine.
11148정성태2/20/201725742.NET Framework: 644. AppDomain에 대한 단위 테스트 시 알아야 할 사항
11147정성태2/19/201723108오류 유형: 377. Windows 10에서 Fake 어셈블리를 생성하는 경우 빌드 시 The type or namespace name '...' does not exist in the namespace 컴파일 오류 발생
11146정성태2/19/201723467오류 유형: 376. Error VSP1033: The file '...' does not contain a recognized executable image. [2]
11145정성태2/16/201724813.NET Framework: 643. 작업자 프로세스(w3wp.exe)가 재시작되는 시점을 알 수 있는 방법 - 두 번째 이야기 [4]파일 다운로드1
11144정성태2/6/201728255.NET Framework: 642. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (부록 1) - CallingConvention.StdCall, CallingConvention.Cdecl에 상관없이 왜 호출이 잘 될까요?파일 다운로드1
11143정성태2/5/201726150.NET Framework: 641. [Out] 형식의 int * 인자를 가진 함수에 대한 P/Invoke 호출 방법파일 다운로드1
11142정성태2/5/201733630.NET Framework: 640. 닷넷 - 배열 크기의 한계 [2]파일 다운로드1
11141정성태1/31/201728350.NET Framework: 639. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (4) - CLR JIT 컴파일러의 P/Invoke 호출 규약 [1]파일 다운로드1
11140정성태1/27/201723123.NET Framework: 638. RSAParameters와 RSA파일 다운로드1
11139정성태1/22/201726436.NET Framework: 637. C# 개발자를 위한 Win32 DLL export 함수의 호출 규약 (3) - x64 환경의 __fastcall과 Name mangling [1]파일 다운로드1
11138정성태1/20/201724922VS.NET IDE: 113. 프로젝트 생성 시부터 "Enable the Visual Studio hosting process" 옵션을 끄는 방법 - 두 번째 이야기 [3]
11137정성태1/20/201722152Windows: 135. AD에 참여한 컴퓨터로 RDP 연결 시 배경 화면을 못 바꾸는 정책
... 106  107  108  109  110  111  112  113  [114]  115  116  117  118  119  120  ...