texlive-20230313-source
Introduction à TeX Live from source
Note
D'après https://www.tug.org/historic/
le site principal en France ne prend en charge que ftp et rsync.
Maintenant que ftp est globalement obsolète, cette page a des
liens vers des miroirs, dont certains prennent en charge https,
p. ex. en Utah et Chemnitz ainsi qu'en Chine. Si vous
préférez utiliser un miroir différent des liens d'exemple ici,
vous devrez naviguer dans systems/historic/texlive/2023 ou
systems/texlive/2023 suivant le cas.
La majorité de TeX Live peut être construite depuis les sources
sans une installation pré-existante, mais xindy (pour l'indexage) demande des versions
fonctionnelles de latex et pdflatex quand configure est
lancé, et les suites de tests et l'installation de asy (pour les graphiques
vectoriels) échoueront si TeX n'a pas déjà été installé. De plus,
biber n'est pas fournit dans les
sources de texlive et la version
de dvisvgm dans l'arborescence de
texlive ne peut pas être construit
si les bibliothèques partagées du système sont utilisées.
L'ensemble de ces paquets sont traités dans leur propre page et
peuvent être construits après l'installation de ce paquet. Si vous
ne l'avez pas encore fait, vous pouvez démarrer par Initialisation du PATH pour
TeX Live pour que les dernières commandes pour initialiser la
nouvelle installation soient trouvées.
This package is known to build and work properly using an LFS 12.0
platform.
Informations sur le paquet
Téléchargement supplémentaire requis
La plupart de l'environnement texlive (incluant scripts,
documentation, polices et divers autres fichiers) n'est pas dans
l'archive des sources. Vous devez les télécharger séparément. Cela
vous donnera tous les fichiers supplémentaires qui sont fournis par
une installation complète de la version binaire, ce n'est pas
réaliste de limiter les parties à installer.
À cause de la taille de ce paquet, il n'est pas disponible sur les
miroirs BLFS. En cas de problème, allez sur
http://www.ctan.org/mirrors/ pour trouver un miroir plus
accessible.
À partir de 2019, la base de données tlpdb des paquets dans texlive
n'est plus installée avec les sources. Mais texdoc a besoin d'un fichier de
cache dérivé de cette base (et créera le cache à sont premier
démarrage).
Dépendances de TeX Live from source
Recommandées
un environnement
graphique
Les sources sont livrées avec leurs propres versions de
nombreuses bibliothèques, et
les utiliseront à moins de forcer l'utilisation des versions du
système. Les dépendances suivantes sont recommandées afin
d'utiliser les versions du système : Cairo-1.17.6, Fontconfig-2.14.2, FreeType-2.13.1, GC-8.2.4, Graphite2-1.3.14, HarfBuzz-8.1.1 (construit avec graphite2),
ICU-73.2, libpaper-2.1.1 (utilisé par au moins context
et xelatex) et libpng-1.6.40
En plus, les instructions ci-dessous supposent que vous utilisez la
disposition décrite dans Initialisation du PATH
pour TeX Live.
Facultatives
Les sources sont livrées avec leurs propres versions de quelques
bibliothèques qui ne sont soit plus dans un développement actif,
soit seulement utilisées pour des fonctionnalités limitées. Si vous
les installez, comme d'autres dépendances facultatives dans ce
livre, vous devrez dire à configure d'utiliser les versions
du système. GD, t1lib, ZZIPlib,
TECkit
Dépendances d'exécution
Python-2.7.18 est utilisé par le module CTAN
ebong qui n'est plus maintenu (conçu pour écrire en Bengali au
format Rapid Roman). /usr/bin/python
est également présent dans la ligne shebang des scripts
latex-papersize et lilyglyphs. La documentation sur CTAN indique
que ces deux modules ont été mis à jour pour fonctionner avec
python3. Il y a des scripts dans pythontex pour invoquer python3 ou
python2 en fonction de la version du système de python. Ruby-3.2.2 est
utilisé par deux scripts, l'un pour pTex (pour écrire du japonais
verticalement) et l'autre est match_parens, qui peut s'avérer
utile. Le module perl
Tk, qui doit être exécuté dans une session X11 pour lancer les
tests et qui nécessite Tk-8.6.13 est utilisé par l'un des scripts
pour ptex, et est requis par texdoctk (une interface graphique pour
trouver les fichiers de documentation et les ouvrir avec la
visionneuse appropriée). ps2pdf, de ghostscript-10.01.2, est
utilisé par certains utilitaires et scripts.
Installation de TeX Live
Installez TeX Live en exécutant les commandes suivantes :
Attention
Si vous voulez mettre à jour texlive vers la version actuelle sur un
système plus ancien où des paquets supplémentaires (asymptote, biber. dvisvgm ou xindy) sont installés, vous devrez les
réinstaller et corriger votre PATH
pour inclure $TEXLIVE_PREFIX
.
Note
Une installation complète demande que des commandes de texlive
soient lancées en tant qu'utilisateur root, donc nous exporterons
la variable TEXARCH pour que root
l'utilise.
Maintenant, en tant qu'utilisateur normal :
export TEXARCH=$(uname -m | sed -e 's/i.86/i386/' -e 's/$/-linux/') &&
patch -Np1 -i ../texlive-20230313-source-security_fix-1.patch &&
mkdir texlive-build &&
cd texlive-build &&
../configure -C \
--prefix=$TEXLIVE_PREFIX \
--bindir=$TEXLIVE_PREFIX/bin/$TEXARCH \
--datarootdir=$TEXLIVE_PREFIX \
--includedir=$TEXLIVE_PREFIX/include \
--infodir=$TEXLIVE_PREFIX/texmf-dist/doc/info \
--libdir=$TEXLIVE_PREFIX/lib \
--mandir=$TEXLIVE_PREFIX/texmf-dist/doc/man \
--disable-native-texlive-build \
--disable-static --enable-shared \
--disable-dvisvgm \
--with-system-cairo \
--with-system-fontconfig \
--with-system-freetype2 \
--with-system-gmp \
--with-system-graphite2 \
--with-system-harfbuzz \
--with-system-icu \
--with-system-libgs \
--with-system-libpaper \
--with-system-libpng \
--with-system-mpfr \
--with-system-pixman \
--with-system-zlib \
--with-banner-add=" - BLFS" &&
make
Pour tester les résultats lancez : make -k check. Deux tests,
psutils.test
et eptexdir/wcfname
sont connus pour échouer.
Maintenant, en tant qu'utilisateur root
:
make install-strip &&
/sbin/ldconfig &&
make texlinks &&
mkdir -pv $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
install -v -m644 ../texk/tests/TeXLive/* $TEXLIVE_PREFIX/tlpkg/TeXLive/ &&
tar -xf ../../texlive-20230311-tlpdb-full.tar.gz -C $TEXLIVE_PREFIX/tlpkg
Note
Ne lancez make
texlinks qu'une seul fois. S'il est relancé, il
peut changer tous les liens symboliques de programmes vers
eux-mêmes ce qui les rend inutilisables.
Maintenant installez les fichiers supplémentaires en tant
qu'utilisateur root
:
tar -xf ../../texlive-20230313-texmf.tar.xz -C $TEXLIVE_PREFIX --strip-components=1
Debian a montré que les scripts python de latex-make
fonctionneront avec python3, donc mettez-les à jour
pour l'invoquer en exécutant la commande suivante en tant
qu'utilisateur root
:
for F in $TEXLIVE_PREFIX/texmf-dist/scripts/latex-make/*.py ; do
sed -i 's%/usr/bin/env python%/usr/bin/python3%' $F
done
Toujours en tant qu'utilisateur root
, initialisez le nouveau système (la
commande fmtutil-sys
--all produira beaucoup de sorties) :
mktexlsr &&
fmtutil-sys --all
Pour permettre à Evince-44.3 ou dvisvgm-3.1 de se lier à
libkpathsea.so
, en tant
qu'utilisateur root
, recréez un
lien symbolique depuis /usr/lib
:
ln -svf $TEXLIVE_PREFIX/lib/libkpathsea.so /usr/lib
Note
TeXLive comprend certains fichiers pour ConTeXt mais les sources
de celui-ci sont séparées et n'utilisent plus luatex comme dans
la version précédente de « mkiv » mais luametatex qui
peut être récupéré avec git sur le github de
luametatex. LuaMetaTeX utilise meson et ninja, mais il ne
convient pas à la structure TeXLive de BLFS.
Cependant, avec un peu de travail supplémentaire, les fichiers
« mkiv » peuvent quand même être traités avec les
fichiers fournis par texmf.
Les corrections pour utiliser ConTeXt
seront supprimées lorsque les sources de texlive auront besoin
d'être mises à jour soit pour un correctif de vulnérabilité qui
nécessiterait de récupérer des changements de lualatex, soit pour
TeXLive 2024. Si vous utilisez ConTeXt dans BLFS vous devriez
vous préparer à utiliser le dernier tag github (les liens sont
dans le premier paragraphe de cette note). Le construire et
l'installer pour qu'il fonctionne avec une installation BLFS de
TeXLive ne sera pas un exercice trivial.
Les étapes suivantes, exécutées en tant qu'utilisateur root
, créeront mtxrun et context.
sed -e '/local template=\[\[--ini/s/\(primaryflags%\)\(.*\)/\1 --socket --shell-escape \2/' \
-e '/local template=\[\[%primaryflags%/s/\(primaryflags%\)\(.*\)/\1 --socket --shell-escape \2/' \
-i $TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/mtxrun.lua &&
mkdir -pv $TEXLIVE_PREFIX/texmf-var/luatex-cache/context/ &&
ln -sfv /$TEXLIVE_PREFIX/texmf-dist/scripts/context/lua/mtxrun.lua \
/$TEXLIVE_PREFIX/bin/$TEXARCH/mtxrun &&
cat > $TEXLIVE_PREFIX/bin/$TEXARCH/context << EOF
#!/bin/sh
export TEXMF=$TEXLIVE_PREFIX/texmf-dist;
export TEXMFCNF=$TEXLIVE_PREFIX/texmf-dist/web2c;
export TEXMFCACHE=$TEXLIVE_PREFIX/texmf-var/luatex-cache/context/;
$TEXLIVE_PREFIX/bin/$TEXARCH/mtxrun --script context "\$@"
EOF
chmod -v 0755 $TEXLIVE_PREFIX/bin/$TEXARCH/context
Vous pouvez continuer par asymptote-2.86, biber-2.19, dvisvgm-3.1 ou
xindy-2.5.1 si vous souhaitez les installer.
Explication des commandes
patch -Np1 -i
../texlive-20230313-source-security_fix-1.patch :
cela met à jour les sources de luatex vers la v1.17.0 pour corriger
des problèmes de sécurité.
sed -e '/local template (...)'
(...)mtxrun.lua : cela change un script de
texmf-dist pour que ConTeXt puisse maintenant s'exécuter avec
luatex-v1.17.0.
-C : crée
config.cache, ce qui améliore significativement le temps d'une
construction en parallèle.
--prefix=, --bindir=, --datarootdir=,
--infodir=, --mandir= ...
: Ces paramètres
assurent que les fichiers installés depuis les sources écraseront
les fichiers correspondants installés précédemment par install-tl-unx afin que les méthodes
d'installation alternatives de texlive soient cohérentes.
--includedir=, --libdir=
...
: Ces paramètres assurent que les
bibliothèques et fichiers d'en-tête seront dans les répertoires du
texlive de l'année.
--disable-static
: Ce
paramètre empêche l'installation des versions statiques des
bibliothèques.
--enable-shared
: Crée
les versions partagées de libkpathsea
, libptexenc
, libsynctex
, libtexlua52
et libtexluajit
.
--with-system-...
: À
moins que ce paramètre ne soit utilisé, les versions incluses dans
les sources de ces bibliothèques seront compilées statiquement dans
les programmes qui les utilisent. Si vous décidez de ne pas
installer une bibliothèque recommandée, omettez le paramètre
correspondant.
--disable-dvisvgm : Comme
indiqué plus haut, la version intégrée de dvisvgm, qui a des
fichiers de configuration modifiés, ne peut pas être construite
avec les bibliothèques partagées du système.
/sbin/ldconfig :
ceci doit être lancé ici pour que make texlinks puisse utiliser
kpsewhich.
make texlinks :
cela lance le script texlinks.sh pour créer les liens symboliques
depuis les formats du moteur. En pratique, plusieurs des cibles
comme xetex sont
maintenant des binaires séparés et pour ceux la signalera "fichiers
existants" ("file already exists").
tar -xf texlive-20230313-texmf.tar.xz
-C $TEXLIVE_PREFIX --strip-components=1 :
L'archive contient les fichiers pour le répertoire texmf-dist, et à
cause de sa taille nous ne voulons pas gaspiller de temps et
d'espace à le déballer et ensuite copier les fichiers.
install -v -m644
../texk/tests/TeXLive/*
$TEXLIVE_PREFIX/tlpkg/TeXLive/ : cela met les
modules perl TLConfig.pm
et
TLUtils.pm
dans le répertoire où
l'installateur binaire les place - c'est au début du PATH perl
@INC@ dans texlive quand l'installation utilise les paramètres de
configuration précédents. Sans ces modules, texlive est
inutilisable.
mktexlsr : Crée
un fichier ls-R
qui liste ce qui a
été installé - c'est utilisé par kpathsea pour trouver les fichiers
fmtutil-sys
--all : Ceci initialise les formats TeX, les
bases Metafont et les mémoires Metapost.
mkdir -pv
$TEXLIVE_PREFIX/texmf-var/luatex-cache/context/ :
le script de contexte créé après cette commande ne s'exécutera pas
correctement si le répertoire n'est pas présent.
--without-x
: utilisez ceci si
vous n'avez pas installé Xorg.
Il y a bien d'autres options « --disable » ou
« --without ». Certaines d'entre elles comme --without-texinfo
sont acceptées mais ne font plus
rien, d'autres empêcheront la construction d'un programme — mais
l'espace disque gigantesque utilisé pour les éléments liés dans
texmf nous font dire qu'il n'y a pas de bénéfice évident à
désactiver quelques uns de ces programmes.
Contenu
Programmes installés:
Plus de 300 binaires et liens symboliques
vers des scripts
Bibliothèques installées:
libkpathsea.so, libptexenc.so,
libsynctex.so, libtexlua52.so, libtexluajit.so
Répertoires installés:
$TEXLIVE_PREFIX/bin,
$TEXLIVE_PREFIX/include, $TEXLIVE_PREFIX/lib,
$TEXLIVE_PREFIX/texmf-dist
Descriptions courtes
TeX programs
|
Les programmes inclus dans TeX sont trop nombreux pour les
lister individuellement. Référez-vous aux pages HTML et
PDF de chaque programme dans les nombreux fichiers html,
man ou pdf dans les sous-répertoires de 2023/texmf-dist/ . L'utilisation de
texdoc
pdflatex (remplacez pdflatex avec le nom de la
commande) peut aussi être utile.
|
libkpathsea.so
|
(kpathsearch) existe pour rechercher un fichier dans une
liste de répertoires et est utilisé par kpsewhich
|
libptexenc.so
|
est une bibliothèque pour pTeX (publishing TeX) japonnais
|
libsynctex.so
|
est la bibliothèque d'analyse SyncTeX (Synchronize
TeXnology)
|
libtexlua52.so
|
fournit Lua 5.2, modifié pour fonctionner avec LuaTeX
|
libtexluajit.so
|
fournit LuaJIT, modifié pour fonctionner avec LuaJITTeX
|