Skip to content

Instantly share code, notes, and snippets.

@rolfn
Last active December 5, 2022 13:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rolfn/ba5ff59de777b6fcae0504a9be9ba049 to your computer and use it in GitHub Desktop.
Save rolfn/ba5ff59de777b6fcae0504a9be9ba049 to your computer and use it in GitHub Desktop.
Nutzung von TeXLive per Netzwerk

Nutzung der TeX-Distribution »TeX Live« unter »Linux« und »Windows«

Im Folgenden wird beschrieben, wie man eine serverseitig installierte TeX-Distribution sowohl unter »Linux« als auch unter »Windows« nutzen kann. Zu diesem Zweck wird in möglichst einfacher Weise gezeigt, wie diese Netzwerkressource per NFS (Linux-Clients) und per SMB/CIFS (Windows-Clients) exportiert und genutzt werden kann. Der Zugriff der Clients geschieht nur lesend.

Es wird davon ausgegangen, dass es sich um die Installation eines »Vanilla TeX Live«, wie hier beschrieben, handelt. Die Dateistruktur ist dann diese:

/usr/local/texlive/2019
/usr/local/texlive/texmf-local

Bei der Installation ist darauf zu achten, dass alle potenziell benötigten Rechner-Architekturen ausgewählt werden. Dem entsprechend sähe der Inhalt des Verzeichnisses /usr/local/texlive/2019/bin/ beispielsweise folgendermaßen aus:

i386-linux/
win32/
win64/
x86_64-linux/

Die nachfolgend verwendete symbolische Angabe MEIN_TEX_SERVER ist durch den Namen des realen Servers zu ersetzen.

Aktuelle Anmerkung zu 64-Bit-Binärprogrammen für Windows (win64, September 2022):

Es hat sich gezeigt, dass speziell der LuaLaTeX-Compiler in der standardmäßig in einer TeXLive-Installation verwendeten 32-Bit-Version Probleme mit der LaTeX-Format-Datei hat, wenn diese auf einem 64-Bit-System erzeugt wurde. Dies ist bei Netzwerk-Installation sehr wahrscheinlich. Um LuaLaTeX auch in diesem Fall funktionsfähig zu machen, muss man folgendermaßen vorgehen:

  • Zusätzlich 64-Bit-Programme für Windows installieren

    Dazu ist ein auf CTAN erhältliches zip-Archiv am korrekten Ort zu entpacken:

    sudo /usr/bin/sh -c 'cd /usr/local/texlive/2022/ ; \
      wget  http://mirrors.ctan.org/systems/win32/TLW64/tl-win64.zip ; \
      unzip tl-win64.zip ; chmod 755 bin/win64/* ; rm tl-win64.zip'  
    

    Danach existiert das zusätzliche Verzeichnis win64 im Bereich der ausführbaren Programme in der TeXLive-Installation:

    ls /usr/local/texlive/2022/bin/
    i386-linux  win32  win64  x86_64-linux
    
  • PATH-Umgebungsvariable ergänzen

    Im Falle eines erstmaligen Zufügen des Pfades der TeX-Programme:

    setx PATH "\\MEIN_TEX_SERVER\texlive\current\bin\win64\;\\MEIN_TEX_SERVER\texlive\current\bin\win32\;%PATH%"
    

    Enthält dagegen PATH bereits den 32-Bit-Pfad, dann ist Folgendes einzugeben:

    setx PATH "\\MEIN_TEX_SERVER\texlive\current\bin\win64\;%PATH%"
    

    Im Ergebnis muss der 64-Bit-Pfad zuvorderst eingetragen sein und es muss ihm der 32-Bit-Pfad folgen, da einige wenige 32-Bit-Programme auch jetzt noch benötigt werden.

    Für »TeXLive 2023« ist die Bereitstellung regulärer 64-Bit-Programme angekündigt worden. Dann ist wahrscheinlich das einmalige Eingeben von

    setx PATH "\\MEIN_TEX_SERVER\texlive\current\bin\win64\;%PATH%"
    

    ausreichend.


Als Basis für den im Folgenden erwähnten Server dient hier »openSUSE«. Bei anderen Linux-Distribution ist ähnlich vorzugehen.

Server

NFS-Export

Vorbereitung

Unter »openSUSE« ist das Paket nfs-kernel-server zu installieren:

sudo zypper in nfs-kernel-server

Konfiguration

Die Datei /etc/exports muss folgendermaßen ergänzt werden:

/usr/local/texlive  *(ro,root_squash,sync,no_subtree_check,crossmnt)

Das Server-Verzeichnis /usr/local/texlive wird damit für die Allgemeinheit zum Einbinden per »NFS« angeboten.

Starten und Aktivieren

sudo systemctl restart nfsserver.service 
sudo systemctl enable nfsserver.service

SMB-Export

Vorbereitung

Unter »openSUSE« ist das Paket samba zu installieren:

sudo zypper in samba

Konfiguration

Es ist die Datei /etc/samba/smb.conf mit folgendem Inhalt zu erzeugen:

[global]
map to guest = Bad User
server string = %h server 
workgroup = texlive
idmap config * : backend = tdb

[texlive]
comment = TeX Live
guest ok = Yes
guest only = Yes
path = /usr/local/texlive

Das Server-Verzeichnis /usr/local/texlive wird damit für die Allgemeinheit zum Einbinden per »SMB/CFIS« angeboten.

Starten und Aktivieren

sudo systemctl restart smb.service
sudo systemctl enable smb.service

Aktualisieren der TeX-Distribution

Es ist zu empfehlen, die TeX-Installation des Servers von einem anderen Rechner aus zu aktualisieren. Vorher sollte auf diesem Rechner mit wichtigen TeX-Dokumenten getestet werden, ob es gefahrlos ist, die aktualisierte TeX-Distribution an die Clients zu verbreiten. Im positiven Fall kann die Aktualisierung folgendermaßen passieren (Aufruf auf dem Test-Rechner):

sudo rsync -avz --delete /usr/local/texlive MEIN_TEX_SERVER:/usr/local/

Clients

Linux

Vorbereitung

sudo zypper in nfs-client

Erzeugen des Mount-Points zum Einbinden der Netzwerkressource

sudo mkdir -p /usr/local/texlive

Ergänzen von /etc/fstab

MEIN_TEX_SERVER:/usr/local/texlive /usr/local/texlive nfs ro,auto 0 0

Mounten der neu eingetragenen Netzwerkressource

sudo mount /usr/local/texlive

Test

which pdflatex
pdflatex --version

systemctl status usr-local-texlive.mount 

Windows

Ergänzen des Suchpfads um die Netzwerkressource

In einem PowerShell-Terminal eingeben:

setx PATH="\\MEIN_TEX_SERVER\texlive;%PATH%"

Test

In einem neu gestarteten PowerShell-Terminal eingeben:

$Env:PATH
pdflatex --version

(getestet unter Windows 7 und Windows 10)


Rolf (2022/12)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment