Umstellung TexLive-Mirror (pretest → standard) auf dem Synology NAS

Standard

Wie bereits im ursprünglichen Beitrag zum TeXLive-Mirror auf dem Synology NAS angekündigt möchte ich nun nach dem Release von TeXLive 2017 zeigen, wie man den Mirror sowie die eigene Installation auf Standard-TexLive 2017 umstellt.

Zunächst erzeugen wir im root-Verzeichnis des Webservers (/web) das Verzeichnis texlivemirror. Anschließend passen wir das Updateskript update_texlive.sh folgendermaßen an:

Wir behalten den Sync mit dem Pretest-Server, um den Start der nächsten Pretestphase auch ohne Ankündigung zu erkennen. Platz auf dem NAS wird dabei nicht verschwendet, da das Verzeicnis nach dem Ende der Pretestphase nur noch ein README enthält! Der rsync-Befehl ist wegen der unterschiedlichen Server auch leicht verschieden aufgebaut und zu gu­ter Letzt packen wir etwas Fleisch an den Knochen für die Status-eMail vom NAS an den User. Damit ist die Serverkonfiguration abgeschlossen.

Auf der Clientseite müssen wir nun noch das Default-Repository auf das neue Webserververzeichnis umstellen:

$ tlmgr option repository https://<NAS-IP>/texlivemirror
tlmgr.pl: setting default package repository to https://<NAS-IP>/texlivemirror

Zum Abschluß noch ein kleiner Test:

$ tlmgr update -list
tlmgr.pl: package repository https://<NAS-IP>/texlivemirror (verified)
tlmgr.pl: saving backups to C:/texlive/2017/tlpkg/backups
tlmgr.pl: no updates available

Damit haben wir unsere pretest-Installation erfolgreich in eine Standard-TeXLive2017-Installation verwandelt!

Ein TeXLive-Mirror (pretest) auf einem Synology NAS

Standard

Momentan starten wieder die Vorbeireitungen für TeXLive 2017, u.a. mit dem Einfrieren von TeXLive 2016, d.h. es gibt bis auf Weiteres keine Updates mehr. Daher scheint es ein günstiger Zeitpunkt zu sein, zu zeigen, wie man im Heimnetz einen eigenen TeXLive-Mirror betreiben kann. Im Speziellen befassen wir uns zunächst mit einer Pretest-Installation von TeXLive 2017 (bleeding edge). Sobald die Pretest-Phase abgeschlossen ist, zeige ich in einem weiteren Beitrag, wie man das Prozedere auf ein “normales” TeXLive 2017 umstellt. Dieser Artikel beschreibt die Vorgehensweise mit aktuellem DSM 6.1 auf dem Server (DS215j) und der Kombination Win10/Cygwin auf dem Client.

Vorbereitungen

Zunächst ist es erforderlich auf dem NAS die “Webstation” (Webserver) zu installieren und zu aktivieren, um später dem TeXLive-Manager eine URL anbieten zu können. Danach muß sichergestellt werden, daß auf dem NAS der ssh-Dienst läuft (Systemsteuerung → Terminal & SNMP).

Aus Sicherheitsgründen verwenden wir Port 2200 anstatt des Standart-Ports 22!

Spiegeln mit rsync

Für das Spiegeln der Inhalte zwischen einem der offiziellen Pretest-Server und dem NAS eignet sich rsync am Besten. Es sorgt für eine identische Kopie in einem Verzeichnis des Webservers (/web). Als Pretest-Server wählen wir den Server der tschechischen TeX-User-Group CSTUG.

Wir erstellen dazu das Shell-Skript update_texlive.sh:

Man achte dabei auf Unix-Zeilenenden (LF) und kopiere das Skript in das Root-Verzeichnis des Webservers (/web). Danach muß man sich per ssh auf dem NAS einloggen und sicherstellen, daß das Skript ausführbar ist!

$ ssh -p 2200 admin@<NAS-IP>
admin@<NAS-IP>'s password:

admin@jknas:~$ cd /volume1/web
admin@jknas:/volume1/web$ chmod +rwx update_texlive.sh
admin@jknas:/volume1/web$ ls -al
total 36
drwxrwxrwx+ 6 root root 4096 Apr 18 11:26 .
drwxr-xr-x 30 root root 4096 Mar 30 10:25 ..
drwxrwxrwx+ 3 root root 4096 Mar 30 10:25 @eaDir
-rwxrwxrwx+ 1 http http 1474 Jul 9 2016 index.html
-rwxr-xr-x 1 admin users 184 Apr 18 11:38 update_texlive.sh
drwx--x--x 2 http http 4096 Jul 9 2016 web_images

Abschließend können wir testen, ob mit einem manuellen Aufruf alles wie gewünscht funktioniert:

admin@jknas:/volume1/web$ ./update_texlive.sh

receiving incremental file list
tlpretest/
tlpretest/00_TIME.txt
tlpretest/README
tlpretest/install-tl
tlpretest/install-tl-advanced.bat
tlpretest/install-tl-unx.tar.gz
tlpretest/install-tl-unx.tar.gz.sha512
tlpretest/install-tl-unx.tar.gz.sha512.asc
tlpretest/install-tl-windows.bat
tlpretest/install-tl-windows.exe
^C

Im Verzeichnis finden wir nun einen neuen Ordner “tlpretest”

admin@jknas:/volume1/web$ ls -al
total 36
drwxrwxrwx+ 6 root root 4096 Apr 18 13:12 .
drwxr-xr-x 30 root root 4096 Mar 30 10:25 ..
drwxrwxrwx+ 3 root root 4096 Mar 30 10:25 @eaDir
-rwxrwxrwx+ 1 http http 1474 Jul 9 2016 index.html
drwxrwsr-x 4 admin users 4096 Apr 18 13:12 tlpretest
-rwxr-xr-x 1 admin users 184 Apr 18 11:38 update_texlive.sh
drwx--x--x 2 http http 4096 Jul 9 2016 web_images

Automatischer Aufruf (Task)

Um das Skript nun regelmäßig laufen zu lassen, erstellen wir im Aufgabenplaner des NAS einen neuen Task.

Laut Angabe der Website sollte der Buildvorgang jeweils gegen 5 Uhr (CEST) abgeschlossen sein. Wir starten daher unser Update um 6 Uhr.

Auf dem letzten Reiter geben wir noch den Speicherort unseres Skripts an.

Damit haben wir unter https://<NAS-IP>/tlpretest einen eigenen TexLive-Mirror zur Verfügung!

Gute Nacht Freunde (Reinhard Mey, 1972)

Installation

Nachdem das NAS über Nacht seinen Job erledigt hat, kopieren wir die Datei install-tl-windows vom NAS in ein Arbeitsverzeichnis auf den Client und führen sie aus:

$ ./install-tl-windows -repository https://<NAS-IP>/tlpretest -gui wizard

Gute Nacht Freunde 🙁

Es sind einfach zu viele Pakete und die Zigarette brannte mehr als zwei Stunden! Und ja, ich bin Teil des Problems! 😉

Was lange währt, wird endlich gut!

$ which latex
/cygdrive/c/texlive/2017/bin/win32/latex

$ latex -v
pdfTeX 3.14159265-2.6-1.40.18 (TeX Live 2017/W32TeX)
kpathsea version 6.2.3
Copyright 2017 Han The Thanh (pdfTeX) et al.
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Han The Thanh (pdfTeX) et al.
Compiled with libpng 1.6.29; using libpng 1.6.29
Compiled with zlib 1.2.11; using zlib 1.2.11
Compiled with xpdf version 3.04

Updates

Abschließend definieren wir noch unseren eigenen Mirror als Default-Repository:

$ tlmgr option repository https://<NAS-IP>/tlpretest


$ tlmgr update -self -all
tlmgr.pl: package repository https://<NAS-IP>/tlpretest (verified)
tlmgr.pl: saving backups to C:/texlive/2017/tlpkg/backups

Auf dem frisch installierten System gibt es natürlich keine Updates, aber alles funktioniert wie gewünscht!