在最新的操作系统上运行 xindy

在最新的操作系统上运行 xindy

cfr曾经提出并回答了如下问题:如何在具有 libncurses.so.6 的系统上使用 xindy?

简而言之:每次在实际文件(不是帮助菜单)上运行 xindy/texindy 时,都会出现类似以下内容的结果

/usr/local/texlive/2017/bin/x86_64-linux/xindy.run: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

问题是,给出的解决方案现在不再有效。运行最新的 TeX Live 2017 (vanilla) 和 Arch Linux x64 并访问 AUR,我尝试使用答案中给出的软件包。不幸的是,两者都无法验证,即使跳过签名检查也无济于事。

也许可以针对另一个库手动编译 xindy,但是 2.5.1 版本(或更新版本)的官方源代码在哪里?

或者是否有其他方法可以让 xindy 在“现代”操作系统上运行?

更新:我试图汇编 2010 年以来的古代资料这里(CVS)中所有必要的二进制文件和代码文件都来自 1996 年(没有运气)。xindy 主页上说 xindy 2.2 是一个候选版本,尽管 TeX Live 2017 附带了 xindy 2.5.1。

更新 2:正如@DavidCarlisle 在聊天中所展示的那样,通常的行为是

$ xindy --version
xindy release: 2.5.1
xindy script version: 1.18
xindy kernel version: 3.0
CLISP version 2.49.50 (2017-03-19) (built on desktop-new [192.168.1.4])
    architecture: X86_64

由于缺少库,内核版本和 clisp 版本甚至没有显示。

答案1

好的,经过一番折腾之后,我们找到了两个可行的解决方案:

  1. 按照 cfr 建议的方式进行

    1. 安装兼容包,在 Arch 上是ncurses5-compat-libslib32-ncurses5-compat-libs(因为您的 TL 架构需要它)。目前该包ncurses5-compat-libs被标记为过期,但它仍然有效。并且您需要跳过对这些包的完整性检查(目前),使用类似

       yaourt --m-arg --skipchecksums --m-arg --skippgpcheck -Sb ncurses5-compat-libs
      
    2. 运行sudo ldconfig重建库缓存。

    3. xindy应该运行。
  2. 从头编译(适用于所有发行版)
    1. 从其源代码库下载 TeX Live(参见说明)这里
    2. 切换到 xindy 目录(utils/xindy
    3. 执行./configure。如果需要,请先编译所需的 TeX Live 基础知识。
    4. 执行make。您将遇到错误Unescaped left brace in regex is illegal here in regex。打开目录中的 perl 文件并转义l. 11 中的xindy-src/modules/inputenc开头(如)。再次运行。{if (/\\indexentry\{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {make
    5. 祝您安装愉快。一个好的尝试是备份 TLs 源 xindy 并替换它。如果不行,请查找其中一个指南。

相关内容