tlmgr устанавливает файлы за пределами /usr/local во время обновления --все в TL2016

tlmgr устанавливает файлы за пределами /usr/local во время обновления --все в TL2016

texlive 2016 был установлен локально в /usr/local/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для обновления установки, обслуживания и администрирования.

Связанный контент