TeX Live 2008 à la vanille sur Debian-like
Suite notamment à une discussion sur fr.comp.text.tex
, mais aussi pour me
servir d’aide-mémoire, voici une description de mon installation de TeX Live
2008 « à la vanille » (c’est-à-dire la version upstream non empaquetée par
Debian), et plus précisément de comment établir de bonnes relations entre cette
installation locale et la gestionnaire de paquets de Debian.
Premièrement, pourquoi avoir installé une TeX Live nature plutôt que les paquets TeX Live de Debian ? Plusieurs raisons :
- L’équipe TeX de Debian n’a pas encore eu le temps d’empaqueter la version 2008, et j’étais impatient de jouer avec les nouveautés de cette version.
- La version 2008 de TeX Live possède son propre gestionnaire de paquet, et je ne sais pas comment il sera utilisable dans la version Debian de la chose : dans le doute, installer la version nature me paraît raisonnable.
- Une raison personnelle : étant développeur TeX Live, il me paraît naturel d’utiliser la version nature pour mieux la connaître.
Maintenant, le problème qui se pose avec les installations locales, c’est que le gestionnaire de paquets de la distribution n’en est a priori pas au courant, et qu’il faudrait qu’il en tienne compte dans ses calculs de dépendance pour ne pas installer une deuxième version de ce qu’on a déjà installé. (On peut bien sûr choisir d’installer côte à côte une TeX Live de Debian et une nature, mais il faut être sûr de bien contrôler son environnement si on veut éviter les problèmes.)
La solution proposée par Debian tient en un mot : equivs
. Ce petit paquet
contient ce qu’il faut pour créer facilement des paquets Debian ne contenant
rien à part des informations de dépendances pour APT. Voyons comment s’en servir
pour créer un paquet texlive-local
qui informera APT qu’on a déjà une TeX
Live, merci. On commence par installer equivs
et se mettre dans un répertoire
temporaire de travail (je suppose que ~/tmp
existe et que c’est là-dessous
qu’on aime travailler). On commence alors par utiliser equivs-control
.
# aptitude install equivs
$ mkdir ~/tmp/tl-loc
$ cd !$
$ equivs-control texlive-local
La dernière ligne a pour effet de préparer un squelette fichier de contrôle pour
notre futur paquet. C’est là qu’on va indiquer à quels paquets Debian réels
correspond notre installation locale, grâce à la ligne Provides:
. On édite
aussi quelques autres informations au passage (champs Package
, Version
,
Maintainner
et Description
) ; le fichier obtenu est le suivant.
Section: misc
Priority: optional
Standards-Version: 3.6.2
Package: texlive-local
Version: 2008-1
Maintainer: MPG <mpg@roth.elzevir.fr>
Provides: cm-super, cm-super-minimal, context, latex-beamer,
latex-cjk-all, latex-cjk-chinese, latex-cjk-chinese-arphic-bkai00mp,
latex-cjk-chinese-arphic-bsmi00lp, latex-cjk-chinese-arphic-gbsn00lp,
latex-cjk-chinese-arphic-gkai00mp, latex-cjk-common, latex-cjk-japanese,
latex-cjk-japanese-wadalab, latex-cjk-korean, latex-cjk-thai,
latex-sanskrit, latex-xcolor, lmodern, luatex, musixtex, pgf, prosper,
tex4ht, tex4ht-common, texinfo, texlive-base, texlive-base-bin,
texlive-base-bin-doc, texlive-bibtex-extra, texlive-common,
texlive-doc-base, texlive-doc-bg, texlive-doc-cs+sk, texlive-doc-de,
texlive-doc-el, texlive-doc-en, texlive-doc-es, texlive-doc-fi,
texlive-doc-fr, texlive-doc-it, texlive-doc-ja, texlive-doc-ko,
texlive-doc-mn, texlive-doc-nl, texlive-doc-pl, texlive-doc-pt,
texlive-doc-ru, texlive-doc-th, texlive-doc-tr, texlive-doc-uk,
texlive-doc-vi, texlive-doc-zh, texlive-extra-utils, texlive-font-utils,
texlive-fonts-extra, texlive-fonts-extra-doc, texlive-fonts-recommended,
texlive-fonts-recommended-doc, texlive-formats-extra, texlive-full,
texlive-games, texlive-generic-extra, texlive-generic-recommended,
texlive-humanities, texlive-humanities-doc, texlive-lang-african,
texlive-lang-arab, texlive-lang-armenian, texlive-lang-croatian,
texlive-lang-cyrillic, texlive-lang-czechslovak, texlive-lang-danish,
texlive-lang-dutch, texlive-lang-finnish, texlive-lang-french,
texlive-lang-german, texlive-lang-greek, texlive-lang-hebrew,
texlive-lang-hungarian, texlive-lang-indic, texlive-lang-italian,
texlive-lang-latin, texlive-lang-manju, texlive-lang-mongolian,
texlive-lang-norwegian, texlive-lang-other, texlive-lang-polish,
texlive-lang-portuguese, texlive-lang-spanish, texlive-lang-swedish,
texlive-lang-tibetan, texlive-lang-ukenglish, texlive-lang-vietnamese,
texlive-latex-base, texlive-latex-base-doc, texlive-latex-extra,
texlive-latex-extra-doc, texlive-latex-recommended,
texlive-latex-recommended-doc, texlive-latex3, texlive-math-extra,
texlive-metapost, texlive-metapost-doc, texlive-music, texlive-omega,
texlive-pictures, texlive-pictures-doc, texlive-plain-extra,
texlive-pstricks, texlive-pstricks-doc, texlive-publishers,
texlive-publishers-doc, texlive-science, texlive-science-doc,
texlive-xetex, tipa,
Architecture: all
Description: Installation locale de TeX Live.
Installation locale d'une TeX Live nature complete.
C’est presque fini. Maintenant que notre fichier de contrôle est prêt, on peut créer le paquet et l’installer :
$ equivs-build texlive-local
# dpkg -i texlive-local_2008-1_all.deb
(Seule le dernière étape se fait en root ou avec sudo
: dans tous mes
exemples, $
ou %
représent un shell utilisateur, et #
un shell root.)
On peut aussi si on le souhaite sauvegarder le paquet Debian créé :
personnellement, je garde une copie de tous mes paquets créés localement dans
/usr/local/debs
.
Enfin, j’ai quand même installé lmodern
, et tex-common
dont il dépend,
depuis les dépôts Debian : le but est simplement d’enregistrer ces polices au
niveau de defoma
et de X11
. (Si j’étais un peu moins pataud en fontes, je le
ferais à la main.) Le paquet tex-common
ne risque pas d’interférer avec mon
installation : il contient essentiellement des scripts de gestion propres à
Debian.
Je peux ainsi installer (depuis les dépôts Debian) des éditeurs comme Kile ou TeXmaker, voire le module aucTeX pour Emacs (que j’essaierai un jour lointain, quand j’aurai beaucoup de temps) sans qu’Aptitude n’essaie de m’installer le moitié d’une TeX Live Debian en plus comme dépendances.
Mise à jour Cette méthode présente des limitations : si un paquet présente une dépendance versionnée sur un paquet de TeX Live (par exemple, dépend de texlive-foo 2009-1 ou supérieur) alors le paquet virtuel ne sera pas pris en compte. De telles dépendances versionnées se sont présentées par le passé et empêchaient par exemple d’installer Kile sans tirer une foule de paquets texlive Debian avec.
Quand ce cas se présente, je préconise de laisser APT installer ce qu’il veut,
en modérant quand même son appétit en lui faisant n’installer que les
dépendances dures (par opposition aux recommandations), avec l’option de ligne
de commande -o APT::Install-Recommends=0
. Dans tous les cas, la TeX Live
installée localement sera la seule utilisée du moment qu’elle arrive en
premier dans le PATH
.
<
p>[...] APT de ce
texlive et debian | hilpers
17 jan 09 at 22:18 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
<
p>[...] On peut installer Kile, TexMaker
installation de TLive 2008 sur Ubuntu 8.10 | hilpers
9 fév 09 at 23:04 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
Merci Manuel pour ce tutoriel.
Je viens d’essayer de faire ce que tu dis sous ubuntu 9.04 et… ça ne fonctionne pas :-(
Récapitulons. J’ai installé TL2008 : tout semble ok (je l’ai installée en root, je n’ai changé aucun des paramètres par défaut).
J’ai préparé le package texlive-local comme tu le suggères et je l’ai installé. Puis, en utilisateur « normal », je tape latex et là
Le programme « latex » n’est pas installé actuellement. Vous pouvez l’installer en tapant : sudo apt-get install texlive-latex-base
Donc, d’une part le path de la texlive n’est pas configuré pour l’utilisateur (je n’ai pas encore lu la doc, ça doit être normal si l’installation est faite en root), mais surtout comment cela se fait que apt ne soit pas au courant que texlive-local a installé (virtuellement) texlive-latex-base (qui est dans ta liste).
Pour être sûr que texlive-local est bien installé, j’ai fait
sudo dpkg -s texlive-local
et résultat
Package: texlive-local Status: install ok installed Priority: optional Section: misc Installed-Size: 36
As-tu une idée ?
Merci
Christophe
24 avr 09 at 2:26 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
Hmm… je pense que le seul problème est que pour terminer l’installation de TeX Live avec les options par défaut, il faut ajouter
/usr/local/texlive/2008/bin/x86_64-linux
(la fin peut changer selon ton architecture) auPATH
. C’est normal, que l’installation soit faite enroot
ou pas, l’installateur ne sait a priori pas comment régler lePATH
sur ta machine, donc il n’essaye pas de jouer au plus malin et il te laisse le faire toi-même (sauf sur windows).Ce qui est étrange par contre, c’est qu’en principe à la fin de l’installation, un message assez explicite à ce sujet devrait apparaître. Je viens de tester en faisant une installation minimal pour voir, je ne l’ai pas vu, donc peut-être qu’il y a un problème avec l’installateur.
Toujours est-il que la solution est d’ajouter le chemin Kivabien au début du
PATH
. Pour ça, je crois que le mieux est d’aller éditer (en root)/etc/logins.def
et/etc/profile
(pour couvrir tous les cas : environnement graphique, shell de login ou pas). Il faut changerENV_PATH
etENV_SUPATH
) dans le premier, et les deux lignes définissantPATH
dans le deuxième. On commence à comprendre pourquoi l’installateur n’essaie pas de s’en mêler :-)Pour le message te conseillant d’installer
texlive-latex-base
, je pense que de toutes façons il apparaît dès que le commande n’est pas trouvée, et qu’aucune vérification n’est faite pour savoir si le paquets est déjà installé ou fournit par un autre.Tiens-moi au courant.
mpg
24 avr 09 at 13:30 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
@mpg Merci de ta réponse.
Oui. C’est dommage que l’installateur ne soit pas assez explicite sur le sujet. Mais bon, c’est clairement écrit dans la doc que j’ai lue après.
Je n’ai pas de
PATH
dans/etc/profile
. Mais je peux le rajouter, si c’est ça qu’il faut. Ne faut-il pas mettre ce genre de chose dans/etc/bash.bashrc
?Au passage, où doit-on modifier le chemin pour les manpages et les infopages ? Je pense qu’un petit paragraphe dans la doc sur ce qu’il faut faire dans une ubuntu serait peut-être le bienvenu (vu que c’est quand même une des distributions à la mode).
Tu dois avoir raison, en effet.
Bon, mais il y a un truc qui me chagrine un peu. Pourquoi quand je fais
christophe@xenon:~$ sudo apt-get install texlive-latex-base
j’obtientLecture des listes de paquets... Fait Construction de l'arbre des dépendances Lecture des informations d'état... Fait Les paquets supplémentaires suivants seront installés : dvipdfmx texlive-base texlive-base-bin texlive-common texlive-doc-base Paquets suggérés : perl-tk Les NOUVEAUX paquets suivants seront installés : dvipdfmx texlive-base texlive-base-bin texlive-common texlive-doc-base texlive-latex-base 0 mis à jour, 6 nouvellement installés, 0 à enlever et 0 non mis à jour. Il est nécessaire de prendre 10,9Mo dans les archives. Après cette opération, 37,2Mo d'espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ?
Normalement, aptitude devrait me répondre que ce paquet est déjà installé (comme les 5 autres d’ailleurs).Qu’en penses-tu ?
Merci
Christophe
24 avr 09 at 14:21 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
Pour le
PATH
, s’il n’y a rien à son sujet dans/etc/profile
, n’y touche pas, celui de/etc/logins.def
devrait être utilisé (il faut se reloguer pour qu’il prenne effet, au fait). D’ailleurs, je trouve ça anormal que chez moi lePATH
soit spécifié dans/etc/profile
. Pour/etc/bash.bashrc
, j’ai tendance à dire pareil : s’il y a déjà des indications absolues dePATH
, les changer, sinon, ne pas y toucher. Tout le problème avec ses histoires dePATH
est qu’a priori on ne veut pas régler seulement celui de son shell, mais aussi celui des applications graphiques.Pour
MANPATH
par contre c’est bien plus simple : vu qu’on ne va lancer la commandeman
que depuis un shell, il suffit de mettredans un fichier de démarrage de son shell (typiquement
~/.bashrc
).Concernant la réaction d’
aptitude
, je ne suis pas surpris qu’il ne réponde pas que le paquet est installé, puisque concrètement il ne l’est pas, il est juste « fourni » par un autre paquet. Par contre qu’il veuille installer les dépendances est un peu surprenant, mais bon, ça me paraît un peu limite comme cas. En tout cas, ce que je sais, c’est que je n’ai jamais eu de problème en installant des paquets qui dépendent « normalement » de texlive mais qui ne sont pas des composants de texlive.mpg
24 avr 09 at 14:36 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
@mpg
Oui, ça doit d’ailleurs être pour cette raison qu’emacs ne trouve toujours pas les exécutables et que j’ai dû bidouiller emacs pour que ça fonctionne.
@mpg
C’est vrai. Je n’ai pas eu de problème par exemple avec auctex. Mais cela reste contre-intuitif pour moi.
Merci encore
Christophe
24 avr 09 at 15:41 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
Bonjour,
J’utilise la même méthode que vous depuis plusieures années, et je confirme le message de Christophe, ça ne fonctionne plus sous kubuntu 9.04. J’ai essayé de changer la version du package pour passer en 2007.dsfg.1-5 qui est la version utilisée par le système, mais rien n’y fait. De plus, le paquet (le faux créé par nos soins) s’intalle, mais n’apparaît pas dans synaptic ou autre gestionnaire de paquets.
Vous trouverez ci-dessous le morceau de console qui montre que pour installer kile, le système ne tient pas compte du faux paquet de substitution.
Olivier V
meloli@fixe:~/Temp$ equivs-build texlive-equivs dh_testdir dh_testroot dh_clean -k dh_testdir dh_testroot dh_install dh_installdocs dh_installchangelogs dh_compress dh_fixperms dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb : construction du paquet « texlive-full-equivs » dans « ../texlive-full-equivs_2007.dsfg.1-5_all.deb ».
The package has been created. Attention, the package has been created in the current directory, not in « .. » as indicated by the message above! meloli@fixe:~/Temp$ ls cur texlive-equivs texlive-full-equivs_2007.dsfg.1-5_all.deb meloli@fixe:~/Temp$ sudo dpkg -i texlive-full-equivs_2007.dsfg.1-5_all.deb dpkg – avertissement : texlive-full-equivs mis à jour de la version 2008-1 vers l’ancienne version 2007.dsfg.1-5. (Lecture de la base de données… 100368 fichiers et répertoires déjà installés.) Préparation du remplacement de texlive-full-equivs 2008-1 (en utilisant texlive-full-equivs_2007.dsfg.1-5_all.deb) … Dépaquetage de la mise à jour de texlive-full-equivs … Paramétrage de texlive-full-equivs (2007.dsfg.1-5) … meloli@fixe:~/Temp$ sudo apt-get install kile Lecture des listes de paquets… Fait Construction de l’arbre des dépendances Lecture des informations d’état… Fait Les paquets supplémentaires suivants seront installés : asymptote asymptote-doc blt dblatex doc-base dvipdfmx dvipng guile-1.8 guile-1.8-libs imagemagick imagemagick-doc kbibtex lacheck latex-beamer latex-xcolor latex2html libfftw3-3 libfreezethaw-perl libkpathsea4 libmldbm-perl libnetpbm10 libsigsegv0 libt1-5 libuuid-perl lilypond lilypond-data lilypond-doc lmodern netpbm perl-doc pgf preview-latex-style prosper psutils python-imaging-tk python-tk tcl8.5 tex-common texlive texlive-base texlive-base-bin texlive-common texlive-doc-base texlive-extra-utils texlive-fonts-recommended texlive-lang-cyrillic texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-math-extra texlive-pictures texlive-xetex tipa tk8.5 xsltproc Paquets suggérés : gv xpdf blt-demo docbook opensp transfig guile-1.8-doc bibtex2html latex2rtf kile-doc auctex libfftw3-dev groff python-imaging-doc python-imaging-tk-dbg tix python-tk-dbg tclreadline perl-tk dvi2tty dvidvi scalable-cyrfonts-tex texpower Les NOUVEAUX paquets suivants seront installés : asymptote asymptote-doc blt dblatex doc-base dvipdfmx dvipng guile-1.8 guile-1.8-libs imagemagick imagemagick-doc kbibtex kile lacheck latex-beamer latex-xcolor latex2html libfftw3-3 libfreezethaw-perl libkpathsea4 libmldbm-perl libnetpbm10 libsigsegv0 libt1-5 libuuid-perl lilypond lilypond-data lilypond-doc lmodern netpbm perl-doc pgf preview-latex-style prosper psutils python-imaging-tk python-tk tcl8.5 tex-common texlive texlive-base texlive-base-bin texlive-common texlive-doc-base texlive-extra-utils texlive-fonts-recommended texlive-lang-cyrillic texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-math-extra texlive-pictures texlive-xetex tipa tk8.5 xsltproc 0 mis à jour, 56 nouvellement installés, 0 à enlever et 4 non mis à jour. Il est nécessaire de prendre 195Mo dans les archives. Après cette opération, 540Mo d’espace disque supplémentaires seront utilisés. Souhaitez-vous continuer [O/n] ? n Annulation.
Olivier V
13 sept 09 at 12:42 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
[...] ou une distribution dérivée tout en satisfaisant le gestionnaire de paquet, je renvoie à un précédent billet. Notez que des paquets debpour TeX Live 2009 seront prochainement disponibles pour Debian (puis ses [...]
Le mpg-blog » TeX Live 2009 est sortie
9 nov 09 at 3:04 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
J’ai rencontré un problème pour installer lilypond via synaptic. L’installation a retourné un «problème», puis plus moyen de désinstaller lilypond-data (qui était dans un «état incohérent»). Il m’a donc fallu installer le paquet texlive-base puis réinstaller lilypond-data puis désinstaller lilypond-data et enfin désinstaller texlive-base. Je me retrouve avec mon système d’aplomb. J’ai installer lilypond à la main en local et tout fonctionne. Je tenais à signaler ce problème au cas où ça intéresserait d’autre personne. Mis à part ce problème, cette méthode à la vanille est parfaite !!!
Chupin Maxime
3 déc 09 at 14:46 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
Astuce très pratique… Une petite remarque, avec une vieille Ubuntu et TL 2008, elle m’avait provoqué un bug énervant lors de l’installation et/ou la désinstallation de nombreux paquets sous ubuntu à cause d’un problème de version de tex-info qui ne prenait plus le bon nombre d’arguments…
Je retente avec une ubuntu récente et TL 2010… on verra bien.
Drébon
28 oct 10 at 15:42 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>
Oui, le problème de conflit avec
install-info
est connu. C’est d’ailleurs pour ça que texinfo a été retiré de TeX Live depuis la version 2010. Il ne devrait donc plus y avoir de problème maintenant.(Pour les versions antérieures, je signale brièvement la chose sur la page officielle Debian-TeX Live, mais il est vrai que j’avais oublié de la faire ici.)
mpg
28 oct 10 at 15:50 edit_comment_link(__('Edit', 'sandbox'), ' ', ''); ?>