ncurses如何搜索终端描述

时间:2018-03-03 11:55:24

标签: ncurses terminfo ubuntu-17.10

由于某些原因,我正在从源代码构建ncurses 6.1。首先,我使用

配置源
./configure

然后我用

构建它
make

两者都没有争论。当我尝试运行测试时,我收到错误消息

Error opening terminal: xterm-256color.

在我的本地系统(Ubuntu 17.10)和

Error opening terminal: xterm

在构建服务器(Jenkins Docker容器)上。

我发现这个版本正在寻找/usr/share/terminfo/中的终端描述。我的本地系统有很多描述但没有xterm-256color。在构建服务器上,文件夹/usr/share/terminfo/为空。我在xterm-256color找到了xterm/lib/terminfo。当我使用包管理器(适用于Ubuntu 17.10)安装ncurses时,它可以工作。所以我假设这个包选择正确的路径。我复制了xterm-256color resp。从xterm/lib/terminfo的{​​{1}},我的版本现在可以在两个系统上运行。为什么存在两种不同的路径?为什么这两种版本的ncurses选择两种不同的路径?我需要一个开箱即用的骗局包,不需要复制描述文件。

这可能与以下内容重复: How to set custom search paths for the terminfo database when building ncurses from source

1 个答案:

答案 0 :(得分:2)

答案在configure末尾的摘要中(问题中没有显示)。但是,运行infocmp -D将显示infocmp在查找说明时将使用的目录。

您可以使用TERMINFOTERMINFO_DIRS环境变量修改行为。

/lib/terminfo是特定于Debian的(Ubuntu没有为ncurses提供任何更改;它们只是重新编译Debian软件包:ncurses的大多数Ubuntu bug报告处理它们在执行此操作时遇到的问题)。

默认情况下,Debian会在该目录中安装某人的最小终端数据库的概念。安装ncurses-term以获得完整的终端数据库。

顺便说一句,在已经安装了ncurses的Debian / Ubuntu /其他系统上编译和安装ncurses存在破坏现有库的风险,例如bash和你可能需要的其他实用程序