/usr/share/terminfo
にあるncursesのterminfoデータベースが約7MBであることに気付きました(私はそれを自分でコンパイルしました)。 64MBのディスク容量の組み込みLinuxにデプロイしたい場合、これは大きすぎます。
不要なエントリを削除してサイズを縮小し、最も使用されているエントリを保持する方法はありますか?そして、これは実際には何のためですか?
[〜#〜] edit [〜#〜]:通常のPCまたはSSHクライアントで一般的に使用されるterminfoの情報または参照はありますか?
Ansi、cygwin、linux、vt100、vt220、およびxterm terminfoの定義を使用すると、実際に遭遇するターミナルエミュレーションの98%に到達できると思います。
ネイティブモードが異なるターミナルエミュレーターでさえ、多くの場合ユーザーの介入なしに、vt100/vt220モードをエミュレートするように指示される可能性があります。
エントリを削除するのではなく、小さなterminfoデータベースを構築するための通常のアプローチは、必要な部分だけを構築することです。
tic
オプションを使用して、かなり大きな terminfo.src ファイルから説明を抽出するサンプルスクリプトを示しています。infocmp
の出力を使用して、エレガントではありませんが、完全なエントリを取得することもできます。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]
man 5 terminfo
から、/ usr/share/terminfoからどれだけ取り除くことができるかは、端末タイプを完全に制御できるかどうかに依存するようです(おそらくそうします)。 1つの端末タイプでのみ実行することがわかっている場合は、1つを除くすべての端末の説明を削除できる可能性があります。一部のシステムでは、これらのterminfoファイルは/ etc/terminfo /または/ lib/terminfo /にもありますが、アップストリームtarballから直接コンパイルする場合にこれが当てはまるかどうかはわかりません。