Accueil

Passer de teTeX à TeX Live

Ce tutoriel décrit l'installation de TeX Live sur Slackware. En effet, bien que teTeX soit proposé par défaut, celui tend à être, de façon ironique, « obsolète ». La distribution teTeX n'étant plus maintenue, il est maintenant conseillé d'utiliser TeX Live, que Pat envisage peut-être pour la Slackware 13.0.

Bien entendu, si vous utilisez teTeX très rarement, il ne devrait pas y avoir de véritable raison de vouloir passer à TeX Live.

Nous allons ici essayer de créer un paquet texlive final qui ne dépasse pas énormement celui de tetex. J'en arrive ici à un paquet texlive (avec la documentation) de 157 Mo contre 100 Mo pour tetex + tetex-doc. Notez tout de même que l'installateur de TeX Live vous permet d'obtenir une configuration adaptée à vos besoins ; il est donc tout à fait possible d'obtenir un paquet final de taille inférieure à celui de teTeX.

Sommaire

Installation

Préparations

Il faut tout d'abord récupérer l'image iso à partir du site officiel (http://www.tug.org/texlive/). Une bonne idée est d'utiliser le lien .torrent qui va assez vite (une quinzaine de minutes ici).

Il faut, dès à présent, passer en utilisateur root pour un moment. On va d'abord désinstaller teTeX s'il est présent :

  # removepkg tetex tetex-doc

Ensuite, on dé-zippe l'image (ce qui peut prendre pas mal de temps), et on la monte :

  # unzip texlive-live.iso.zip
  # mount -t iso9960 -o ro,loop image.iso /mnt/cdrom

Il faut ensuite se rendre dans le répertoire en question :

  # cd /mnt/cdrom

Et exporter une variable pour indiquer à TeX Live où il doit s'installer.

  # export TEXLIVE_INSTALL_PREFIX=/usr/share

On va, en effet, préférer garder le préfixe utilisé par teTeX, tant pis pour le FHS qui nous demande d'utiliser /opt.

Quelques options intéressantes

On peut, dès maintenant, lancer le script d'installation :

  # ./install-tl.sh

On arrive alors à un menu, qui demande quelques vérifications. On va tout d'abord saisir D pour être sûr d'avoir la chose suivante :

  o TEXDIR      (main TeX directory):     /usr/share/texmf     
  o TEXMFSYSVAR (systemwide config):      /usr/share/texmf-var
  o TEXMFLOCAL  (systemwide styles etc.): /usr/share/texmf-local
  o TEXMFHOME   (personal styles etc.):   $HOME/texmf

Si ce n'est pas le cas, corrigez vous-même les chemins en question. Il reste alors d'autres options à modifier. Il faut maintenant saisir l'option S pour choisir le schèma d'installation ; celui utilisé par défaut prenant peut-être beaucoup trop de place.

On peut sourtout retenir trois options :

  <A>  GUTenberg TeX Live scheme   Schéma adapté à la langue française  768 Mo 
  <G>  TeX Live medium scheme      Schéma intermédiaire de TeX Live     359 Mo
  <J>  teTeX scheme                Ancien schéma de teTeX               441 Mo

N'ayant, personnellement, pas besoin du schéma GUTenberg, j'aurais eu tendance à privilégier le schéma teTeX, mais je vois que le schéma medium nous fait gagner presque 100 Mo d'espace. Je pense qu'il y a eu une réorganisation du schéma pour obtenir quelque chose encore plus léger que teTeX, et, celui-ci devenant tout de même « dépassé », mon choix se porte donc sur l'option G. Bien entendu, cela ne vous empêche pas d'en choisir une autre.

Histoire de gagner de la place, une fois revenu dans le schéma principal, j'ai décidé de saisir l'option O, puis S pour enlever l'arborescense des fichiers source des polices et des macros, n'y voyant pas tellement l'intérêt. J'ai tout de même préféré garder la documentation (D pour l'enlever) :-D. Il n'est pas conseillé de modifier les autres options.

On peut maintenant saisir I pour réellement lancer l'installation, qui prend quelques minutes.

Empaquetage

Une installation imparfaite

Une fois le script terminé, nous avons quelques modifications à faire.

La plus importante est la location des binaires de TeX Live ; puisque l'on a utilisé le préfixe /usr/share, ils se retrouvent dans /usr/share/bin/i386-linux ! [1]

En dehors du fait que cela n'est pas très « correct », il vaudrait mieux garder la compatibilité avec teTeX. Il suffit donc d'exécuter les commandes suivantes pour les déplacer [2]  :

  # cd /usr/share/texmf
  # mkdir bin
  # mv ../bin/i386-linux/* bin/
  # rmdir ../bin/i386-linux
  # rmdir ../bin

Voilà qui devrait aller mieux.

Nous allons maintenant compresser les « manpages » histoire de gagner quelques précieux Mo. Pour cela, exécutez les commandes suivantes :

  # cd /usr/share/texmf/doc/man
  # find . -type f -name "*.?" -exec gzip -9 {} \;
  #   for manpage in $(find . -type l) ; do
  #     ln -s $(readlink $manpage).gz $manpage.gz
  #     rm -f $manpage
  #   done

Ce code permet aussi de corriger les éventuels liens symboliques que la compression aurait pu « casser ».

Maintenant, il faut aussi penser à corriger les variables MANPATH et PATH. En effet, impossible de lancer latex ou man latex pour le moment, car TeX Live est installé dans l'arborescence /usr/share/texmf. Pour corriger cela, exécutez les commandes suivantes :

  # PATH="$PATH:/usr/share/texmf/bin"
  # MANPATH="$MANPATH:/usr/share/texmf/doc/man"

Nous ajouterons, par la suite, les fichiers nécessaires dans /etc/profile.d.

Il faut maintenant créer une configuration de base. Pour cela, il suffit de lancer les lignes suivantes, présentes dans le SlackBuild de teTeX. Comme Pat le dit lui-même, certaines de ces commandes sont probablement inutiles, mais ça ne coûte pas grand chose de les utiliser quand même [3] . La plus importante reste celle permettant de définir l'utilisation du format A4 au lieu du format américain letter, utilisé par défaut.

  # mv /root/.texmf-config /root/.texmf-config-$(mcookie)
  # texconfig-sys confall
  # texconfig-sys dvips paper a4
  # texconfig-sys xdvi paper a4
  # texconfig-sys mode ljfour
  # texconfig-sys dvips printcmd -
  # texconfig-sys dvips add bjc600
  # texconfig-sys dvips add stcolor
  # texconfig-sys dvips add deskjet
  # texconfig-sys dvips add ljet4
  # texconfig-sys dvips -P bjc600  mode canonbjc
  # texconfig-sys dvips -P stcolor mode epstylus
  # texconfig-sys dvips -P deskjet mode deskjet
  # texconfig-sys dvips -P ljet4   mode ljfour
  # texconfig-sys font ro
  # texconfig-sys rehash

Par soucis de sécurité, je vous conseille de donner des permissions plus « habituelles » à /usr/share/texmf-var, le répertoire personnel de l'utilisateur sera alors utilisé :

  # chmod 0755 /usr/share/texmf-var
  # find /usr/share/texmf-var -type f -exec chmod 0644 {} \;
  # find /usr/share/texmf-var -type d -exec chmod 0755 {} \;

Il s'agit plus ou moins de la configuration utilisée pour teTeX depuis Slackware 12.0.

Maintenant, si vous vous sentez vraiment courageux, vous aurez peut-être envie d'appliquer les patches que Pat utilise pour teTeX (source/t/tetex).

Les patches suivants sont, en effet, applicables sans problème :

Ceux-ci vous demanderont peut-être plus de travail :

En effet, ils ont été crées par Pat afin d'utiliser la commande mktemp dès que possible pour la gestion des répertoires temporaires ; une méthode qui est plus sûre que celle employée dans les scripts. Cependant, outre le fait que certains de ces scripts ont parfois légérement changé entre teTeX et TeX Live, vous remarquerez peut-être que Pat y a fait quelques erreurs, rendant par exemple xdvizilla impossible à lancer à cause d'une coquille. Ces changements étant mineurs, je pense que l'on peut les oublier. Je posterai peut-être tout de même le patch, un de ces jours, le temps que je vérifie tout ça :-) .

Création du paquet

Maintenant, tout est prêt pour être empaqueté, vous pouvez repasser en utilisateur simple. L'étape reste simple, vérifiez tout de même que vous ayez bien fakeroot installé :

  $ cd /tmp/build

On copie l'arborescense /usr/share/texmf

  $ mkdir -p texlive/usr/share
  $ cd texlive/usr/share
  $ cp -a /usr/share/texmf .
  $ cp -a /usr/share/texmf-dist .
  $ cp -a /usr/share/texmf-doc .
  $ cp -a /usr/share/texmf-local .
  $ cp -a /usr/share/texmf-var .

On ajoute les fichiers nécessaires pour le $PATH

  $ cd ../..
  $ mkdir -p etc/profile.d
  $ cd etc/profile.d
  $ cat > texlive.sh << EOF
  #!/bin/sh
  # Add PATH and MANPATH for TeX Live:
  PATH="$PATH:/usr/share/texmf/bin"
  MANPATH="$MANPATH:/usr/share/texmf/doc/man"
  EOF
  $ cat > texlive.csh << EOF
  #!/bin/csh
  # Add PATH and MANPATH for TeX Live:
  setenv PATH $PATH:/usr/share/texmf/bin
  setenv MANPATH $MANPATH:/usr/share/texmf/doc/man
  EOF
  $ chmod 0755 texlive.*sh

On ajoute un slack-desc. Pensez à changer le schéma mentionné si vous en utilisez un autre.

  $ mkdir ../../install
  $ cd ../../install
  $ cat > slack-desc << EOF
  texlive: texlive (the TeX Live distribution)
  texlive:
  texlive: TeX Live is an easy way to get up and running with TeX. It provides a
  texlive: comprehensive TeX system which includes all the major TeX-related
  texlive: programs, macro packages, and fonts that are free software, including
  texlive: support for many languages around the world. This package uses the
  texlive: "TeX Live medium scheme".
  texlive:
  texlive: Learn more about TeX Live at:
  texlive:   http://www.tug.org/texlive/
  texlive:
  EOF

On lance makepkg dans une session fakeroot pour créer le paquet final. Inutile de s'occuper du stripping puisque les binaires sont pré-compilés (d'où le i386) et donc déjà strippés.

  $ cd ..
  $ fakeroot
  # chown root:root . -R
  # /sbin/makepkg -l y -c n /tmp/build/texlive-VERSION_ICI-i386-1.tgz
  # exit

Histoire de bien tout « nettoyer », je vous conseille d'installer le paquet, de le désinstaller, puis de le réinstaller à nouveau (en root, bien entendu :-)).

Vous pouvez maintenant supprimer le répertoire /tmp/build/texlive, démonter /mnt/cdrom, et supprimer le fichier .iso. Je vous conseille tout de même de garder le fichier '.iso.zip' à portée de main, vous en aurez peut-être besoin de nouveau par la suite.

Voilà qui devrait être bon. Il faudra peut-être redémarrer histoire que les scripts dans /etc/profile.d soient bien pris en compte à tout moment pour tous les utilisateurs et toutes les applications.

Enjoy LaTeX!

Ce « tutoriel » se base sur la page suivante du Wiki Fedora (que l'on remercie, au passage :-)) : http://doc.fedora-fr.org/wiki/TeX_Live


Thèmes : #articles #logiciels #sbn

Sauf indication contraire, ce document est placé sous licence CC-BY-SA 3.0.