当我尝试通过tlmgr
(或fmtutil-sys --all
直接运行)更新软件包时,TeXLIve 报告:
/usr/local/texlive/2013/bin/i386-linux/fmtutil: 395: /usr/local/texlive/2013/bin/i386-linux/fmtutil: /usr/local/texlive/2013/texmf/texconfig/tcfmgr: not found
fmtutil: config file `fmtutil.cnf' not found.
kpsewhich fmtutil.cnf reports "/usr/local/texlive/2013/texmf-var/web2c/fmtutil.cnf"
这是 TeX Live 2013 的全新安装,所以我不确定出了什么问题(或者如何修复它)。
答案1
TEXMF
您已经在您的环境中设置了变量TEXMFLOCAL
,这并不是不推荐的。
TeX Live 发行版中的 TeX 程序能够在运行时通过读取在适当位置找到的文件来确定这些变量的正确值texmf.cnf
。这些位置是通过询问系统正在运行的二进制文件的位置来确定的。在典型的 (vanilla) TeX Live 2013 中,二进制文件存储在
/usr/local/texlive/2013/bin/<arch>
(其中<arch>
取决于机器和正在运行的操作系统)。通过询问操作系统,正在运行的程序知道 的值SELFAUTOPARENT
,在本例中/usr/local/texlive/2013
,并尝试读取texmf.cnf
那里的文件(如果存在)。然后它读取
/usr/local/texlive/2013/texmf-dist/web2c/texmf.cnf
这就是你的设置失败的地方。TeX 程序永远不会覆盖已经设置的变量的值。因此,第二个texmf.cnf
文件没有设置TEXMF
为 2013 年发行版的正确值,而 2013 年发行版应该是
/usr/local/texlive/2013/texmf-dist
而 TeX Live 2012 将其设置为/usr/local/texlive/2012/texmf
。这就是出错的地方。
故事的寓意是:永远不要TEX...
在环境中设置变量,除非TEXINPUTS
。其他...INPUTS
变量也可以设置,请查看文档。