安装 TeXlive 2021:我找不到文件“dehypht-x-2021-02-26.tex”

安装 TeXlive 2021:我找不到文件“dehypht-x-2021-02-26.tex”

嗨,我正在尝试为不同的 TeXLive 方案(infraonly、minimal、basic、small、medium 和 full)构建各种 Docker 映像。但是,最近,我无法构建最新的 TeXlive 版本(截至撰写本文时tl-20210622);我的每周构建都无法安装该minimal方案。日志的重要部分如下:

Skipping module "grouptypes"; Loading module "interactionmodes";
Skipping module "nodetypes"; Skipping module "iftypes";)
(/usr/local/texlive/texmf-dist/tex/generic/config/language.def
(/usr/local/texlive/texmf-dist/tex/generic/hyphen/hyphen.tex)
! I can't find file `dehypht-x-2021-02-26.tex'.
\addlanguage ...me =#5 \uselanguage {#1}\input #2 
                                                  \if *#3*\else \input #3 \f...
l.32 ...1-02-26}{dehypht-x-2021-02-26.tex}{}{2}{2}
                                                  
(Press Enter to retry, or Control-D to exit)
Please type another input file name: 
! Emergency stop.
\addlanguage ...me =#5 \uselanguage {#1}\input #2 
                                                  \if *#3*\else \input #3 \f...
l.32 ...1-02-26}{dehypht-x-2021-02-26.tex}{}{2}{2}
                                                  
!  ==> Fatal error occurred, no output PDF file produced!
Transcript written on pdftex.log.
fmtutil [INFO]: log file copied to: /usr/local/texlive/texmf-var/web2c/pdftex/pdftex.log
fmtutil [INFO]: --- remaking etex with pdftex
fmtutil: running `pdftex -ini   -jobname=etex -progname=etex -translate-file=cp227.tcx *etex.ini' ...

冗长的控制台日志,包括我从启动 docker 镜像开始输入的所有命令以及我收到的所有控制台输出,可以在这里找到:https://pastebin.com/E3s4QAXh

我的复现步骤:

  1. docker run -it ubuntu:focal /bin/bash
  2. apt update && apt installcurl诸如、wget等包裹
  3. cd /tmp/texlive
  4. wget --user=anonymous --password=ftp --no-parent --no-verbose --recursive --no-directories http://mirrors.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
  5. ./install-tl -profile=/tmp/texlive/texlive.profile -repository=http://mirrors.ctan.org/systems/texlive/tlnet/
  6. export PATH="/usr/local/texlive/bin/x86_64-linux/:$PATH"hash -r
  7. tlmgr install scheme-minimal

最后一步是失败的地方。如果我想tlmgr install scheme-basictlmgr install scheme-small,它也会失败,只有当我 时才有效tlmgr install scheme-medium

这让我相信方案的设置方式存在问题,即缺少某些scheme-basic仅在安装时可用的文件scheme-medium。但令人惊讶的是,scheme-infraonly几周前我在 Ubuntu 20.04 上本地安装了它,并且它正常工作。我确实按顺序安装了不同的方案。

我的texlive.profile文件看起来像这样

# texlive.profile written on Thu Jun 10 13:55:38 2021 UTC
# It will NOT be updated and reflects only the
# installation profile at installation time.
selected_scheme scheme-infraonly
TEXDIR /usr/local/texlive
TEXMFCONFIG ~/.texlive/texmf-config
TEXMFHOME ~/texmf
TEXMFLOCAL /usr/local/texlive/texmf-local
TEXMFSYSCONFIG /usr/local/texlive//texmf-config
TEXMFSYSVAR /usr/local/texlive//texmf-var
TEXMFVAR ~/.texlive/texmf-var
binary_x86_64-linux 1
instopt_adjustpath 0
instopt_adjustrepo 1
instopt_letter 0
instopt_portable 0
instopt_write18_restricted 1
tlpdbopt_autobackup 1
tlpdbopt_backupdir tlpkg/backups
tlpdbopt_create_formats 1
tlpdbopt_desktop_integration 1
tlpdbopt_file_assocs 1
tlpdbopt_generate_updmap 0
tlpdbopt_install_docfiles 1
tlpdbopt_install_srcfiles 1
tlpdbopt_post_code 1
tlpdbopt_sys_bin /usr/local/bin
tlpdbopt_sys_info /usr/local/share/info
tlpdbopt_sys_man /usr/local/share/man
tlpdbopt_w32_multi_user 1

我在这里遗漏了什么?我一开始以为我可能得到了一个坏的镜像,但是在几天内、一天中的不同时间甚至在不同的机器上尝试了它。没有区别。

我使用的 dockerfile 托管在https://gitlab.com/philipptempel/docker-ubuntu-tug-texlive/-/tree/latest欢迎您进行克隆、分叉、尝试等。

答案1

这个问题是由我引入的,因为在TEXMFSYSCONFIG和的配置值中,我无意中出现了两个斜杠TEXMFSYSVAR。正如 Norbert 在 tex-live 邮件列表中指出的那样,这些值被 texlive.profile 用来kpse将连续的斜杠解释为递归目录解析。因此,我的 texlive.profile 是错误的,基本上TEXMFSYSCONFIG /usr/local/texlive/*/texmf-config以 unix-shell 的方式显示为 。

我不知道这个实现细节,kpse或者实际上,尽管看到双斜线,但并不认为它们会引起任何问题/伤害。

修复这个小错误后,一切都按预期运行。

长话短说:最好是使用有效的texlive.profile

PS:TeX Live 方面没有针对此问题的可靠解决方案,即没有对配置值进行清理检查。因此,我的粗心大意导致发现了一个失败的极端情况。

相关内容