2

OS X 10.10.5 を実行しています。ターミナルを開こうとするとエラーが発生します:

tput: 不明な端末「xterm-256color」

これは明らかに termcap エントリの欠落です。

$ port list ncurses
ncurses                        @6.0            devel/ncurses

OS X に「ncurses-term」をインストールする方法はありますか?

$ sudo port install ncurses-term
Password:
Error: Port ncurses-term not found
4

2 に答える 2

0

Linux に肥大化した/モノリシックなパッケージが存在するにもかかわらず、ncurses パッケージのパッケージ管理者は、7Mb の terminfo を「base」チャンクと「term」チャンクに分割する (そしてライブラリから分離する) ことがよくあります。ncurses の MacPorts メンテナはこれを行っていません。端末データベースは「ncurses」パッケージの一部です。たとえば、私はこれを

port contents ncurses@6.0_0+universal

/opt の下:

/opt/local/share/terminfo/73/screen.xterm-256color

また、システム (ポート以外) のコピーもここにあります。

/usr/share/terminfo/78/xterm-256color

ncurses にリンクされたアプリケーションは、通常、それらがポート ライブラリとリンクされているかシステム ライブラリとリンクされているかに応じて、どちらか一方を使用します。ただし、ncurses は、TERMINFO変数を設定することによって、別の場所を探すように指示できます。カスタマイズを別のマシンから にコピーした場合は.bashrc、 が設定されている可能性がありますTERMINFO

それ自体でtputは、端末エントリを探している場所の手がかりがわかりません。からの出力をチェックして、が設定されているenvかどうかを確認できTERMINFOます。このinfocmpユーティリティは、オプションを使用して( 2011 年後半以降) どこにあるかを表示できます。-D

$ infocmp -D
/usr/local/ncurses/share/terminfo
/usr/share/terminfo
/opt/local/share/terminfo

ところで、OSX は (いくつかの特殊なポートを除いて) termcap 自体を使用しません。ncurses の特定のリリースの一部として、terminfoを使用します (たとえば、 のマニュアル ページを参照してくださいtgetent)。

于 2015-09-26T18:21:36.457 に答える