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檔案xindy-src/modules/inputenc
並轉義l中的開頭{
。 11(如if (/\\indexentry\{(.+)--([8-9a-f][0-9a-f])\}\{1\}/) {
)。再次運行make
。 - 享受安裝的樂趣。一個好的嘗試是備份 TLs origin xindy 並替換它。如果它不起作用,請尋找其中一份指南。