Возникли проблемы при установке и обновлении TeX Live

Возникли проблемы при установке и обновлении TeX Live

Если вы вручную установили последнюю версию TeX Live следующим образом (установка от имени rootпользователя):

wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz
tar -xvzf install-tl-unx.tar.gz
cd install-tl-*
perl ./install-tl

При попытке обновления могут возникнуть ошибки.

При запуске tlmgr update --all(как не rootпользователь) возникают ошибки, связанные с cannot write to directory.

При использовании root(или sudo tlmgr update --all) ошибки имеют вид

tlmgr: Local TeX Live (2020) is older than remote repository (2022). Cross release updates are only supported with
update-tlmgr-latest(.sh/.exe) --update See https://tug.org/texlive/upgrade.html for details.

или bash: tlmgr: command not found.

Как решить эти проблемы?

Стоит ли управлять этим update-tlmgr-latestсверху?

решение1

Как обычный пользователь, вы не должны иметь возможности писать в общесистемную установку TeX Live, поэтому получение этой ошибки и хорошо, и правильно. Вы должны использовать либо определенного системного пользователя (например, texlive), либо суперпользователя root. Использование sudoдля запуска то же самое, что и использование root, и будет работать (но если вы использовали системного пользователя для первоначальной установки, вы должны использовать только этого пользователя, а не root).

Если tlmgrне найден, необходимо добавить путь к tlmgrисполняемому файлу в rootpath:

Запустить sudo su - ; nano ~/.bashrc(предполагая, что вы используете bashв качестве оболочки). Добавьте строку, похожую на следующую, затем сохраните и выйдите.

export PATH=/usr/local/texlive/2022/bin/linux-x86_64/:${PATH}

Если вы получили cross version error, исправление то же самое: добавьте правильный путь в начало rootпути , и он выберет его.

Но почему есть версия, которую вы не установили?

Обычно это будет версия, установленная менеджером пакетов для удовлетворения зависимости чего-то, что вы установили. Это может быть что-то простое, например редактор с режимом TeX (редактор Kileподходит под это описание).

Можно ли удалить старую версию TeX Live?

Вероятно, да. Но НЕ используйте rmдля удаления. Это вызовет больше проблем, чем решит. Используйте менеджер пакетов, для этого он и предназначен. Он может попытаться удалить некоторые вещи, которые вы хотите, поэтому обратите внимание на список вещей, которые будут удалены.

Если вы используете Debian Linux, есть несколько очень хорошихинструкциидля убеждения вашего менеджера пакетов ( apt, apper, synaptic), что у вас есть TeX Live, чтобы он не пытался снова установить устаревшую версию. Вы можете убедить RPM ( yum, dnf) в том же на дистрибутивах на основе RedHat, но точный процесс отличается и не рассматривается по этой ссылке. Кто-то наunix&linux.SEвозможно, мы сможем вам в этом помочь, но это выходит за рамки данного сайта.

Обновление выпусков (например, с 2022 на 2023 год):

Одна из ошибок выше указывает на запуск update-tlmgr-latest(.sh/.exe) --update. Если вы скопируете эту команду и запустите ее, она не сработает. Если вы работаете в Windows, вы должны использовать update-tlmgr-latest.exe --update, и это должно сработать. Если вы работаете в Linux, используйте update-tlmgr-latest.sh --update. Ошибка не совсем понятна, но она также предполагает некоторое знакомство с расширениями файлов и форматами исполняемых файлов для различных систем. У меня нет предложений по лучшему сообщению об ошибке, на случай, если кто-то, кто может это исправить, читает это.

Лично я бы не обновлял версию с помощью update-tlmgr-latest. Вместо этого я бы установил новую версию, либо оставив существующую версию на месте, либо удалив ее, как только буду доволен тем, что новая версия работает с моими документами.

Установка с использованием системного пользователя:

Выше упоминалось использование системного пользователя, а не rootдля установки системы TeX Live. Вот как это сделать:

Используя rootили sudo, создайте нового системного пользователя с именем, texliveиспользуя следующую команду (или что-то по существу похожее):

useradd -d /usr/local/texlive -m -r texlive
passwd -l texlive

Это создаст системного пользователя ( -r) с домашним каталогом /usr/local/texlive( -d /usr/local/texlive -m) и заблокирует пароль (так что не будет пароля, который может войти в учетную запись). Используйте sudo su - texliveдля изменения на texliveпользователя, затем запустите установку, как указано в вопросе.

Основная причина этого — разделение ответственности. Пользователь texliveиспользуется только для администрирования установки TeX Live. Его нельзя использовать для администрирования какой-либо другой системы, и совершенно ясно, какие файлы являются частью установки TeX Live (они принадлежат texlive, а не root).

Продвинутая тема — Совместная работа нескольких версий TeX Live:

(автоматическая версия работает на Linux, может работать или не работать на Mac, не будет работать на Windows)

Хорошие новости! Можно установить несколько разных релизов Tex Live, не мешая друг другу. Устанавливайте каждый в отдельный каталог, например /usr/local/texlive/<year>/.

Для выбора между версиями вы можете вручную изменить PATHпеременную или заставить компьютер сделать это автоматически. Чтобы компьютер сделал это, вы можете использовать пакет environment-modulesс файлом модуля, похожим на этот (создайте по одному для каждой установленной версии TeX Live):

#%Module1.0#######################################################################
#
#
module-whatis   "Loads settings for the TeXLive 2023"
prepend-path    PATH            /usr/local/tex/texlive/2023/bin/x86_64-linux
prepend-path    MANPATH         /usr/local/tex/texlive/2023/texmf/doc/man
prepend-path    INFOPATH        /usr/local/tex/texlive/2023/texmf/doc/info

Если у вас есть один такой файл модуля для каждой версии, вы можете легко выбрать версию с помощью module load texlive/2023и вернуться к версии по умолчанию с помощью module remove texlive/2023. Опять же, для получения конкретной помощи по использованию файлов модулей таким образом,unix&linux.SEэто хорошее место, чтобы попросить о помощи (конечно, предварительно просмотрев страницы руководства).

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