web-dev-qa-db-ja.com

画面からのsshが原因で不明な端末エラーが発生する

画面内から、あるUbuntuホストから別のUbuntuホストに(lshを介して)ssh接続を確立しようとしています。その直後に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色をサポートするビジュアルテーマを使用できるようにしたいと思います。

9
god

最後に、screen-256-color-sを提供する「明白な」パッケージを見つけました(リモートマシンにインストールされることになりました):

Sudo apt install ncurses-term

私の問題を修正しました:素晴らしい256色で、環境変数での醜い回避策は必要ありません。やったー! :)

6
god

別のTERMを設定するだけです、例えば

TERM="rxvt"

または

TERM="xterm"

または

TERM="vt102"

多分export TERMも役立ちます。

TERM変数は、cursesおよびtermcapプログラム(mcdialogなど)によって使用され、ターミナルエスケープコードをterminfo/termcapデータベース、コマンドが実行される場所。リモートシステムの場合。

「screen-256color-s」TERMタイプをサポートするには、この端末タイプをデータベースにインストールする必要があります。

良い出発点としてman 5 terminfo

6
ikrabbe

GNU screen$TERMをローカルに設定し、sshはその値をリモート側に渡します。できることがいくつかあります。

  • リモート側でscreen-256-color-sを検出し、より正常に設定します。そこからcase $TERM in screen-256*) TERM=screen;; esacを取得できます。
  • ローカル側から、screenに端末を設定してもらいます。 ~/.screenrcファイルには、term screenがあります。
  • screenコマンドを使用してssh呼び出しを開く場合は、-Tオプションを追加します:screen -T screen ssh user@Host
  • ローカル~/.bashrcで、上記のリモート側と同様の互換性のないものを検出した場合は、端末を設定します。
4
Arcege