tlmgr 在更新期间安装 /usr/local 之外的文件 --all in TL2016

tlmgr 在更新期间安装 /usr/local 之外的文件 --all in TL2016

/usr/local/texlive/2016/texlive 2016由安装程序在 gentoo Linux 系统上本地安装install-tl -gui

返回更新tlmgr

/usr/local/texlive/2016/bin/x86_64-linux# ./tlmgr update --all

[..] 
Transcript written on xelatex.log.
fmtutil [INFO]: /var/lib/texmf/web2c/xetex/xelatex.fmt installed.
fmtutil [WARNING]: inifile csplain.ini for pdfcsplain/xetex not found.
fmtutil [INFO]: Disabled formats: 6
fmtutil [INFO]: Successfully rebuilt formats: 3
fmtutil [INFO]: Not selected formats: 40
fmtutil [INFO]: Failed to build: 1 (xetex/pdfcsplain)
fmtutil [INFO]: Total formats: 50
fmtutil [INFO]: exiting with status 1

我很奇怪 texlive 会将文件安装在 之外/usr/local/var/lib/texmf/web2c/xetex/xelatex.fmt通常由操作系统的包管理器负责。我担心这可能会与包管理器发生冲突。

这是错误吗?是不是我忘记设置某个变量,导致 TL 安装到了错误的文件夹中?

答案1

您正在使用tlmgr但尚未调整的PATH

tlmgr依次调用fmtutil,并且在您的情况下使用fmtutil由包管理器安装的。/usr/bin

调整以在其他组件之前PATH包含...。/usr/local/texlive/PATH

答案2

确保情况并非如此的最好方法是不要让它接触外面的任何东西/usr/local/texlive

如果您使用专用用户/组安装 TeX Live 并使用该身份进行更新,那么就不可能tlmgr触及任何外部事物/usr/local/texlive,即使在不太可能发生的错误或错误导致其进行尝试的情况下也是如此。

唯一需要 root 权限的部分是创建用户和目录,并授予该用户该目录的所有权。

/usr/local/texlive请注意,如果您犯了错误或忽略了某些事情,这也可以防止外部文件被触碰,就像这里的情况一样。

  1. 创建用户/组例如texlive:texlive

  2. 确保/usr/local/texlive存在且归 拥有texlive:texlive

  3. su texlive在安装 TeX Live 之前以及在使用任何tlmgr安装更新、维护和管理之前。

相关内容