Debian 서버를 업데이트하기 위해 크론 작업을 설정하고 있는데 잠재적인 문제가 있습니다. Terminal을 사용하여 업그레이드하려고 하면 apt -y upgrade
이 옵션이 있어도 -y
일부 패키지는 APT가 구성할 때 ncurses 프롬프트(또는 Y/I/N/O/D/Z 프롬프트)를 표시하여 항상 Random 옵션이 남게 됩니다. 기본적으로. 내 컴퓨터 앞에 앉아 있는 내가 아니라 cron을 통해 명령을 실행하고 사용자 상호 작용을 위한 방법이 없는 경우 이러한 문제를 어떻게 방지할 수 있습니까?
답변1
나는 데스크탑/노트북/서버를 실행할 때 일반적인 상황에서 무인 업그레이드를 사용하라는 Stephen Kitt의 제안에 동의합니다.
무인 업그레이드를 기다리지 않고 사용자 지정 Amazon 머신 이미지(AMI)를 구축하는 스크립트에서 이를 처리하는 방법은 다음과 같습니다. 이것은 Ubuntu 16.x 및 20.x에서 낮은 수준의 명령을 사용하고 있지만 apt-get
Debian에서도 작동할 것이라고 생각합니다.
예를 들어, grub 업데이트가 새 conf 파일을 수락하거나 이전 파일을 유지하라는 메시지를 트리거할 수 있는 "dist-upgrade" 명령은 다음과 같습니다.
DEBIAN_FRONTEND=noninteractive \
apt-get -y \
-o DPkg::Options::="--force-confold" \
-o DPkg::Options::="--force-confdef" \
dist-upgrade
읽기 쉽도록 명령을 여러 줄로 나누었습니다.
환경 변수 설정은 DEBIAN_FRONTEND=noninteractive
Y/I/N/O/D/Z 답변을 묻는 메시지를 표시하지 않는 요소 중 하나입니다. 또 다른 요소는 dpkg
원하는 옵션을 명확하게 명시하는 것입니다.
그리고 --force-confold
네 --force-confdef
옵션입니다 dpkg
. --force-confdef
패키지가 기본 작업을 정의하는 경우 기본 작업이 선택됩니다. 기본값이 정의되지 않은 경우 --force-confold
이전 버전이 선택되거나 --force-confnew
새 버전이 선택됩니다.
내 사용 사례에서는 이전 버전을 원합니다.
더 많은 논의와 세부사항은 다음을 참조하세요.이전 질문