web-dev-qa-db-fra.com

Installer texlive natif en parallèle à la version repo

J'utilise toujours Ubuntu 12.04 et je voudrais installer manuellement le texlive le plus récent. L'une des premières étapes de l'installation manuelle est de se débarrasser des installations existantes de texlive. Cependant, je veux conserver mon installation texlive par défaut des référentiels Ubuntu, car j'ai un grand nombre de documents LaTeX, qui peuvent parfois s'appuyer sur des modifications spécifiques à la version.

Par conséquent, ma question est de savoir comment utiliser une installation native de texlive (ou plusieurs possibles) en parallèle à l'installation à partir des référentiels Ubuntu? Quelles étapes de l'installation manuelle changent pour tenir compte d'une installation existante? Et comment dire à mon système quelle distribution texlive je veux utiliser?

Je pense que répondre à cette question répondra probablement à toutes mes questions connexes, comme par exemple: la distribution actuelle est-elle uniquement déterminée par les exécutables qui sont actuellement dans le PATH? Et si oui, comment puis-je basculer rapidement entre les distributions? Il ressemble aux binaires texlive dans /usr/bin ne sont pas des liens symboliques mais de vrais binaires, donc je ne sais pas comment je peux cacher leur existence sans les supprimer. Et ce qui peut également être difficile: comment puis-je trouver tous les binaires qui appartiennent à une distribution texlive (pdftex, pdflatex, luatex, xetex, ... )? La modification de la distribution affectera-t-elle également automatiquement les systèmes de construction/éditeurs (comme rubber/latexmk/Eclipse/gedit), ou est-il nécessaire d'effectuer des modifications manuelles à chaque fois?

3
bluenote10

Avertissement: J'ai trouvé une solution et cela semble bien fonctionner.

Mise à jour: Je peux maintenant confirmer que la procédure ci-dessous fonctionne également avec Texlive 2015.

En général, il semble que travailler avec des installations parallèles soit plus facile que prévu. Pour configurer la version native, j'ai fait ce qui suit:

  • Téléchargez le net installer , et extrayez-le dans un emplacement temporaire (le net installer est un outil de ligne de commande interactif, permettant de modifier divers paramètres lors de l'installation).

  • Exécutez le mode portable du programme d'installation, c'est-à-dire install-tl -portable. Cela fera apparaître le menu principal de l'installateur.

  • Dans ce menu de réglage, j'ai simplement changé le TEXDIR (en appuyant sur D) vers un chemin dans ma maison, par exemple ~/bin/texlive. Cela change automatiquement l'autre TEXDIR* ainsi que. Je n'ai rien changé d'autre (le schéma d'installation a été défini sur schéma complet). Dans l'ensemble, l'installation avec l'installateur net est très pratique.

Inspiré de la section documentation "Variables d'environnement pour Unix" J'ai créé un fichier setenv.sh dans le répertoire d'installation avec le contenu suivant:

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"

Afin de passer à la nouvelle distribution texlive, j'ai simplement source ce fichier. Jusqu'à présent, il semble que tout fonctionne bien avec la distribution texlive existante et nouvelle.

Il semble que Kpathsea soit l'outil dans texlive qui est responsable de localiser les différentes parties/répertoires de la distribution ( recherche de chemin Kpathsea ). J'ai écrit le script suivant pour vérifier si le passage à la nouvelle distribution change vraiment tous ces TEXMF* répertoires:

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'`"

Exécuter cela sans sourcer mon setenv.sh fichier donne la sortie suivante:

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

Cela montre que le texlive standard des référentiels Ubuntu est en cours d'utilisation. Après le sourcing, la sortie devient:

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

Je ne comprends pas très bien pourquoi l'utilisation d'un binaire différent fait que toutes ces "variables tex" changent également. Je m'attendais à ce que le binaire n'ait aucune information qu'il fait partie d'une distribution différente, mais heureusement il l'a! Notez que ces "variables tex" ne sont pas des variables d'environnement de type Unix (c'est pourquoi il est important d'utiliser des guillemets simples lorsque vous les passez à kpsexpand). Je suis un peu surpris de ne pas avoir eu à modifier l'un d'eux via export - en fait, ils ne sont pas tous définis. Mais jusqu'à présent, tout semble fonctionner.

2
bluenote10