[ @manjaro @install @LaTeX ]
Это пошаговая инструкция для нестандартной, но исключительно однозначной, точной и грамотной ручной установки всего набора LaTeX из его официального iso-файла с неординарной установкой редактора Kile (KDE) в Manjaro.
Стандартная установка
Можно поставить через Pamac ’texlive-full’ и ’Kile’. LaTeX будет установлен в автоматическом режиме в /opt/
Добавить в системную переменную PATH путь к установленному LaTeX:
mcedit ~/.profile
Добавить путь к исполняемым файлам LaTeX в его нижнюю часть:
export PATH="$PATH:/opt/texlive/2019/bin/x86_64-linux"
В каталог /usr/local/bin добавить два symbolic links к исполняемым скриптам:
sudo ln -s /opt/texlive/2019/bin/x86_64-linux/latexmk sudo ln -s /opt/texlive/2019/bin/x86_64-linux/bibtex
Restart and enjoy your TeXLive.
Но я предпочитаю нестандартную установку.
Предусловия нестандартной установки
В этом файле полно упоминаний переменной "$userHomeFolder". Разумно сразу же объявить эту переменную и её содержимое. Пример:
userHomeFolder=/home/astenix
Проверка:
echo $userHomeFolder
Редактор для файлов *.tex — по вкусу. Его можно поставить и ДО LaTeX, и ПОСЛЕ. Мне нравится кдешный +Kile.
1. Подготовить систему
Убеждаемся в том, что в системе нет ни TEX, ни Kile из репозиториев, бо при установке этого удобнейшего редактора для LaTeX принудительно устанавливается и TEX из репозитория, но это не наш метод.
Если ранее был установлен LaTeX, его надо сперва грамотно снести, бо апгрейд между версиями не предусмотрен.
Очистить систему от вероятных установок TeX из репозитория
- Run the application add/remove software i.e. pamac-manager.
- Check if you have any partial texlive installations.
- Uninstall every texlive-(…) other than “full” previously installed (you’ll probably find texlive-bin and texlive-core.
Выполнить дежурный запрос об указании месторасположения LaTeX
which tex
Ожидаем сообщение о том, что ничего не найдено, иначе крушить/удалять.
Проверить отстутствие Kile
Он с собой приносит основные части LaTeX из репозитория, а они не нужны.
which kile
Установить 'Perl/Tk module'
Он понадобится в будущем для работы «TeX Live Manager» (он же tlmgr)
sudo pacman -S perl-tk
Добавить в PATH путь к будущим файлам LaTeX
Из-под своего юзера своем домашнем каталоге отредактировать файл .bashrc [создать его, если отсутствует>
mcedit ~/.bashrc
— добавить туда в самом конце три строки:
PATH=/home/LaTeX/bin/x86_64-linux:$PATH INFOPATH=/home/LaTeX/texmf-dist/doc/info:$INFOPATH MANPATH=/home/LaTeX/texmf-dist/doc/man:$MANPATH
Чтобы эти изменения применились, надо или «разлогиниться и залогиниться», или выполнить принудительное перечитывание конфигурационных файлов профиля через
source ~/.bashrc
Проверить, если данные добавились в PATH
Открыть новое окно консоли (чтобы настройки системы подхватились as is) и выполнить
echo "${PATH//:/$'\n'}"
Можно и просто echo $PATH — но в этом случае все данные будут представлены в одной строке.
Объявление переменных в PATH для всех пользователей в системе
Если на ноуте только один пользователь, которому этот LaTeX нужен, то этот шаг не нужен.
Если же этот LaTeX будет нужен нескольким пользователям, то следует повторить процедуру из-под root:
- Залогиниться под root:
su -
- Перейти в корень профиля root:
cd
- Отредактировать рутовский файл .bashrc (мне удобно через mcedit, бо Midnight Commander), добавить туда три строки:
PATH=/home/LaTeX/bin/x86_64-linux:$PATH INFOPATH=/home/LaTeX/texmf-dist/doc/info:$INFOPATH MANPATH=/home/LaTeX/texmf-dist/doc/man:$MANPATH
Но тут уже точно нужно будет перезагрузить ноутбук целиком.
Создать каталог для файла с образом LaTeX
В каталоге своего профиля сделать временный каталог, в котором будут развернуты установочные файлы.
Содержимое переменной '$userHomeFolder' было задано в самом начале этой инструкции при подготовке окружения. Проверка ’echo $userHomeFolder’
mkdir $userHomeFolder/tmp_LaTeX_Installation/ && cd $userHomeFolder/tmp_LaTeX_Installation/ && echo 'Done!'
2. Скачать установочный iso-файл c LaTeX
Выбирать на https://ctan.org/mirrors
Например, мастер-хост проекта LaTeX находится в Германии:
http://ctan.127001.ovh/systems/texlive/Images/
Украины на этой карте мира нет.
Cкачать texlive[ГодВыпуска].iso
http://ctan.ebinger.cc/tex-archive/systems/texlive/Images/
Открыть новое окно Konsole и через wget скачать всё в каталог для установки:
wget http://ctan.ebinger.cc/tex-archive/systems/texlive/Images/texlive2022.iso --directory-prefix=$userHomeFolder/tmp_LaTeX_Installation/ && echo 'Done!'
Монтировать iso-файл
Переходим в каталог, в который был стянут texlive*.iso.
cd $userHomeFolder/tmp_LaTeX_Installation/
- Убедиться в том, что в каталоге только один файл .iso (мало ли было неудачных или прерванных скачиваний).
ls
И смотрим глазами, что в каталоге только один файл .iso
- Во временном разделе создать новый каталог, в который будет смонтирован образ диска:
mkdir /tmp/latex_iso/
- Монтируем образ в каталоге /tmp/ — там он будет жить до следующей перезагрузки системы; заодно не будем морочиться с его размонтированием.
sudo mount -o loop *.iso /tmp/latex_iso
Единственный нужный ответ «mount: /tmp/latex_iso: WARNING: device write-protected, mounted read-only.», любой другой нужно разбирать отдельно.
Если всё ок, то в системе появился новый диск (новое устройство), доступный только для чтения.
3. Подготовить установку LaTeX
Создать каталог, в который будет установлен LaTeX
Можно сделать это из-под root, чтобы в будущем оградить его от даже случайного изменения всего содержимого. А можно и просто:
sudo mkdir /home/LaTeX/
Создать место для собственных настроек LaTeX
mkdir -p ~/.LaTeX_Settings/{texmf,texmf-config,texmf-var}
В каталоге юзера появится скрытый каталог './LaTeX_Settings' и, соответственно, три каталога в нём.
Настроить свой installation.profile
Создать файл профиля для установки LaTeX
mcedit ~/.LaTeX_Settings/installation.profile
В этот файл вписать текст, который указан МЕЖДУ "START" и "END":
Учесть два момента:
- надо заменить все "---yourUserHomeFolder---" (оно в трех местах) на своё значение.
- закрывающие слэши нигде не нужны.
selected_scheme scheme-full
TEXDIR /home/LaTeX
TEXMFLOCAL /home/LaTeX/texmf-local
TEXMFSYSCONFIG /home/LaTeX/texmf-config
TEXMFSYSVAR /home/LaTeX/texmf-var
TEXMFCONFIG /home/---yourUserHomeFolder---/.LaTeX_Settings/texmf-config
TEXMFHOME /home/---yourUserHomeFolder---/.LaTeX_Settings/texmf
TEXMFVAR /home/---yourUserHomeFolder---/.LaTeX_Settings/texmf-var
binary_x86_64-linux 1
instopt_adjustpath 0
instopt_adjustrepo 1
instopt_letter 0
instopt_portable 0
instopt_write18_restricted 1
tlpdbopt_autobackup 1
tlpdbopt_backupdir tlpkg/backups
tlpdbopt_create_formats 1
tlpdbopt_desktop_integration 1
tlpdbopt_file_assocs 1
tlpdbopt_generate_updmap 0
tlpdbopt_install_docfiles 1
tlpdbopt_install_srcfiles 1
tlpdbopt_post_code 1
tlpdbopt_sys_bin /usr/local/bin
tlpdbopt_sys_info /usr/local/share/info
tlpdbopt_sys_man /usr/local/share/man
tlpdbopt_w32_multi_user 1
Первая строка просто указывает «Установить сразу всё-всё-всё-всё!».
Дальше указаны каталоги из 2.4.2 — внимательно прочитать и указать свои настройки для TEXMFCONFIG, TEXMFHOME и TEXMFVAR.
TEXMFVAR — personal directory for variable and automatically generated data
TEXMFCONFIG — personal directory for local config
TEXMFHOME — directory for user-specific files.
binary_x86_64-linux 1 = установить для 64-битной архитектуры. Современность же.
Остальное сгенерировано родным установщиком LaTeX, оставляем без изменений.
4. Установить LaTeX
# включить мозг и осторожность
Переходим к файлу install-tl:
cd /tmp/latex_iso/
Запускаем файл install-tl с указанием "взять настройки из файла installation.profile" (если не сработает, то запускаем sudo ./install-tl и дальше указываем нужные каталоги вручную):
sudo ./install-tl --profile ~/.LaTeX_Settings/installation.profile && echo 'Done!'
Ждать, пока установка отработает полностью, там больше четырех тысяч файлов.
Проверить работоспособность LaTeX
Под своим юзером зайти в любой временной каталог, чтобы не мусорить в существующих, и сделать тексовский pdf-документ (также появятся несколько сопутствующих ему служебных файлов).
mkdir /tmp/test_tex && cd /tmp/test_tex
Запросить информацию о месторасположении LaTeX. Ответ зависит от переменной PATH, которая уже была настроена в шаге 2.2.4.
which tex
Ответом нам должно быть '/home/LaTeX/bin/x86_64-linux/tex', иначе алярм.
Запросить информацию о версии TEX:
tex --version
Ответ вроде TeX 3.14159265 (TeX Live 2019) и так далее нас полностью удовлетворит.
Создать в этом временном каталоге тестовый (красивый!) документ за подписью Лесли Ламберта, 2004-го года
pdflatex sample2e.tex
Посмотреть документ
okular sample2e.pdf
Посмотреть значение каждой переменной LaTeX по-отдельности
kpsewhich -var-value TEXMFHOME kpsewhich -var-value TEXMFLOCAL
Посмотрим содержимое файла всех настроек LaTeX (будет много текста, зато мало магии и непонятных мест):
texconfig conf
Если не будет ругательств, то усё, LaTeX, в принципе, работает.
5. Обновить TeX из сети
Проверим наличие «TeX Live Manager» (он же tlmgr):
which tlmgr
Ждём ответ /home/LaTeX/bin/x86_64-linux/tlmgr — иначе алярм.
Запуск tlmgr
Только из-под root, sudo здесь не сработает (будет сообщение sudo: tlmgr: command not found), поэтому
su
Для разгона откроем tlmgr в окне:
Здесь разумно разве что обновить базу данных шрифтов в разделе «Действия» (оно же команда updmap-sys) и быстро сваливаем отсюда.
Обновляем сам tlmgr (если обновлений не понадобится, он об этом сообщит):
tlmgr update --self
Если ctan.org будет недоступен (cannot contact mirror.ctan.org, returning a backbone server!), то следует указать любое зеркало сайта.
Обновить из сети весь TeX
Логично предположить, что если установлена новейшая версия, то обновлений не потребуется, но это не факт, запросто могут прилететь удаления и обновлёния для нескольких сотен файлов.
tlmgr update --all
Есть вероятность ответа
To install from the Internet for this one time only, run:
tlmgr -repository http://mirror.ctan.org/systems/texlive/tlnet ACTION ARG...
where ACTION is install, update, etc.; see tlmgr -help if needed.
To change the default for all future updates, run:
tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
В этом случае используем последнюю предложенную команду, затем надо обновить tlmgr и снова запросить обновление теха:
- tlmgr option repository http://mirror.ctan.org/systems/texlive/tlnet
- tlmgr update --self
- tlmgr update -all
Долго ждать.
exit
6. Установить шрифты для LaTeX
Осознать, что шрифтов будет много, и отныне они будут доступны для всех приложений в системе (настройки окружения, LibreOffice, Kate и все прочие). Некоторые будут отличаться только начертанием, но при этом будут являться самостоятельными шрифтами.
Вряд ли все они нужны, но…
Создать файл 09-texlive.conf
sudo cp $(kpsewhich -var-value TEXMFSYSVAR)/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf && echo 'Done!'
Появляется файл /etc/fonts/conf.d/09-texlive.conf с текстом:
[?xml version="1.0"?]
[!DOCTYPE fontconfig SYSTEM "fonts.dtd"]
[fontconfig]
[dir]/home/LaTeX/texmf-dist/fonts/truetype[/dir]
[dir]/home/LaTeX/texmf-dist/fonts/type1[/dir]
Отредактировать файл 09-texlive.conf
sudo mcedit /etc/fonts/conf.d/09-texlive.conf
Удалить строку '[dir]/home/LaTeX/texmf-dist/fonts/type1[/dir]' (предпоследняя). Cохранить.
Обновить кэш шрифтов
sudo fc-cache -fsv && echo 'Done!'
Шрифтов много, дело может быть не односекундным. В результате: есть латэчевские шрифты в /home/LaTeX/texmf-dist/fonts/truetype/ и в /home/LaTeX/texmf-dist/fonts/opentype/
Нет нужды, но временами, особенно после обновления ядра Debian, можно просто контроля для запускать (из-под root) tlmgr update --all и обновление кэша шрифтов.
7. Проверить работу LaTeX
В консоли перейти в каталог с рабочим проектом.
В любой файл (в тот же main.tex) добавить условное проверочное слово.
Вызвать компилятор из внешнего источника:
/home/MyScripts/LaTeX/kile_buildPdfLaTeXWithMetafilesOutside.sh
Если результат неудачный — разобраться.
8. Удалить временные файлы
Размонтировать iso
cd /tmp && sudo umount /tmp/latex_iso
Удалить каталог /tmp_LaTeX_Installation
вместе с iso-файлом
rm -R ~/tmp_LaTeX_Installation