ncurses アプリケーションは iTerm2 で実行できません。

ncurses アプリケーションは iTerm2 で実行できません。

ncursesを使用してiTerm2でコマンドラインツールを使用することはできません。失敗するか、可能であれば他のユーザーインターフェイスに置き換えられます(テキストのみ)。

はい可視光通信(Homebrew経由でインストール):

% /Applications/VLC.app/Contents/MacOS/VLC -I ncurses
VLC media player 3.0.16 Vetinari (revision 3.0.16-0-g5e70837d8d)
Error opening terminal: xterm-256color.

env変数に別の値(xterm、rxvt、vt100)を使用してみましたが、TERM同じエラーが発生しました。

iTerm2セッション設定の詳細:

% env | grep -i term
LC_TERMINAL_VERSION=3.4.9beta1
ITERM_PROFILE=Default
__CFBundleIdentifier=com.googlecode.iterm2
TERM_PROGRAM_VERSION=3.4.9beta1
TERM_PROGRAM=iTerm.app
LC_TERMINAL=iTerm2
COLORTERM=truecolor
TERM=xterm-256color

この問題は、macOS BigSur 11.5を実行しているM1 MacBook Proでのみ発生することに言及する価値があります。同じiTerm設定を使用すると、ncursesアプリケーションが同じオペレーティングシステムのバージョンを実行しているIntel Macbook Proで正しく実行されます。

答え1

私が参加しているので、これは重複するはずです。TERM = tmux-256colorが原因で「ターミナルオープンエラー」が発生する

偶然読んだらncurses 6.1 リリースノート、次のコメントを見ることができます。

このリリースでは、拡張数値機能を使用して端末記述の新しいバイナリ形式を提供します。

(ncursesの以前のバージョンはこの形式を読み取ることができず、アプリケーションがこれらの形式を読み取ろうとすると失敗します)。

また、ncurses FAQから:

ncurses 5.7は古すぎるため、期待どおりに動作しない可能性があります。たとえば、tput edコマンドはMacOSでは利用できないと見なされます。また、ncursesライブラリは256色と直接色(それぞれncurses 6.0および6.1で実行されています)をサポートしておらず、一部の拡張は低レベルのterminfoまたはtermcapインターフェースのみを使用しても中断されることが知られています(ncurses 6.2リリースノートを参照)。 。

関連情報