Если вы вручную установили последнюю версию 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
исполняемому файлу в root
path:
Запустить 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это хорошее место, чтобы попросить о помощи (конечно, предварительно просмотрев страницы руководства).