(注:这与这个问题类似,但那里的答案不适用。)
在 FreeBSD 下运行,我通过 FreeBSD 的常用 pkg 方法安装了 ncurses,但是因为我看到以前工作的 Curses 程序有一些奇怪的行为,所以我决定从官方网站下载一个 ncurses 源 tarball 并在我的下编译它主目录。
编译顺利,但尝试运行任何包含的测试程序会导致:
Error opening terminal: xterm.
文档确实说:
注意:您必须已安装 terminfo 数据库,或设置 环境变量 $TERMINFO 指向 SVr4 兼容的 terminfo 运行测试程序之前的数据库。并非所有供应商的术语信息 数据库与 SVr4 兼容,但大多数似乎都是。
所以看起来答案是设置 TERMINFO,但是设置什么呢?我在构建目录本身下没有看到任何 terminfo 数据库,但我确实有一个文件
/usr/local/share/misc/terminfo.db
作为常规 FreeBSD 安装的结果而安装。
尽管如此,设置(csh 语法)
setenv TERMINFO /usr/local/share/misc/terminfo.db
(或省略 .db
扩展名)并没有任何区别。
(注意:这应该不重要,因为到目前为止我还没有尝试安装本地构建,但是当我运行“配置”时,我使用了:
./configure --prefix=$HOME
,以便它将安装在我的主目录下。
默认情况下,ncurses 使用(读/写)终端描述的目录树。 (可以在 ncurses 端口的 makefile 中看到),它读取/写入散列数据库文件,以及读取目录树。
ncurses 源代码中的INSTALL 文件详细介绍了 --with-hashed-db