Установите собственный texlive параллельно на repo версии

Я все еще запускаю Ubuntu 12.04, и я хотел бы вручную установить новый texlive. Один из первых шагов для ручной установки должен избавиться от существующих установок texlive. Однако я хочу сохранить свое значение по умолчанию texlive установкой из репозиториев Ubuntu, так как у меня есть огромное количество ЛАТЕКСНЫХ документов, которые иногда могут полагаться на определенные для версии модификации.

Поэтому мой вопрос состоит в том, как использовать собственную texlive установку (или возможный несколько) параллельно к установке из репозиториев Ubuntu? Что шаги в ручной установке изменяют для объяснения существующей установки? И как я говорю свою систему, какое texlive распределение я хочу использовать?

Я думаю, отвечая на этот вопрос, вероятно, ответит на все мои связанные вопросы также, как, например: текущее распределение, только определенное исполняемыми файлами, которые в настоящее время находятся в PATH? И если так, как я могу быстро переключиться между дистрибутивами? Это похоже на texlive двоичные файлы в /usr/bin не символьные ссылки, но реальные двоичные файлы, таким образом, я не уверен, как я могу скрыть их существование, не удаляя их. И что может также быть сложным: Как я могу узнать все двоичные файлы, которые принадлежат texlive распределению (pdftex, pdflatex, luatex, xetex...)? Будет изменение распределения, автоматически влияют на системы/редакторов сборки (как rubber/latexmk/eclipse/gedit) также, или действительно ли необходимо делать ручные изменения каждым разом?

3
задан 17 March 2014 в 16:16

1 ответ

Отказ от ответственности: Я нашел решение, и это, кажется, работает хорошо.

Обновление: Я могу теперь подтвердить что процедура ниже работ также с Texlive 2015.

В целом похоже, что работа с параллельными установками легче, чем ожидалось. Для установки собственной версии, я сделал следующее:

  • Загрузите сетевой установщик и извлеките его во временном месте (сетевой установщик является интерактивным инструментом командной строки, позволяя изменять различные настройки во время установки).

  • Запустите установщик портативный режим, т.е. install-tl -portable. Это поднимет главное меню установщика.

  • В этом меню установки я просто изменился TEXDIR (путем нажатия D) к пути в моем доме, например, ~/bin/texlive. Это автоматически изменяет другой TEXDIR* также. Я не изменил ничто больше (схема установки была установлена на полную схему). В целом, установка с сетевым установщиком очень удобна.

Вдохновленный разделом "Environment variables for Unix" документации я создал файл setenv.sh в каталоге установки со следующим содержанием:

dir=`cd \`dirname $0\` && pwd`
export PATH="$dir/bin/x86_64-linux:$PATH"
export MANPATH="$dir/texmf-dist/doc/man:$MANPATH"
export INFOPATH="$dir/texmf-dist/doc/info:$INFOPATH"

Для переключения на новое texlive распределение I просто source этот файл. До сих пор похоже, что все работает хорошо и с существующим и с новым texlive распределением.

Похоже, что Kpathsea является инструментом в texlive, который ответственен за определение местоположения различных частей/каталогов распределения (поиск пути Kpathsea). Я записал следующий сценарий, чтобы проверить, изменяет ли переключение на новое распределение действительно все они TEXMF* каталоги:

echo "which kpsexpand: `which kpsexpand`"
echo "TEXMFDIST:       `kpsexpand '$TEXMFDIST'`"
echo "TEXMFLOCAL:      `kpsexpand '$TEXMFLOCAL'`"
echo "TEXMFHOME:       `kpsexpand '$TEXMFHOME'`"
echo "TEXMFCONFIG:     `kpsexpand '$TEXMFCONFIG'`"
echo "TEXMFSYSCONFIG:  `kpsexpand '$TEXMFSYSCONFIG'`"
echo "TEXMFVAR:        `kpsexpand '$TEXMFVAR'`"
echo "TEXMFSYSVAR:     `kpsexpand '$TEXMFSYSVAR'`"
echo "TEXMFCACHE:      `kpsexpand '$TEXMFCACHE'`"

Выполнение этого, не получая мой setenv.sh файл дает следующий вывод:

which kpsexpand: /usr/bin/kpsexpand
TEXMFDIST:       /usr/share/texmf-texlive
TEXMFLOCAL:      /usr/local/share/texmf
TEXMFHOME:       /home/bluenote/texmf
TEXMFCONFIG:     /home/bluenote/.texmf-config
TEXMFSYSCONFIG:  /etc/texmf
TEXMFVAR:        /home/bluenote/.texmf-var
TEXMFSYSVAR:     /var/lib/texmf
TEXMFCACHE:      $TEXMFCACHE

Это показывает, что стандарт texlive из репозиториев Ubuntu используется. После определения источника вывод становится:

which kpsexpand: /home/bluenote/bin/texlive/2013/bin/x86_64-linux/kpsexpand
TEXMFDIST:       /home/bluenote/bin/texlive/2013/texmf-dist
TEXMFLOCAL:      /home/bluenote/bin/texlive/2013/../texmf-local
TEXMFHOME:       /home/bluenote/bin/texlive/2013/../texmf-local
TEXMFCONFIG:     /home/bluenote/bin/texlive/2013/texmf-config
TEXMFSYSCONFIG:  /home/bluenote/bin/texlive/2013/texmf-config
TEXMFVAR:        /home/bluenote/bin/texlive/2013/texmf-var
TEXMFSYSVAR:     /home/bluenote/bin/texlive/2013/texmf-var
TEXMFCACHE:      /home/bluenote/bin/texlive/2013/texmf-var:/home/bluenote/bin/texlive/2013/texmf-var

Я не полностью понимаю, почему использование другого двоичного файла заставляет все они "tex переменные" изменяться также. Я ожидал, что двоичный файл не имеет никакой информации, что это - часть другого распределения, но к счастью это имеет! Обратите внимание, что они "tex переменные" не являются никакими подобными Unix переменными среды (вот почему, важно использовать одинарные кавычки при передаче их kpsexpand). Я немного удивлен, что не должен был изменять ни одного из них через export - на самом деле они все не определены. Но до сих пор все, кажется, работает.

2
ответ дан 1 December 2019 в 17:07

Другие вопросы по тегам:

Похожие вопросы: