Weitere Quelle: bei der TUG.

TeX-Live mit Debian

Vorab

Es ist manchmal nicht leicht im Leben (aber wem schreibe ich das?). Debian stable und TeX-Live zum Beispiel sind beide ganz hervorragende Vertreter ihrer Gattung – aber um sie zusammen zu bringen, muss man ein wenig tricksen.

Austricksen. Das Debian-Paketmanagement nämlich. Während Flexibilität ein wesentliches Element der TeX-Live-Distribution ist, ist Debian gar nicht darauf eingestellt.

Nun bin ich weithin kein Magier und besonders die Details des Debian-Paketmanagements sind mir (und werden es wahrscheinlich immer bleiben) ein Rätsel. Ich glaube, es ist genial – so genial, dass ich nie wirklich dahinter steigen werde.

Darum ist alles, was hier steht, mit einer Portion Vorsicht zu genießen. So wie es hier beschrieben ist, läuft es bei mir. Und auch wenn ich diese Seite in der Hoffnung ins Netz stelle, dass andere einen Nutzen davon haben, heißt das noch lange nicht, dass diese Vorgehensweise bei anderen überhaupt zum Erfolg führt oder nicht vielleicht sogar irgendwo Schaden anrichtet.

Seid vorsichtig! Ich habe euch gewarnt.

In jedem Fall freue ich mich über Kritik, Verbesserungsvorschläge, Fehlermeldungen per Mail.

Versionen

Hier läuft das so seit Debian jessie und TeX-Live von 2015 bis heute: bookworm und TeX-Live 2023.

Los geht's.

Nach den Furcht einflößenden Sätzen oben, überrascht es dann vielleicht doch ein wenig, wie einfach und schnell TeX-Live unter Debian in Betrieb genommen werden kann.

Ich baue mir drei texlive-Dummy-Pakete, mit welchen die Abhängigkeiten anderer Pakete auf die LaTeX-Pakete von Debian befriedigt werden können, obwohl diese ja gar nicht installiert sind.

Zum Erstellen der Dummy-Pakete gibt es wieder ein Paket: equivs. Für jedes zu erstellende Pakete benötigt equivs ein Control-File. Bei mir sehen diese etwa wie folgt aus:

tex-common-dummy.ctl
Package: tex-common
Priority: optional
Section: tex
Architecture: all
Version: 7777

Provides: tex-common
Architecture: all
Description: tex-common dummy package
 This package will satisfy debians tex-dependencies
 to use the TeX-Live Distribution with Debian Squeeze.
 .
 Please install together with the texlive-base-bin-dummy
 Package.
    
texlive-base-bin-dummy.ctl
Package: texlive-base-bin
Priority: optional
Section: tex
Architecture: all
Version: 7777

Provides: texlive-base-bin
Architecture: all
Description: texlive-base-bin dummy package
 This package will satisfy debians tex-dependencies
 to use the TeX-Live Distribution with Debian Squeeze.
 .
 Please install together with tex-common-dummy
 Package.

    
texlive-latex-base.ctl
Package: texlive-latex-base 
Priority: optional
Section: tex
Architecture: all
Version: 7777

Provides: texlive-latex-base 
Architecture: all
Description: texlive-latex-base dummy package
 This package will satisfy debians tex-dependencies
 to use the TeX-Live Distribution with Debian stable.
 .
 Please install together with the texlive-base-bin-dummy
 Package.

    

Die Pakete haben alle die Versionsnummer »7777« – damit werden sie auf absehbare Zeit vom Debian-Paketmanagement für aktueller als die originalen Debian Pakete gehalten und die auffällige Nummer erhöht den Wiedererkennungswert.

Wer schon länger dabei ist, wird es vielleicht bemerkt haben: Es hat sich ein wenig geändert seit den letzten Debian-Releases. Das liegt an der Umstellung von tetex auf texlive bei Debian.

Jetzt müssen per equivs noch die Paketdateien erzeugt werden. Das geht auf der Kommandozeile mit:

equivs-build tex-common-dummy.ctl
equivs-build texlive-base-bin-dummy.ctl
equivs-build texlive-latex-base.ctl
    

Und fertig sind die Dateien

welche (als root) mit

dpkg -i tex-common_7777_all.deb
dpkg -i texlive-base-bin_7777_all.deb
dpkg -i texlive-latex-base_7777_all.deb
    

installiert werden!

Das war alles an Vorbereitungen. Jetzt kann die TeX-Live wie auf CD oder DVD beschrieben installiert werden.

Ich habe mir für TeX-Live 2015 das Verzeichnis /usr/local/texlive/2015 angelegt und einen symbolischen Link /usr/local/texlive/current darauf gesetzt. Im Abschnitt directories des Installationsprogrammes wähle ich für "TEXDIR (the main TeX directory)" den Wert "/usr/local/texlive/current"; die anderen Verzeichnisse werden dann schon entsprechend voreingestellt.

Der symbolische Link hat übrigens vorher auf das Verzeichnis /usr/local/share/texlive/2014 gezeigt – den habe ich natürlich vorher löschen müssen.

Ganz wenig Nacharbeit

Es müssen hauptsächlich ein paar Pfade angepasst werden. An dieser Stelle kommt mir der symbolische Link entgegen. Die folgenden Anpassungen müssen nämlich nur genau ein einziges Mal gemacht werden – selbst wenn spätere TeX-Live-Versionen in ein anderes Verzeichnis installiert wird: Solange der symbolische Link unverändert bleibt und immer auf die aktuelle Installation verweist!

Solltet Ihr für Eure Installation ein anderes TEXDIR gewählt haben – müssen die Angaben im Folgenden natürlich entsprechend von euch angepasst werden.

Pfade

Die ausführbaren Dateien sowie man und info-Pages lasse ich mir nicht mehr in den vorgeschlagenen Pfade (/usr/local/bin, /usr/local/man und /usr/local/info) verlinken. Das war mir einfach zu unübersichtlich.

Die alten Links habe ich mit einem beherzten

      /usr/local# find . -lname "/usr/local/texlive/*" -exec rm {} \;
    

entfernt.

Executables

Damit die ausführbaren Dateien zukünftig auch vom System gefunden werden, habe ich im Verzeichnis /etc/profile.d die Datei texlive.sh neu angelegt. Sie hat den Inhalt:

      PATH="${PATH}:/usr/local/texlive/current/bin/x86_64-linux/"
      export PATH
    

Nach dem nächsten Einloggen sollten sie dann zur Verfügung stehen.

man- und info-Pages

Die man-Pages ins System zu integrieren ist leider etwas aufwändiger. Aber trotzdem überschaubar. Wirklich schlimm ist es nicht:

Zuerst müssen die Rechte des Verzeichnisses, in welchem die man-Pages liegen, angepasst werden, damit sie vom System verarbeitet werden können:

      /usr/local/share/texlive/current/texmf/doc# chown -R man.root man/
    

Dann muss dieser Pfad dem System bekannt gemacht werden. Fügt der Datei /etc/manpath.config diese Zeile hinzu.

      # texlive's man pages 
      MANDATORY_MANPATH                       /usr/local/share/texlive/current/texmf/doc/man
      MANPATH_MAP     /usr/local/share/texlive/current/bin/i386-linux         /usr/local/share/texlive/current/texmf/doc/man
      MANDB_MAP       /usr/local/share/texlive/current/texmf/doc/man          /var/cache/man/texlive
    

Wenn Ihr die manpages gleich angucken möchtet, stoßt im Verzeichnis /etc/cron.weekly als root man-db an.

Für die info-pages fehlt mir der Antrieb. Wenn Ihr die lesen wollt, wechselt in das Verzeichnis /usr/local/share/texlive/current/texmf/doc/info und ruft die jeweilige Seite direkt mit dem Kommando info <pagename> auf.

Schluss

Das war's eigentlich. Sieht schlimmer aus als es ist. Ich hoffe, ich habe nichts vergessen und TeX-Live läuft überall (zumindest unter Debian) zufriedenstellend und alle Abhängigkeiten werden ausreichend bedient. Bei mir ist einzig Lilypond betroffen und das ließ sich, ohne nach weiteren TeX-Paketen zu verlangen, installieren. Wenn doch noch etwas offen ist, freue ich mich über Nachricht.

Danke an Paul für's Korrekturlesen.






Homepage ]

Torsten Krüger · 26.06.2023
zum Webimpressum