Alex의 솔루션은 오류를 억제하고 거의 원인을 알 수 있지만 질문에 대답 할 수는 없습니다 (답변을 미리 설정하고 스크립트에서 실행할 때 좋지만 새 패키지를 시도 할 때 실제로 성가시다) ). 핵심 문제는 ssh와 debconf의 다양한 프론트 엔드에 의해 만들어진 가정 간의 상호 작용입니다.
ssh로 시작하겠습니다. ssh는 원격 명령을 지정하지 않으면 원격 끝에서 pty를 원하고 원치 않는 원격을 지정한다고 가정합니다 (이것은 90 %가 아니라 잘 작동합니다). -t
pty를 강제 실행하는 -T
옵션 또는 pty 를 강제로 수행하지 않는 옵션 (또는 해당 구성 파일 옵션)으로 이를 대체 할 수 있습니다 . 또한 pty를 사용하는 경우 TERM
환경 변수가 복사됩니다 (예외는 완료된 세부 사항 및 공식 경품 참가 양식에 대한 점검 문서를 적용 할 수 있음). 또한이 -x
옵션은 X11 전달을 비활성화하고 -X
활성화합니다.
Debconf 자체에는 (설계 상) 상호 작용 요구 사항이 없지만 다양한 프런트 엔드가 있으며 각 요구 사항이 다릅니다.
가장 잘 보이는 프론트 엔드는 그놈이라고 생각합니다 (내가 일하지 않은 ked 프론트 엔드도 있습니다). 그놈 프론트 엔드 (및 kde 서버도)에는 기본이 아닌 라이브러리와 X11 서버가 필요하므로 그놈 프론트 엔드를 강제 실행하는 명령 행 (적절한 라이브러리가 설치되면)
ssh -X <remote_srv> "DEBIAN_FRONTEND=gnome apt-get autoremove"
또는 kde를 선호한다면
ssh -X <remote_srv> "DEBIAN_FRONTEND=kde apt-get autoremove"
대화 상자 프론트 엔드 (기본값)에는 TERM 변수에 지정된 최소 레벨의 기능을 가진 pty 및 터미널이 필요합니다 (실제로 이것은 dumb를 제외한 완전한 terminfo 설명이있는 것임).
ssh -t <remote_srv> "TERM=$TERM DEBIAN_FRONTEND=dialog apt-get autoremove"
또는
ssh -t <remote_srv> "apt-get autoremove"
readline 프론트 엔드는 덜 엄격한 요구 사항을 가지고 있으며 벙어리 터미널에서 작동하지만 pty가 필요합니다.
ssh -t <remote_srv> "DEBIAN_FRONTEND=readline apt-get autoremove"
편집기 프론트 엔드는 편집기에 따라 특정 요구 사항이있는 편집기에 의존합니다.
ssh -t <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=vi apt-get autoremove"
ssh -X <remote_srv> "DEBIAN_FRONTEND=editor EDITOR=gvim\ -f apt-get autoremove"
비 대화식 프론트 엔드에는 요구 사항이 없지만 질문을하지 않습니다 (원하는 것이거나 아닐 수도 있음).
ssh <remote_srv> "DEBIAN_FRONTEND=noninteractive apt-get autoremove"