ConTeXt 无法在 Fedora Silvervlue 上运行(“严重的格式文件错误;我很困惑”,然后是“无法更改格式路径”)

ConTeXt 无法在 Fedora Silvervlue 上运行(“严重的格式文件错误;我很困惑”,然后是“无法更改格式路径”)

在 Fedora Silverblue 上,在工具箱中运行,以前运行良好的 ConTeXt 现在拒绝启动。

第一个错误如下:

(Fatal format file error; I'm stymied)mtx-context | fatal error: return code: 256

有一个常问问题项目,但无论多少fmtutil --all -usersudo fmtutil --all -syscontext --makesudo context --make不起作用。它仍然失败。

了解错误后,TeX 二进制文件不知道要使用哪种 TeX 方言。是纯 TeX、LaTeX 还是 ConTeXt?它缺少正确格式的文件来了解发生了什么。在新的工具箱中重新安装 texlive 并不能解决问题。那时我看到错误消息路径与我的主目录有关,具体来说~/.cache/texlive

我只是rm -rf ~/.cache/texlive(任何好的缓存都可以随时删除)。错误消失了。

现在,context返回成功错误代码,但没有生成文件,并且最后一行有一个可疑的错误消息:

resolvers       | formats | unable to change to format path '/var/home/mildred/.cache/texlive/luatex-cache/context/c8ffba5311d077c16376bba44d5fa793/formats/luatex'

该目录是空的(我之前删除了缓存),也context --make没有什么帮助

答案1

这里有一个关于这个特定错误的类似问题:MacTeX 2020:“无法更改格式路径”

错误的相关解释来自邮件列表主题是:

这些消息来自文件 luat-fmt.lua 的中间部分(在我的系统中分别是第 180 行和第 183 行),当时 ConTeXt 试图更改工作目录(这就是“更改”在此上下文中的意思,只是移动到其他目录,如 cd 或 chdir)。相关摘录如下

report_format("changing to format path %a",validformatpath)
lfs.chdir(validformatpath)
if dir.current() ~= validformatpath then
  return fatalerror(startupdir,"unable to change to format path %a",validformatpath)
end

在您的情况下,validformatpath 是 $TMPDIR 的子目录,位于 /var/folders/ 下。但是,如果您的 Mac 与我的类似,/var 实际上是指向 /private/var 的符号链接,因此 dir.current() 会报告以 /private 开头的路径,并且测试失败。

您可以通过将 TMPDIR 设置为其他值来解决这个问题,该值不以 /var 开头 - 也不是 /tmp,因为这也是一个符号链接:-) 它应该与您的主文件夹中的临时目录一起工作。

这里的问题不是出在 Mac OS X 路径上,而是出在 Fedora Silverblue 中的 homedit 是一个符号链接:

lrwxrwxrwx. 1 root root 9 Jan  3 18:40 /home -> /var/home

错误消息中显示,路径包含/home而不是/var/home

我们可以看到/usr/bin/context

#!/usr/bin/sh
export TEXMF=/usr/share/texlive/texmf-dist;
export TEXMFCNF=/usr/share/texlive/texmf-dist/web2c;
export TEXMFCACHE=$HOME/.cache/texlive;
/usr/bin/mtxrun --script context "$@"

解决您的问题的方法是运行(调整您的用户名):

HOME=/var/home/mildred context yourfile.tex

相关内容