비표준 셸에 패키지를 설치할 때 "프런트엔드를 초기화할 수 없습니다: 대화 상자" 메시지가 나타나면 실제로 어떤 결과가 발생합니까?

비표준 셸에 패키지를 설치할 때 "프런트엔드를 초기화할 수 없습니다: 대화 상자" 메시지가 나타나면 실제로 어떤 결과가 발생합니까?

비대화형 셸(예: 파일)에서 Emacs의 일부 패키지를 설치하면 org-babel다음 메시지가 생성됩니다.

debconf: unable to initialize frontend: Dialog
debconf: (Dialog frontend will not work on a dumb terminal, an emacs shell buffer, or without a controlling terminal.)
debconf: falling back to frontend: Readline

mysql의 경우 루트 비밀번호를 묻는 메시지를 표시하거나 사용자에게 기본 설정이나 설정과 같은 다른 사항을 묻는다는 것을 알고 있습니다.

이 경우 설치 프로그램이 일부 기본 설정을 사용하고 계속할 수 있다고 생각합니다.

그래서 나의 주요 관심사는 다음과 같습니다.

  1. 결과가 그렇게 심각할까요?

  2. 설치 프로그램에 전달할 수 있는 각 패키지와 관련된 응답 파일이 있습니까? 아니면 이 목적으로 사용할 수 있는 미리 설정된 위치에 있는 기본 파일이 있습니까?

답변1

인용한 메시지에서 알 수 있듯이 프런트 엔드를 사용할 수 없는 경우(예: Emacs 내에서 패키지 설치 명령을 실행할 때) Dialog패키지 구성 시스템은 더 간단한 프런트 엔드를 사용합니다 .Readline

실제로 이는 화면 중앙에 있는 텍스트 상자에 기본 설정 질문을 개별적으로 가져오는 대신 의 다른 메시지와 함께 일반 텍스트로 하나씩 가져오는 것을 의미합니다 debconf. 동일한 문제를 모두 표시할 수 있어야 하며, 익숙한 것과는 약간 다르게 보일 뿐입니다. 경우에 따라 입력 내용을 편집하는 방법이 더 제한될 수도 있습니다. 즉, 화살표 키가 작동하지 않아 백스페이스만 사용할 수 있게 됩니다.

프런트엔드도 사용할 수 없고 Readline패키지에 미리 구성된 설정이 없으면 내장된 기본값이 사용됩니다. 패키지 설정에 해당 기본값이 없는 경우에만 패키지 설치가 실패할 수 있습니다.

  1. 결과가 그렇게 심각할까요?

다양한 방식으로 표시되는 선호도에 대한 질문으로 인해 혼란스럽지 않다면 그다지 나쁘지 않습니다. 침착하게 컴퓨터에 표시되는 메시지를 읽어보세요. 그러면 답을 알게 될 것입니다.

  1. 어떤 종류의 응답 파일[...]이 있습니까?

예, 구성을 자동화하는 방법이 있습니다. debconf-doc패키지가 설치되어 있는지 확인한 다음 man 7 debconf제목을 사용하고 읽으십시오.사전 구성된 패키지그리고무인 패키지 설치.

기본적으로 아직 설치하지 않은 패키지가 있는 경우 다음을 사용할 수 있습니다.

dpkg-preconfigure <package-name_version.deb>

패키지를 실제로 설치하기 전에 패키지에 대한 모든 질문을 검토하고 답변하세요. 나중에(또는 패키지가 이미 설치된 시스템에서) 다음을 사용하여 저장된 기본 설정을 볼 수 있습니다.

debconf-show <package-name>

그런 다음 다음과 같이 파일에 저장할 설정을 선택할 수 있습니다.

debconf-get-selections | grep <name of setting> >>settings.txt

설정 파일을 다른 호스트로 전송하고 가져오기 전에 필요한 만큼 반복합니다 debconf.

debconf-set-selections < settings.txt

아니면 SSH나 다음과 같은 방법으로 파이프하면 됩니다.

ssh root@newhost debconf-set-selections < settings.txt

나중에 패키지가 호스트에 설치되면 newhost구성 질문에 대한 답변이 이미 제공되므로 debconf이러한 질문은 대화식으로 묻지 않습니다. (새 버전의 패키지에 더 많은 질문이 있는 경우 새로운 질문만 질문됩니다.)

관련 정보