0

由于某些原因,我正在从源代码构建 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-256colorxterm/lib/terminfo. 当我使用包管理器(适用于 Ubuntu 17.10)安装 ncurses 时,它可以工作。所以我假设这个包选择了正确的路径。我复制了xterm-256colorresp。xtermfrom /lib/terminfoto/usr/share/terminfo/和我的构建现在可以在两个系统上运行。为什么存在两条不同的路径,为什么这两个版本的 ncurses 选择两条不同的路径?我需要一个开箱即用的 ncurses 柯南包,无需复制描述文件。

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

4

1 回答 1

2

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

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

/lib/terminfo是特定于 Debian 的(Ubuntu 没有为 ncurses 提供任何更改;他们只是重新编译 Debian 软件包:大多数 Ubuntu 的 ncurses 错误报告都解决了他们在这样做时遇到的问题)。

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

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

于 2018-03-03T15:46:01.563 回答