ncurses如何搜索终端描述
How does ncurses search for terminal descriptions
出于某些原因,我正在从源代码构建 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-256color
和 xterm
。当我使用包管理器(适用于 Ubuntu 17.10)安装 ncurses 时,它可以工作。所以我假设这个包选择了正确的路径。我分别复制了 xterm-256color
。 xterm
从 /lib/terminfo
到 /usr/share/terminfo/
,我的构建现在可以在两个系统上运行。为什么会存在两条不同的路径,为什么这两个版本的ncurses会选择两条不同的路径?我需要一个开箱即用的 ncurses 包,无需复制描述文件。
这可能是以下内容的重复:
How to set custom search paths for the terminfo database when building ncurses from source
答案在 configure
末尾的摘要中(问题中未显示)。但是 运行 infocmp -D
将显示 infocmp
在查找描述时会使用的目录。
您可以使用 TERMINFO
and TERMINFO_DIRS
环境变量修改行为。
/lib/terminfo
是 Debian-specific(Ubuntu 没有为 ncurses 提供任何更改;他们只是重新编译 Debian 软件包:大多数 Ubuntu ncurses 处理的错误报告他们在这样做时遇到的问题)。
默认情况下,Debian 会在该目录中安装某人认为的最小终端数据库。安装 ncurses-term
以获得完整的终端数据库。
顺便说一句,在已安装 ncurses 的 Debian/Ubuntu/other 系统上编译和安装 ncurses 存在破坏 bash
和您使用的其他实用程序(例如)使用的现有库的风险可能需要。
出于某些原因,我正在从源代码构建 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-256color
和 xterm
。当我使用包管理器(适用于 Ubuntu 17.10)安装 ncurses 时,它可以工作。所以我假设这个包选择了正确的路径。我分别复制了 xterm-256color
。 xterm
从 /lib/terminfo
到 /usr/share/terminfo/
,我的构建现在可以在两个系统上运行。为什么会存在两条不同的路径,为什么这两个版本的ncurses会选择两条不同的路径?我需要一个开箱即用的 ncurses 包,无需复制描述文件。
这可能是以下内容的重复: How to set custom search paths for the terminfo database when building ncurses from source
答案在 configure
末尾的摘要中(问题中未显示)。但是 运行 infocmp -D
将显示 infocmp
在查找描述时会使用的目录。
您可以使用 TERMINFO
and TERMINFO_DIRS
环境变量修改行为。
/lib/terminfo
是 Debian-specific(Ubuntu 没有为 ncurses 提供任何更改;他们只是重新编译 Debian 软件包:大多数 Ubuntu ncurses 处理的错误报告他们在这样做时遇到的问题)。
默认情况下,Debian 会在该目录中安装某人认为的最小终端数据库。安装 ncurses-term
以获得完整的终端数据库。
顺便说一句,在已安装 ncurses 的 Debian/Ubuntu/other 系统上编译和安装 ncurses 存在破坏 bash
和您使用的其他实用程序(例如)使用的现有库的风险可能需要。