화면의 SSH로 인해 알 수 없는 터미널 오류가 발생함

화면의 SSH로 인해 알 수 없는 터미널 오류가 발생함

화면 내 한 Ubuntu 호스트에서 다른 Ubuntu 호스트로 SSH 연결(lsh를 통해)을 설정하려고 합니다. 그 후 즉시 실행 하려고 하면 mc다음 오류가 발생합니다.

Unknown terminal: screen-256color-s
Check the TERM environment variable.
Also make sure that the terminal is defined in the terminfo database.
Alternatively, set the TERMCAP environment variable to the desired
termcap entry.

문제는 누가 이 실패를 일으켰는가 하는 것입니다. 로컬호스트인가요? 외딴? 일부 패키지가 누락되었습니다(어떤 패키지입니까?). lsh-server또는 클라이언트가 뭔가를 수행하지 않았습니까?

명확하게 말하면 "TERM=xterm mc"와 같은 해결 방법을 원하지 않고 256색을 지원하는 (원격) 콘솔에서 시각적 테마를 사용할 수 있기를 원합니다.

답변1

다음과 같은 다른 용어를 설정하십시오.

TERM="rxvt"

또는

TERM="xterm"

또는

TERM="vt102"

어쩌면 export TERM그것도 도움이 될 것입니다.

TERM이 변수 는 명령이 실행되는 terminfo/termcap 데이터베이스(귀하의 경우에는 원격 시스템)에서 터미널 이스케이프 코드를 읽는 것과 같은 프로그램에서 사용됩니다 .cursestermcapmcdialog

"screen-256color-s" 용어 유형을 지원하려면 이 터미널 유형을 데이터베이스에 설치해야 합니다.

좋은 출발점으로 읽으십시오 man 5 terminfo.

답변2

마지막으로 screen-256-color-s(원격 컴퓨터에 설치해야 함)를 제공하는 "명백한" 패키지를 알아냈습니다.

sudo apt install ncurses-term

나를 위해 문제를 해결했습니다. 멋진 256색, 추악한 문제를 해결하기 위해 환경 변수를 사용할 필요가 없습니다. 오랫동안 살다! :)

답변3

GNU는 screen이를 로컬로 설정 $TERM하고 ssh해당 값을 원격 측에 전달합니다. 당신이 할 수 있는 일이 몇 가지 있습니다.

  • 원격 측을 감지 screen-256-color-s하고 더 제정신으로 설정하십시오. 지금부터 당신은 그것을 가질 수 있습니다 case $TERM in screen-256*) TERM=screen;; esac.
  • 로컬 측에서 screen터미널이 설정됩니다. 귀하의 파일에는 ~/.screenrc다음이 있습니다: term screen.
  • 통화를 screen여는 명령이 있는 경우 다음 옵션을 추가하세요.ssh-Tscreen -T screen ssh user@host
  • 로컬에서 ~/.bashrc위의 원격 터미널과 유사한 호환되지 않는 터미널이 감지되면 터미널을 설정하십시오.

관련 정보