Я все еще запускаю Ubuntu 12.04, и я хотел бы вручную установить новый texlive. Один из первых шагов для ручной установки должен избавиться от существующих установок texlive. Однако я хочу сохранить свое значение по умолчанию texlive установкой из репозиториев Ubuntu, так как у меня есть огромное количество ЛАТЕКСНЫХ документов, которые иногда могут полагаться на определенные для версии модификации.
Поэтому мой вопрос состоит в том, как использовать собственную texlive установку (или возможный несколько) параллельно к установке из репозиториев Ubuntu? Что шаги в ручной установке изменяют для объяснения существующей установки? И как я говорю свою систему, какое texlive распределение я хочу использовать?
Я думаю, отвечая на этот вопрос, вероятно, ответит на все мои связанные вопросы также, как, например: текущее распределение, только определенное исполняемыми файлами, которые в настоящее время находятся в PATH
? И если так, как я могу быстро переключиться между дистрибутивами? Это похоже на texlive двоичные файлы в /usr/bin
не символьные ссылки, но реальные двоичные файлы, таким образом, я не уверен, как я могу скрыть их существование, не удаляя их. И что может также быть сложным: Как я могу узнать все двоичные файлы, которые принадлежат texlive распределению (pdftex, pdflatex, luatex, xetex...)? Будет изменение распределения, автоматически влияют на системы/редакторов сборки (как rubber/latexmk/eclipse/gedit) также, или действительно ли необходимо делать ручные изменения каждым разом?
Отказ от ответственности: Я нашел решение, и это, кажется, работает хорошо.
Обновление: Я могу теперь подтвердить что процедура ниже работ также с 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
- на самом деле они все не определены. Но до сих пор все, кажется, работает.