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

相關內容