如何减小 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 数据库的常用方法不是删除条目,而是仅构建所需的部分:

答案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]

看来man 5 terminfo您可以从 /usr/share/terminfo 删除多少内容将取决于您是否完全控制终端类型(您可能会这样做)。如果您知道您只会在一种终端类型上运行,则可以删除除一种终端描述之外的所有终端描述。在某些系统上,这些 terminfo 文件也位于 /etc/terminfo/ 或 /lib/terminfo/ 中,但我不确定当您直接从上游 tarball 编译时是否会出现这种情况。

相关内容