Установите нативный текстиль параллельно с версией репо

Я все еще использую Ubuntu 12.04, и я хотел бы вручную установить самый последний текстовый файл. Одним из первых шагов для ручной установки является избавление от существующих установок texlive. Тем не менее, я хочу сохранить мою стандартную инсталляцию texlive из репозиториев Ubuntu, так как у меня огромное количество документов LaTeX, которые иногда могут зависеть от модификаций, зависящих от версии.

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

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

1 ответ

Решение

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

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

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

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

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

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

Вдохновленный разделом документации "Переменные среды для 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, я просто 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

Это показывает, что используется стандартный текстовый файл из репозиториев 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" не являются unix-подобными переменными среды (поэтому важно использовать одинарные кавычки при передаче их в kpsexpand). Я немного удивлен, что мне не пришлось изменять ни один из них через export - на самом деле, они все не определены. Но пока все работает.

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