画面内から、ある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色をサポートするビジュアルテーマを使用できるようにしたいと思います。
最後に、screen-256-color-sを提供する「明白な」パッケージを見つけました(リモートマシンにインストールされることになりました):
Sudo apt install ncurses-term
私の問題を修正しました:素晴らしい256色で、環境変数での醜い回避策は必要ありません。やったー! :)
別のTERMを設定するだけです、例えば
TERM="rxvt"
または
TERM="xterm"
または
TERM="vt102"
多分export TERM
も役立ちます。
TERM
変数は、curses
およびtermcap
プログラム(mc
やdialog
など)によって使用され、ターミナルエスケープコードをterminfo/termcapデータベース、コマンドが実行される場所。リモートシステムの場合。
「screen-256color-s」TERMタイプをサポートするには、この端末タイプをデータベースにインストールする必要があります。
良い出発点としてman 5 terminfo
。
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
で、上記のリモート側と同様の互換性のないものを検出した場合は、端末を設定します。