「警告: 端末は完全には機能していません」とルートとして「man」を使用する場合

「警告: 端末は完全には機能していません」とルートとして「man」を使用する場合

この質問は何千回も投稿されているのは知っていますが、私が見つけた答えはどれも問題を解決しませんでした。

によって与えられたルート シェルがありますsudo bash。 を使用しようとするとman、次のメッセージが表示されます。

WARNING: terminal is not fully functional
-  (press RETURN)

ナビゲーションの制御が制限されます。

ルート権限がないときも動作します。ルート権限では正常に動作しますaptitude。以下を試しましたexport TERM: linux、、、、、、、、。xtermxterm-colorxterm-256coloransiscreen-256colorncursesvt100

の出力は、stty -aroot と非 root とでまったく同じです。

speed 38400 baud; rows 30; columns 271; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

行き詰まってます。

何か案が?

前もって感謝します

答え1

私は、ncurses/usr/share/terminfo を提供する不足しているパッケージを追加することで、この問題を解決しました。何らかの理由でパッケージ依存関係の地獄によりインストールされなかったこのパッケージは、この問題を修正するようです。私の場合は、両方のrootユーザーと非ルート ユーザーに同様に発生したため、原因ではないかもしれませんが、将来誰かが私と同じ状況になり、Google の結果でこの質問に遭遇した場合に備えて、投稿する価値があると思います。

CentOS では、 ですncurses-base

Debian 11 (およびおそらく Ubuntu) では、 ですncurses-term

これらのパッケージが不足している場合は、インストールしてみて、それが役立つかどうかを確認してください。

reset私はターミナルでこれを実行しようとしてこれを発見しました、そして結果として「ターミナルタイプ?」プロンプトが私が試したことすべてを拒否しました、例えば

Terminal type? screen                                      
reset: unknown terminal type screen
Terminal type?                                             
Terminal type? vt100
reset: unknown terminal type vt100

そこで、動作中のシステムと比較し、 という名前を含むものを探しましたvt100。結果を少し調べると、の下にある「不良」システムで欠落していgrep -rたファイルが見つかりました。 を呼び出すと、そのパッケージ名にたどり着きました。/usr/share/terminforpm -q --whatprovides /usr/share/terminfo/v/vt100

答え2

ほぼ 3 年後、ChatGPT が解決策を与えてくれました...

# type man
man is aliased to `TERMINFO=~/.terminfo/ LESS=C TERM=mostlike PAGER=less man'

ある時点で、「man」は偽の行にエイリアスされました...それが他のユーザーが影響を受けなかった理由を説明しています...

関連情報