【问题标题】:Changing ncurses 6 "terminfo-dirs" after compilation/installation编译/安装后更改 ncurses 6“terminfo-dirs”
【发布时间】:2017-01-20 16:37:02
【问题描述】:

有一个 ncurses6 最初安装在用户主目录中,比如说“/home/test”,所以在这个 ncurses 路径上构建了一个测试环境,许多(开发中的)应用程序已经编译并且现在正在运行,仅取决于当前的 HOME 环境变量。

但是,由于我们无法控制的目的,我们必须更改用户主目录。现在它与“/home/test”不同了。

外部应用程序和 ncurses 工具仍在工作,我们只需使用 LD_LIBRARY_PATH 指向库并使用我们之前用于 ncurses 工具的更具体的路径:

LD_LIBRARY_PATH=~/bin/ncurses-6.0/lib ~/bin/ncurses-6.0/bin/tic

但是现在,在更改用户主目录后,我们还需要指向 terminfo 数据库:

TERMINFO=~/bin/ncurses-6.0/share/terminfo LD_LIBRARY_PATH=~/bin/ncurses-6.0/lib ~/bin/ncurses-6.0/bin/tic

但是,有什么方法可以在不重新编译和重新安装 ncurses 的情况下使 TERMINFO 数据库路径永久化?编译时ncurses是硬编码吗?

【问题讨论】:

    标签: ncurses terminfo


    【解决方案1】:

    默认值是编译的。您可以使用环境变量覆盖那些(TERMINFO 是标准,TERMINFO_DIRS 是扩展)。这对 ncurses6 来说并不新鲜(它早于 ncurses4,二十年前)。

    最实用的“永久”更改是将覆盖放在您的 shell 初始化中。

    可以修改 ELF 二进制文件(没有校验和),但生成的路径不能再长了。它可能更短,因为字符串是以空值结尾的。由于您的示例添加到路径中,因此无论如何这对您不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-09
      • 2019-10-08
      • 2012-10-02
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 2020-10-10
      相关资源
      最近更新 更多