ncurses 如何搜索终端描述



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

这可能是以下内容的副本: 如何为terminfo数据库设置自定义搜索路径,从源代码构建ncurses

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新