![端末を開くときにエラーが発生しました:vt102](https://linux33.com/image/117780/%E7%AB%AF%E6%9C%AB%E3%82%92%E9%96%8B%E3%81%8F%E3%81%A8%E3%81%8D%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%9Avt102.png)
Linux システムでダイアログ バイナリを開こうとすると、次のエラーが発生します。Error opening terminal: vt102
ARM用にコンパイルされたダイアログボックスとncursesを交差しましたが、コンパイルはスムーズに行われましたが、バイナリを開くときにエラーが発生しました。エラーを発生させるコマンドは次のとおりです。
$DIALOG --clear --backtitle "Accept EULA to proceed" --title "END USER LICENSE AGREEMENT" --no-mouse --no-lines --extra-button --ok-label 'Accept' --extra-label 'Decline' "$@" --textbox /vss/scripts/End-User-Product-License-Agmt.txt 0 0
答え1
このメッセージは、ncurses が端末記述を見つけることができないことを示します。vt102
。これが起こり得る理由は
- ターミナルデータベースのデフォルトのコンパイルパス名がターミナルデータベースがインストールされている場所と一致しません。
- 端末データベースがインストールされていません。
どちらもクロスコンパイルで(おそらく)簡単に実行できます。構成スクリプトを実行すると、カスタマイズ可能な重要なパス名が最後に印刷されます。たとえば、
** Configuration summary for NCURSES 6.0 20170909:
extended funcs: yes
xterm terminfo: xterm-new
bin directory: /usr/bin
lib directory: /usr/lib
include directory: /usr/include/ncursesw6
man directory: /usr/share/man
terminfo directory: /usr/local/ncurses/share/terminfo
pkg-config directory: /usr/lib/x86_64-linux-gnu/pkgconfig
実行時にターミナルデータベースのパス名をオーバーライドしない場合(使用TERMINFO
そして/またはTERMINFO_DIRS
)、コンパイルされたパス名を使用します。
ターミナルデータベースをインストールするには、次のものを使用できます。tic
、例えば、
tic -x terminfo.src
または、別のコンピュータのターミナルデータベースと一緒にディレクトリツリーをコピーします。
追加資料: