
Linux 서버를 업그레이드할 때 관리 서버 중 하나에서 다음과 같은 명령을 실행합니다.
ssh server1.mycompany.com apt upgrade
특정 상황에서는 다음 명령을 통해 다음과 같은 출력을 얻습니다.
debconf: unable to initialize frontend: Dialog
debconf: (TERM is not set, so the dialog frontend is not usable.)
debconf: falling back to frontend: Readline
debconf: unable to initialize frontend: Readline
debconf: (This frontend requires a controlling tty.)
대화상자와 상호작용할 수 없으므로 기본값이 선택된 것 같습니다. 다른 사람들은 이 문제를 어떻게 처리하나요? 대화 상자가 나타날 경우를 대비해 적절한 업그레이드를 실행하기 위해 각 서버에 로그인하는 것은 좋은 방법이 아닌 것 같습니다. 어쩌면 "적절한 업그레이드"를 중단하는 방법이나 대화 상자가 나타날 때 뭔가가 있을까요? 또는 더 나은 방법은 SSH 연결의 클라이언트 측, 즉 내가 SSH를 실행 중인 서버에 팝업이 표시되도록 하는 방법이 있을 수 있습니다.~에서?
답변1
-t
pty를 강제로 적용하거나 -T
pty를 강제로 적용하지 않는 매개변수(또는 해당 구성 파일 옵션)를 통해 설정할 수 있는 터미널이 필요합니다 .
또한 pty를 사용하면 TERM
환경 변수가 복사됩니다(완료된 세부 정보 및 공식 경품 응모 양식에 대한 확인 문서가 적용될 수 있음).
요구 사항이 없고 어떤 질문도 하지 않는(원하는 것일 수도 있고 아닐 수도 있는) 비대화형 프런트 엔드를 지정할 수 있습니다.
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"
자세한 내용은 Ask Ubuntu 게시물을 참조하세요. 프런트엔드를 초기화할 수 없습니다: SSH를 사용할 때 대화 상자가 나타납니다..