ncurses terminfoのサイズを小さくする方法

ncurses terminfoのサイズを小さくする方法

私はncursesのterminfoデータベースが/usr/share/terminfo約7MBであることを知りました(直接コンパイルしました)。 64MBのディスク容量を持つ組み込みLinuxにデプロイする場合は、大きすぎます。

不要なアイテムを削除し、最も頻繁に使用されるアイテムを維持してサイズを縮小する方法はありますか?これは実際に何をしますか?

編集する:一般的なPCやSSHクライアントで一般的に使用されるterminfoに関する情報や参考資料はありますか?

答え1

ansi、cygwin、linux、vt100、vt220、およびxterm terminfo定義を使用すると、実際に遭遇する端末エミュレーションの98%を達成できることを願っています。

さまざまな基本モードを使用する端末エミュレータでも、通常はユーザーの介入なしにvt100 / vt220モードをエミュレートするために起動できます。

答え2

小規模なterminfoデータベースを構築する一般的な方法は、アイテムを削除するのではなく、必要な部分だけを構築することです。

  • ncurses FAQterminfoデータベースは膨大です。すべて必要ですか?使用されたサンプルスクリプトの表示tic大量のデータから説明を抽出するオプション用語情報.src文書。
  • このアプローチは、試行錯誤プロセスになる可能性があるビルディングブロックの抽出にも依存します。または、次の出力を使用できます。infocmp、あまりエレガントですが、アイテム全体を取得します。
  • 一部のアプリケーションは戻るncursesのエントリとしてコンパイルできます(したがって、別のファイルは必要ありません)。繰り返しますが、これはncurses FAQから得られます。terminfoデータベースは本当に必要ですか?、使用情報CMPオプション。

答え3

RTFMタイプの回答を提供したくないが含まれていない情報のどれを探していますかman 5 terminfo?異なるセクションに複数のマニュアルページがある場合、マニュアルページを無視しやすいことがよくあります。一般的に見てみると、他のマニュアルページが見つかった最初のマニュアルページの下部にリストされていますが、マニュアルページが(参考資料のman man)セクションに分かれていることを覚えておくのも役立ちます。

   1   Executable programs or shell commands
   2   System calls (functions provided by the kernel)
   3   Library calls (functions within program libraries)
   4   Special files (usually found in /dev)
   5   File formats and conventions eg /etc/passwd
   6   Games
   7   Miscellaneous  (including  macro  packages  and  conventions)
   8   System administration commands (usually only for root)
   9   Kernel routines [Non standard]

/usr/share/terminfoから削除できる程度は、man 5 terminfo端末タイプの完全な制御権があるかどうかによって異なります(おそらくそうします)。 1つの端末タイプでのみ実行されることがわかっている場合は、端末記述の1つだけを除いてすべて削除できます。一部のシステムでは、これらのterminfoファイルが/etc/terminfo/または/lib/terminfo/にもありますが、アップストリームtarballで直接コンパイルするときにこれが正しいかどうかはわかりません。

関連情報