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
好的,经过一番折腾之后,我们找到了两个可行的解决方案:
按照 cfr 建议的方式进行
安装兼容包,在 Arch 上是
ncurses5-compat-libs
或lib32-ncurses5-compat-libs
(因为您的 TL 架构需要它)。目前该包ncurses5-compat-libs
被标记为过期,但它仍然有效。并且您需要跳过对这些包的完整性检查(目前),使用类似yaourt --m-arg --skipchecksums --m-arg --skippgpcheck -Sb ncurses5-compat-libs
运行
sudo ldconfig
重建库缓存。xindy
应该运行。
- 从头编译(适用于所有发行版)
- 从其源代码库下载 TeX Live(参见说明)这里)
- 切换到 xindy 目录(
utils/xindy
) - 执行
./configure
。如果需要,请先编译所需的 TeX Live 基础知识。 - 执行
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
- 祝您安装愉快。一个好的尝试是备份 TLs 源 xindy 并替换它。如果不行,请查找其中一个指南。