[ @debian @install @LaTeX ]
Это пошаговая инструкция для нестандартной, но исключительно однозначной, точной и грамотной ручной установки всего набора LaTeX из его официального iso-файла в Debian.
Предусловия установки
В этом файле полно упоминаний переменной "$userHomeFolder". Разумно сразу же объявить эту переменную и её содержимое. Пример (без закрывающего слэша):
userHomeFolder=/home/astenix
Проверка:
echo $userHomeFolder
1. Подготовить систему
Установить Kile
Сперва установить редактор Kile. С ним установится стандартный TeX, но я это проигнорирую.
В принципе при установке Kile из репозиториев в систему принудительно прилетает и LaTeX. Мне нравится Kile, но я далее я настрою его механизм build через внешний sh-скрипт, который использует не штатную сборку LaTeX, а отдельную, которую я поставлю из установочного iso-файла с LaTeX из https://ctan.org/
Установить 'Perl/Tk module'
Он понадобится в будущем для работы «TeX Live Manager» (он же tlmgr)
sudo aptitude install 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
Например, зеркало в Германии: http://ctan.ebinger.cc/tex-archive/systems/texlive/Images/
Или в США: http://mirrors.mit.edu/CTAN/systems/texlive/Images/
В обоих случаях в браузере откроется обычный каталог с файлами. К скачиванию могут быть предложены разные файлы. Если предлагается выбор между «texlive2020-20200406.iso» и «texlive2020.iso» — всегда выбираем второй. Первый наверняка посвежее, но не факт, что подмонтируется.
Скачать выбранный файл можно в консоли:
wget http://mirrors.mit.edu/CTAN/systems/texlive/Images/texlive2023.iso --directory-prefix=$userHomeFolder/tmp_LaTeX_Installation/ && echo 'Done!'
Размер файла — около пяти гигабайт.
Монтировать iso-файл
Переходим в каталог, в который был стянут texlive*.iso:
cd $userHomeFolder/tmp_LaTeX_Installation/
- Убедиться в том, что в каталоге только один файл .iso (мало ли было неудачных или прерванных скачиваний).
ls
- В /tmp/ создать новый каталог, в который будет смонтирован образ диска:
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
Два момента:
- в трёх строках надо заменить "---yourUserHomeFolder---" на своё значение. В моём случае: /home/astenix
- закрывающие слэши нигде не нужны.
selected_scheme scheme-full
TEXDIR /home/LaTeX
TEXMFLOCAL /home/LaTeX/texmf-local
TEXMFSYSCONFIG /home/LaTeX/texmf-config
TEXMFSYSVAR /home/LaTeX/texmf-var
TEXMFCONFIG ---yourUserHomeFolder---/.LaTeX_Settings/texmf-config
TEXMFHOME ---yourUserHomeFolder---/.LaTeX_Settings/texmf
TEXMFVAR ---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
Первая строка просто указывает «Установить сразу всё-всё-всё-всё!».
Дальше указаны каталоги для хранения персональных настроек LaTeX.
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, оставляем без изменений.
Если надо сгенерировать такой файл: при запуске инсталлятора "install-tl" можно сразу выбрать действие "Р". На жестком диске появится файл "texlive.profile". Но это надо делать из инсталлятора, который запускается в режиме прав записи. В нашем случае всё запускается из образа, который огорожен от редактирования, поэтому при запросе "Р" инсталлятор сгенерирует такой файл, но сохранить его не сможет (как делить на ноль).
Если установка уже прошла успешно, то файл "texlive.profile" всегда будет находиться в каталоге "вашеМестоУстановкиLaTeX/tlpkg".
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 в окне:
tlmgr --gui
Здесь разумно разве что обновить базу данных шрифтов в разделе «Действия» (оно же команда updmap-sys) и быстро сваливаем отсюда.
Обновляем сам tlmgr (если обновлений не понадобится, он об этом сообщит):
tlmgr update --self
Процесс может подзатянуться.
Если ctan.org будет недоступен (cannot contact mirror.ctan.org, returning a backbone server!), то следует указать любое зеркало сайта.
Обновить из сети весь TeX
Логично предположить, что если установлена новейшая версия, то обновлений не потребуется, но это не факт, запросто могут прилететь удаления и обновлёния для нескольких сотен файлов.
Продолжаем из-под root:
tlmgr update --all
Процесс, опять же, может быть небыстрым.
Отныне и впредь, пока прогресс не нагрянет, все периодические обновления LaTeX делаем из-под root через «tlmgr update --self && tlmgr update --all». А когда выйдет следующее КРУПНОЕ обновление, tlmgr сообщит о том, что не может выполнить это запрос, и тогда уже придётся или перестать обновляться, или обновлять LaTeX с нуля.
Есть вероятность ответа
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. Удалить временные файлы
Размонтировать iso и удалить и его, и каталог /tmp_LaTeX_Installation
sudo umount /tmp/latex_iso && rm -R ~/tmp_LaTeX_Installation
См. дальше Software:Kile