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.
Unter »openSUSE« ist das Paket nfs-kernel-server
zu installieren:
sudo zypper in nfs-kernel-server
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.
sudo systemctl restart nfsserver.service
sudo systemctl enable nfsserver.service
Unter »openSUSE« ist das Paket samba
zu installieren:
sudo zypper in samba
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.
sudo systemctl restart smb.service
sudo systemctl enable smb.service
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/
sudo zypper in nfs-client
sudo mkdir -p /usr/local/texlive
MEIN_TEX_SERVER:/usr/local/texlive /usr/local/texlive nfs ro,auto 0 0
sudo mount /usr/local/texlive
which pdflatex
pdflatex --version
systemctl status usr-local-texlive.mount
In einem PowerShell-Terminal eingeben:
setx PATH="\\MEIN_TEX_SERVER\texlive;%PATH%"
In einem neu gestarteten PowerShell-Terminal eingeben:
$Env:PATH
pdflatex --version
(getestet unter Windows 7 und Windows 10)
Rolf (2022/12)