부모글 보이기/감추기 AD BLOCK 해제 요청 이 글에는 광고가 많이 들어가 있지 않습니다. adblock을 해제하셔도 글을 읽는데 그다지 부담이 없으니 해제를 부탁드립니다. (연관된 글이 2개 있습니다.) Linux - apt와 apt-get의 차이 (이 글의 원인은 docker 이미지 빌드 시 "RUN apt install ..." 명령어가 실패하는 이유 글에서 밝혔습니다.) 리눅스를 잘은 모르지만, apt-get이 기존 방식이고 근래 들어 apt가 추가돼 나온 것으로만 알고 있습니다. 검색해 봐도, 딱히 다른 점은 없다고 하는데요, [Ubuntu 20.04 LTS]apt와 apt-get의 차이점 ; https://pstudio411.tistory.com/entry/apt%EC%99%80-apt-get%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90 그런데, dockerfile 구성 시 단순히 "apt update/upgrade" 옵션으로 실행한 경우, FROM python:3.8-slim-buster RUN apt update RUN apt upgrade -y RUN apt install libpq-dev -y // docker build -t test-python -f %MAKE_BUILD_APP_PATH%\data\test.dockerfile . 오류가 발생했던 것과는 달리 apt-get으로 하면 잘 통과한 적이 있었습니다. FROM python:3.8-slim-buster RUN apt-get update RUN apt-get upgrade -y RUN apt-get install libpq-dev -y 여기서 재미있는 점은, 며칠 지나서 다시 실행해 봤더니 그때는 또 "apt update/upgrade" 명령으로도 잘 설치가 되었습니다. 정확하게 판단할 수는 없지만, 아마도 apt-get의 repo와 apt의 repo가 실시간으로 동기화되는 것은 아닌 듯합니다. (혹시 자세한 차이점을 아시는 분은 덧글 부탁드립니다. ^^) [이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.] [다음 글] 스크립트: 40. 파이썬 - PostgreSQL 환경 구성[이전 글] .NET Framework: 2020. C# - NTFS 파일에 사용자 정의 속성값 추가하는 방법 [연관 글] Linux: 52. Debian/Ubuntu 계열의 docker container에서 자주 설치하게 되는 명령어오류 유형: 836. docker 이미지 빌드 시 "RUN apt install ..." 명령어가 실패하는 이유 [최초 등록일: 6/15/2022] [최종 수정일: 1/9/2023] 이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다. by SeongTae Jeong, mailto:techsharer at outlook.com 비밀번호 댓글 작성자 2022-06-29 12시23분 [규링] dockerfile 같은 스크립트로 구성해서 작업을 진행하고자 할 때에는 apt-get을 이용하는 것이 더 좋습니다.명령 자체가 동작하는 방식이 좀 다릅니다.예를 들어, apt-get update를 진행하면 시스템 리포지토리의 인덱스만 업데이트 되는 데 반면,apt update를 진행하면 시스템 리포지토리의 인덱스 업데이트와 함께 리포지토리에서 사용 가능한 소프트웨어의 소프트웨어의 새 버전이 얼마나 더 있는지도 알려줍니다.업그레이드에서도 차이를 보여주는데, apt-get upgrade 다른 패키지를 제거하거나 새 패키지를 설치하지 않고 업그레이드할 수 있는 모든 패키지를 업그레이드합니다.apt upgrade 다른 패키지를 제거하지 않고 업그레이드할 수 있는 모든 패키지를 업그레이드합니다.미묘한 차이일 수도 있습니다만... 명령어 처리에서의 모호함을 없애기 위해 apt가 더 선호되고 있어서 그렇지둘 다 동일한 리포 주소파일을 읽고 동일하게 하는 거 같아도 미묘하게 동작의 차이가 존재합니다.그래서 그냥 명령어로 칠 때에는 상관이 없긴 한데, 이런 세세한 동작 차이 때문에 스크립트로 구성한다고 하면 여전히 apt-get으로 스크립트를 구성하는 것이 좀 더 안전합니다. [guest] 2022-06-29 09시40분 @규링 설명 감사합니다. ^^ 정성태 ... 61 [62] 63 64 65 66 67 68 69 70 71 72 73 74 75 ... NoWriterDateCnt.TitleFile(s) 12482정성태1/8/202122456.NET Framework: 1001. C# - 제네릭 타입/메서드에서 사용 시 경우에 따라 CS8377 컴파일 에러12481정성태1/7/202122185.NET Framework: 1000. C# - CS8344 컴파일 에러: ref struct 타입의 사용 제한 메서드112480정성태1/6/202125201.NET Framework: 999. C# - ArrayPool<T>와 MemoryPool<T> 소개112479정성태1/6/202122317.NET Framework: 998. C# - OWIN 예제 프로젝트 만들기12478정성태1/5/202126247.NET Framework: 997. C# - ArrayPool<T> 소개112477정성태1/5/202126771기타: 79. github 코드 검색 방법 [1]12476정성태1/5/202121175.NET Framework: 996. C# - 닷넷 코어에서 다른 스레드의 callstack을 구하는 방법112475정성태1/5/202127045.NET Framework: 995. C# - Span<T>와 Memory<T> [1]112474정성태1/4/202123026.NET Framework: 994. C# - (.NET Core 2.2부터 가능한) 프로세스 내부에서 CLR ETW 이벤트 수신 [1]112473정성태1/4/202122237.NET Framework: 993. .NET 런타임에 따라 달라지는 정적 필드의 초기화 유무 [1]112472정성태1/3/202121745디버깅 기술: 178. windbg - 디버그 시작 시 스크립트 실행12471정성태1/1/202123053.NET Framework: 992. C# - .NET Core 3.0 이상부터 제공하는 runtimeOptions의 rollForward 옵션 [1]12470정성태12/30/202022755.NET Framework: 991. .NET 5 응용 프로그램에서 WinRT API 호출 [1]112469정성태12/30/202026593.NET Framework: 990. C# - SendInput Win32 API를 이용한 가상 키보드/마우스 [1]112468정성태12/30/202023938Windows: 186. CMD Shell의 "Defaults"와 "Properties"에서 폰트 정보가 다른 문제 [1]12467정성태12/29/202024279.NET Framework: 989. HttpContextAccessor를 통해 이해하는 AsyncLocal<T> [1]112466정성태12/29/202021334.NET Framework: 988. C# - 지연 실행이 꼭 필요한 상황이 아니라면 singleton 패턴에서 DCLP보다는 static 초기화를 권장 [1]112465정성태12/29/202025072.NET Framework: 987. .NET Profiler - FunctionID와 연관된 ClassID를 구할 수 없는 문제12464정성태12/29/202021557.NET Framework: 986. pptfont.exe - PPT 파일에 숨겨진 폰트 설정을 일괄 삭제12463정성태12/29/202020906개발 환경 구성: 520. RDP(mstsc.exe)의 다중 모니터 옵션 /multimon, /span12462정성태12/27/202024539디버깅 기술: 177. windbg - (ASP.NET 환경에서 유용한) netext 확장12461정성태12/21/202023380.NET Framework: 985. .NET 코드 리뷰 팁 [3]12460정성태12/18/202021396기타: 78. 도서 소개 - C#으로 배우는 암호학12459정성태12/16/202022647Linux: 35. C# - 리눅스 환경에서 클라이언트 소켓의 ephemeral port 재사용112458정성태12/16/202019758오류 유형: 694. C# - Task.Start 메서드 호출 시 "System.InvalidOperationException: 'Start may not be called on a task that has completed.'" 예외 발생 [1]12457정성태12/15/202021594Windows: 185. C# - Windows 10/2019부터 추가된 SIO_TCP_INFO1 ... 61 [62] 63 64 65 66 67 68 69 70 71 72 73 74 75 ...