summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/guit08/tlmgr-dtk.tex
blob: a235c2ee012101ed2ea8aca6f0912e2daaf5097b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
%
% Norbert Preining
% Article presented on the 5th GuITmeeting, Pisa 18 October 2008
% Übersetzung für DTK
%
% Copyright 2008, 2009 Norbert Preining
% You can redistribute and/or modify this document under the terms of the 
% GNU General Public License as published by the Free Software Foundation; 
% either version 2 of the License, or (at your option) any later version.
%

\newcommand{\tl}{\TeX~Live}
\title{\tl~2008 und der \TeX\ Live Manager%
  \thanks{
	  Dieser Artikel ist eine erweiterte und auf den neusten Stand
  	  gebrachte Version eines ursprünglich am GuIT\ Conference 2008 in 
	  Pisa präsentierten und in Ars\TeX nica, Issue~6 veröffentlichten
	  Artikels}}

\author{Norbert Preining}
\address{Norbert}{Preining}{Technische Universität Wien\\
	%Wiedner Hauptstr.\ 10\\
	%1040 Wien, Austria
}
%\netaddress{preining@logic.at}

\maketitle

\lstset{frame=lines,basicstyle=\small\ttfamily,prebreak={\Righttorque},
  postbreak={\Lefttorque},columns=flexible,breaklines}
\DefineShortVerb{\|}

\newcommand{\tlmgr}{\TeX~Live Manager}

\newcommand{\tlpsrc}{\texttt{tlpsrc}}
\newcommand{\tlpsrcs}{\tlpsrc{}s}
\newcommand{\tlpobj}{\texttt{tlpobj}}
\newcommand{\tlpobjs}{\tlpobj{}s}
\newcommand{\tlpdb}{\texttt{tlpdb}}
\newcommand{\tlpdbs}{\tlpdb{}s}
\newcommand{\pl}{Perl}
\newcommand{\gs}{Ghostscript}
\newcommand{\tlu}{\texttt{texlua}}
\newcommand{\kpse}{Kpathsea}
\newcommand{\XeTeX}{Xe\TeX}
\newcommand{\acro}[1]{\textsc{\MakeLowercase{#1}}}
\newcommand{\ctan}{\acro{CTAN}}
\newcommand{\cmd}[1]{\textsf{#1}}
\newcommand{\button}[1]{\textsf{#1}}
\newcommand{\var}[1]{\textsl{#1}}


\begin{abstract}
Die Release von \tl~2008 vor bald einem Jahr ist die erste Ausgabe
von \tl\ die das neue Programm \tlmgr, kurz tlmgr, mitbringt.

Der \tlmgr\ übernimmt nicht nur einige der Aufgaben von texconfig
(welches niemals für Windows verfügbar war), sondern bereichert die
\tl\ Welt um viele neue Möglichkeiten, darunter die wohl am längsten
gewünschte Fähigkeit zu laufenden Updates.

Der vorliegende Artikel präsentiert das neue \tl\ Installationsprogramm, den
\tlmgr, und beschreibt einige andere Neuigkeiten in \tl~2008.
\end{abstract}


\tableofcontents

\section*{Wichtiger Hinweis}

Dieser Artikel beschreibt den Status des \tlmgr\ wie er im April~2009
verteilt wird, und nicht die Version die auf \acro{DVD} vorhanden ist.
Letztere funktioniert gut für lokale Konfigurationsänderungen
(warum wir das Programm auch auslieferten), aber der Updatemechanismus
übers Internet ist nicht hinlänglich robust. Benutzer der \acro{DVD}
Version sollten zuerst den \tlmgr\ auf den neuesten Stand bringen.

\section{Einführung}
\label{sec:intro}

Nach mehr als einem Jahr der Entwicklung wurde \tl~2008 mit einer
völlig neuen Infrastruktur freigegeben \citep{at:2007-4-069-preining}.
Der Ausgangspunkt dieser Überarbeitung waren zuerst nur notwendige
Vereinfachungen um die Arbeit der Entwickler (etwas) einfacher und das
System aufgrund der Elimination von doppelter Informationen zu
vereinfachen.

Die erste Änderung die für normale Benutzer sichtbar wurde war die
Vereinheitlichung des Installationsprogramms, so dass nun alle
unterstützten Plattformen nun den gleichen Installer verwenden.
Weiters erhielt das Installationsprogramm eine graphische Oberfläche
die ebenfalls einheitlich über alle Plattformen ist. Auf Unix ist die
einzige Voraussetzungen des Installationsprogramms eine Perlinstallation,
und für das graphische Frontend zusätzlich das Vorhandensein von Perl/Tk.
Auf Windows wird eine minimale Perlinstallation mit allen notwendigen
Modulen mitgeliefert, so dass keine weiteren Voraussetzungen gegeben
sind.

Der erste Teil dieses Artikels wird einen Überblick über das 
neue Installationsprogramm geben.

Die zweite für Benutzer sichtbare Änderung ist das neue Programm \tlmgr,
oder kurz tlmgr. Es konfiguriert eine vorhandene \tl\ Installation, sowohl
was Pakete als auch was Optionen und Einstellungen angeht. Es erlaubt neben
vieler Aufgaben die ursprünglich von |texconfig| ausgeführt wurde auch die
Installation von zusätzlichen Paketen, das Update und das Entfernen von 
vorhandenen Paketen, die Erstellung von Backups, die Suche nach und das
Auflisten von Paketen.

\section{Das neue Installationsprogramm}
\label{sec:installer}

Die Erstellung eines neuen \tl\ Installationsprogramms wurde durch das
Umschreiben der Infrastruktur bedingt \citep{at:2007-4-069-preining}. 
Für den Benutzer der \tl\ installiert ergeben sich nur einige Änderungen
im Aussehen, aber dahinter stehen einige wichtige Änderungen, im speziellen:
\begin{itemize}
\item Installationen von \tl\ über das Internet wird ermöglicht.
\item Es gibt nur mehr ein (1) Installationsprogramm, das entweder im 
  Textmodus arbeitet und dabei das frühere Shellskript |install-tl.sh|
  emuliert, oder im \acro{GUI} Modus.
\item Die Installation auf Windowssystemen ist viel näher an der Installation
  auf Unix-Systemen.
\end{itemize}

\subsection{Installation von  \tl\ über das Internet}

Wer die \tl\ \acro{DVD} verwendet kann das Installationsprogramm wie 
üblich direkt von der \acro{DVD} starten. Auf Windows startet dabei
das Installationsprogramm automatisch im graphischen Modus (siehe weiter 
unten), auf Unix-Systemen hingegen im Textmodus.

Ebenfalls ist ein Installationspaket \citep{inst:package} verfügbar
das nur die notwendigen Dateien für eine Installation über das
Internet enthält. Normalerweise wird dabei automatisch ein vom 
|http://mirror.ctan.org| Service ausgewählter Spiegelserver von \ctan\
verwendet (siehe |http://tug.org/ctan.html#sites|).

Dabei werden für die Netzwerkinstallation zwei Pakete zur Verfügung
gestellt. Von |install-tl-unx.tar.gz| unterstützt nur Unix-Systeme,
während |install-tl.zip| zusätzlich auch die notwendige Teilmenge
von Perl für Windows mitbringt. Letzteres funktioniert auf allen
unterstützten Plattformen. Der einzige Grund für die Existenz der
separaten Pakete ist die signifikant kleinere Größe des Installationspaketes
für Unix.

Die voreingestellte Installationsquelle kann durch die Angabe der 
Kommandozeilenoption |-location| beliebig geändert werden.

\subsection{Der Textmodus des Installers}

Wenn Sie \tl\ in den letzten Jahren installiert haben werden Sie keine
großen Änderungen im Textmodus des Installationsprogramms erkennen
((siehe Abb.~\ref{fig:text_main_menu}). Wir haben versucht so nahe wie
möglich am Installationsprogramm der vorherigen Ausgaben zu halten.
Eine neue Option kann am unteren Ende des Menüs gefunden werden:
\emph{set up for running from DVD}. Das ist woher das \emph{Live} in \tl\
kommt: Es erstellt nur eine absolut minimale Umgebung auf dem lokalen
Computer, während alle Eingabedateien und Programme direkt von der
\acro{DVD} verbleiben.

Wie in den vorigen Jahren ist das Installationsprogramm nur in Englisch
verfügbar, während der Graphikmodus jetzt diverse Übersetzungen mitbringt.

\begin{figure}[htp!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{install08text-crop}}
  \caption{Hauptmenü des Installers im Textmodus}
  \label{fig:text_main_menu}
\end{figure}

\subsection{Der Grafikmodus des Installers}

Der graphische Modus des Installationsprogramms hat fast die gleiche
Funktionalität wie der Textmodus, nur die Option der \emph{Live} Installation
fehlt. Der Grafikmodus ist in Perl/Tk programmiert und sollte auf allen
unterstützten Plattformen laufen (wobei auf Unix Perl/Tk installiert
sein muss).

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-installer-de.png}}
  \caption{Hauptfenster des graphischen Installers}
  \label{fig:gui_main_menu}
\end{figure}

Abbildung~\ref{fig:gui_main_menu} zeigt das Hauptfenster, dass sehr
an den Textmodus erinnern soll. Wie im Textmodus erlaubt es die zu
installierenden Systeme zu ändern (Abb.~\ref{fig:gui_systems}), ein
Schema auszuwählen (Abb.~\ref{fig:gui_scheme}), wobei ein Schema
eine vordefiniert Auswahl an Paketgruppen ist. Weiters können 
die einzelnen Paketgruppen selber bearbeitet werden, sowie die
Verfügbarkeit von Sprachpaketen und Dokumentation in diversen Sprachen
(Abb.~\ref{fig:gui_coll} und~\ref{fig:gui_lang}). Dann kann der
Installationsordner und verwandte Ordner selektiert werden und 
diverse Optionen an- oder abgewählt werden. All dies sind Funktionalität
wie sie vom Installationsprogramm der letzten Jahre zur Verfügung 
gestellt wurden.

\begin{figure}[ht!]
  \centering
  \resizebox{0.3\columnwidth}{!}{\includegraphics{gui-systems.png}}
  \caption{Auswahlfenster für Binärsysteme}
  \label{fig:gui_systems}
\end{figure}

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-scheme.png}}
  \caption{Auswahlfenster für Schemata}
  \label{fig:gui_scheme}
\end{figure}

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-collections.png}}
  \caption{Auswahlfenster für Paketgruppen}
  \label{fig:gui_coll}
\end{figure}

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-lang.png}}
  \caption{Auswahlfenster für Sprachpakete}
  \label{fig:gui_lang}
\end{figure}

Sobald die Installation gestartet wird erscheint ein Fenster in dem
der Fortschritt der zu installierenden Pakete angezeigt wird, zusammen mit
Abschätzung der Restzeit und einem Fortschrittsbalken
(Abb.~\ref{fig:gui_progress}).

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{gui-progress.png}}
  \caption{Fortschrittsfenster}
  \label{fig:gui_progress}
\end{figure}

Sowohl im Textmodus als auch im Graphikmodus des Installationsprogramms
wird eine Logdatei |install-tl.log| mit weiteren Informationen im
im Installationsverzeichnis erstellt. (Bei Fehlerberichten bitte diese
Datei mitschicken!)

\subsection{Windows und Unix rücken näher}

\tl\ 2008 unterstützt nur mehr Windows~2000 und neuere Versionen
(nicht mehr Windows~98), wodurch wir die Notwendigkeit der Spezialbehandlung
von Windows weitgehend reduzieren.

Auf den unterstützten Windows Systemen haben Benutzer ein \emph{echtes}
Heimverzeichnis, nämlich verb+%USERPROFILE%+, das normalerweise
\verb+Dokumente und Einstellungen\+\textit{username} ist.

Dies schlägt sich nun in der Tilde-Erweiterung von \kpse\ nieder:
\verb+~/texmf+ wird auf Windows zu \verb+%USERPROFILE%\texmf+
erweitert, und zu \verb+$HOME/texmf+ auf Unixsystemen.

Wie bisher unter Unix ist es nun auch unter Windows möglich zwischen
systemweiten Einstellungen und Benutzerspezifischen Einstellungen
zu unterscheiden. Weiters gibt es keinen Grund mehr für Windows
verschiedene \texttt{texmf} Bäume zu haben, oder einige Skripts
wie \texttt{fmtutil-sys} und \texttt{updmap-sys} auf Windows nicht
bereitzustellen. Schlussendlich gibt es nun auch eine einzige
\texttt{texmf.cnf} Datei für alle Plattformen.


%
%
%
\section{Der \tlmgr}

Der \tlmgr\ stellt eine Vielzahl an Optionen und Befehlen zur Verfügung, von
denen alle (zum derzeitigen Zeitpunkt implementierten) hier vorgestellt
werden, einige nur sehr kurz, einige detaillierter. Dabei muss man beachten
dass die Entwicklung permanent weitergeht und neue Fähigkeiten laufend
hinzugefügt werden.

\subsection{Die \tl\ Datenbank}

Zu allererst ist es notwendig zu verstehen wo alle Informationen über
installierte Pakete und Optionen gespeichert werden. Dies ist die
\tl\ Datenbank, welche normalerweise in \path{ROOT/tlpkg/texlive.tlpdb}
gefunden werden kann (wobei |ROOT| der Installationsfolder ist).
Diese Datenbank -- eine einfache, jedoch strukturierte Textdatei --
enthält die Liste der installierten Pakete, zu jedem Paket die Liste
der installierten Dateien, und sammelt zusätzlich alle
Konfigurationsoptionen wie die Installationsquelle oder die bei der
Installation angewählten Optionen.

Die meisten der Aktionen von tlmgr laden die lokale Datenbank, und viele
Aktionen laden zusätzlich die \emph{entfernte} Datenbank, also die
von der installiert wird: Wenn Sie zum Beispiel ein Paket installieren
wollen wird die Datenbank der Installationsquelle geladen und überprüft
ob das Paket dort vorhanden ist.

Wobei mit \emph{entfernte} Datenbank nicht unbedingt eine entfernter
Server gemeint ist. Wenn Sie von der \acro{DVD} installiert haben so
wird die Installationsquelle die \acro{DVD} sein, und tlmgr wird diese
Datenbank lande sobald es notwendig ist.

\subsection{Allgemeine Syntax von tlmgr}

Jeder Aufruf von tlmgr sieht wie folgt aus:
\begin{center}
  \Verb+tlmgr [opt]... action [opt]... [arg]...+
\end{center}
Die ersten Optionen vor der Aktion |action| bestimmen einige allgemeine
Einstellungen von tlmgr, während der zweite Satz von Optionen nach der
Aktion spezifisch für die Aktion sind.

Die derzeitige Version unterstützt -- im Gegensatz zu früheren Versionen --
die Vermischung all dieser Optionen. Damit ist es im Prinzip egal was
wo wann kommt. Dennoch werden die Optionen und Aktionen in dieser
Art präsentiert um die Darstellung zu erleichtern.

Der erste Satz kann die folgenden Optionen enthalten:
\begin{itemize}
\item |--location| \var{loc} gibt die Installationsquelle an von der
  Pakete installiert und erneuert werden. Diese Option überschreibt die
  voreingestellte Installationsquelle in der \tl\ Datenbank (\acro{TLPDB}).
\item |--gui| startet die graphische Oberfläche des tlmgr. Diese
  Oberfläche unterstützt nicht den vollen Funktionsumfang der Kommandozeile,
  sehr wohl aber die wichtigsten und häufigsten.
  Der Unterschied zwischen der |--gui| Option und der |gui| Aktion (siehe
  weiter unten) ist dass wenn Sie die Option |--gui| geben und eine Aktion,
  dann versucht tlmgr sofort den entsprechenden Bildschirm der graphischen
  Oberfläche zu laden.
\item |--gui-lang| \var{ll} selektiert die Sprache der graphischen
  Oberfläche. Normalerweise versucht tlmgr die korrekte Sprache aus
  den Umgebungseinstellungen abzuleiten (unter Windows wird die
  Registry befragt, unter Unix |LC_MESSAGES|). Sollte dies fehlen
  erlaubt diese Option eine Sprache auszuwählen.
\item |--machine-readable| Anstelle der normalen Ausgabe die für einen
  menschlichen Benutzer gedacht ist, schaltet diese Option zu einer
  leichter von Programmen parsebaren Ausgabe um. Details können in der
  manpage \citep{tlmgr-manpage} gefunden werden.
\item |--package-logfile| \var{file} tlmgr führt eine Logdatei für alle
  Aktionen die Pakete betreffen (Installation, Entfernen, Update, etc).
  Diese Logdatei ist normalerweise |TEXMFSYSVAR/web2c/tlmgr.log|, diese
  Option erlaubt eine andere Datei anzugeben.
\item |--pause| lässt tlmgr vor Terminierung auf eine Eingabe des Users
  warten. Dies kann auf Windows nützlich sein um das vorschnelle
  Verschwinden des Kommandofensters zu verhindern.
\end{itemize}

Weiters werden diverse Standardoptionen unterstützt: |--help| (oder
|-h|) gibt die manpage aus, |-q| unterdrückt rein informative
Ausgaben, |-v| (verbose) um den Grad der Gesprächigkeit von tlmgr, sprich
den Debuglevel, einzustellen. Mit |--version| gibt tlmgr die Version
des installierten \tl\ Systems als auch die Versionsnummer von tlmgr selbst
aus.

\subsection{Die Aktionen}


Die derzeitige Liste der Aktionen ist:
|help|, |version|, |gui|, |install|, |update|, |backup|, |restore|,
|remove|, |option|, |symlinks|, |paper|, |arch|, |search|, |show|, |list|,
|check|, |uninstall|, |generate|.

\paragraph{Die allgemeinen Aktionen}

\begin{itemize}
\item |search [|\var{option}|...] |\var{what} Ohne zusätzliche Optionen
  wird in der Liste der lokal installierten Pakete in den Paketnamen und
  -beschreibungen nach |what| gesucht. Wird die Option |--global| gegeben,
  so wird die entfernt Datenbank auch durchsucht (sprich auch alle nicht
  installierten Pakete). Wird die Option |--file| gegeben dann werden
  nicht die Paketnamen und -beschreibungen durchsucht, sondern die 
  installierten Dateinamen.
\item |show |\var{pkg}|...| zeigt detaillierte Informationen über die
  angegebenen Pakete an. Falls alle angegebenen Pakete lokal installiert
  sind wird die entfernte Datenbank nicht befragt.
\item \Verb+list [collections|schemes]+ Ohne jegliche Argumente werden alle
  Pakete die bei der Installationsquelle vorhanden sind aufgelistet, wobei
  bereits installierte ein Präfix von "i " erhalten.
  Mit einem Argument werden entweder nur die Paketgruppen oder die Schemata
  aufgelistet, je nach Argument.
\item \Verb+symlinks [add|remove]+ Fügt symbolische Verweise für die
  Programme, die man pages, und die info Dokumentationen hinzu oder
  entfernt sie in den in der Datenbank eingetragenen Ordnern (siehe weiter
  unten unter |option|).
\item |uninstall| Diese Aktion fragt zuerst noch einmal nach, dann wird
  die gesamte Installation entfernt. Wird die Option |--force| gegeben dann
  wird nicht einmal nachgefragt. 
\item \Verb+check [files|collections|all]+ Führt einen oder alle Tests
  der Installation auf Konsistenz durch. Mit |files| wird überprüft
  ob all in der Datenbank gelisteten Dateien auch im System vorhanden 
  sind. Die Option |--use-svn| benutzt den |svn| Befehl um die 
  vorhandenen Dateien festzustellen.
\item |gui| startet die graphische Oberfläche wie oben erklärt.
\item |version| ist das Gleiche wie  |--version|.
\item |help| ist das Gleiche wie |--help|.
\end{itemize}

\paragraph{Die Konfigurationsaktionen}
\begin{itemize}
\item |option [show]| Zeigt alle in der lokalen Datenbank gespeicherten
  Optionen an.
\item |option |\var{key} |[|\var{value}|]| 
  Ohne \var{value} wird der aktuelle Wert der Konfigurationsoption \var{key}
  angezeigt. Derzeit werden die folgenden |key|s werden derzeit akzeptiert:
  |location| -- voreingestellte Installationsquelle; 
  |formats| -- Formate werden bei Installation/Update neu erstellt;
  |docfiles| -- bei der Installation von Paketen werden auch die
    Dokumentationsdateien installiert. Änderung der Option |docfiles| betrifft
    nicht schon installierte Pakete, sondern nur neue Pakete und 
    Updates;
  |srcfiles| -- bei der Installation von Paketen werden auch die
    Quelldateien installiert;
  |backupdir| -- voreingestellter Ordner für Backups;
  |autobackup| -- Anzahl der Backups die behalten werden sollen (siehe
    weiter unten für Details);
  |sys_bin| -- Ordner in dem symbolische Verweise für Programme 
    durch |symlinks| angelegt werden;
  |sys_man| -- Ordner in dem symbolische Verweise für man pages
    durch |symlinks| angelegt werden;
  |sys_info| -- Ordner in dem symbolische Verweise für info Dokumentationen
    durch |symlinks| angelegt werden.
\item |paper |\var{paper} legt das voreingestellte Papierformat ein, entweder
  |a4| oder |letter|. Ohne \var{paper} werden die aktuellen Papierformate
  für alle unterstützten Programme angezeigt.
\item \var{program} \Verb+paper [help|+\var{paper}|]|
  Diese Variante erlaubt es verschiedene voreingestellte Papierformate
  für die unterstützten Programme einstellen. \var{program} kann 
  dabei eines aus |xdvi|, |dvips|, |pdftex|, |dvipdfm|,
  |dvipdfmx|, |context| sein. 
  Ohne zusätzlichem Argument wird das aktuelle Papierformat für \var{program}
  angezeigt. Mit |help| werden alle unterstützten Papierformate für 
  das jeweilige Programm angezeigt. Mit der Angabe eines Papierformates
  wird das Programm für dieses Format umkonfiguriert.
\item |generate |\var{what} Diese Aktion erstellt ein oder mehrere
  Konfigurationsdateien wie folgt beschrieben:
  
  Wird für \var{what} der Wert |language.dat| angegeben, dann wird 
  die Datei |language.dat| welche die Trennmuster die in \LaTeX-basierende
  Formate geladen werden erstellt.
  Mit |language.def| wird ebendiese Datei erstellt, die die Trennmuster
  die in |etex|-basierende Formate geladen werden festlegt.
  Wird nur |language| für \var{what} angegeben so werden beide Dateien
  erstellt.
  
  Wird |fmtutil| für \var{what} angegeben so wird die Datei |fmtutil.cnf|
  neu erstellt, die die Definitionen aller zu erstellenden Formate
  enthält.

  Wird |updmap| für \var{what} angegeben so wird die Datei |updmap.cfg|
  neu erstellt, die alle installierten Schriftarten-map Dateien enthält.

  Für |fmtutil.cnf| und die beiden |language| Dateien ist das neu
  Erstellen normal und sowohl das Installationsprogramm als auch tlmgr
  tun dies regelmäßig.

  Für |updmap.cfg| jedoch ist dies nicht so. Weder das Installationsprogramm
  noch tlmgr verwenden den |generate| Aufrufs, da dieser alle manuell
  aktivierten Schriftarten-map Dateien die mit |updmap-sys --enable|
  aktiviert worden sind, entfernen (z.B.\ für lokal installierte
  kommerzielle Fonts). Nur Eintragungen die in |--localcfg| (siehe weiter 
  unten) eingetragen sind würden erhalten werden.

  Wenn Sie jedoch nur Schriftarten aus \tl\ selbst verwenden, dann
  ist der Aufruf von |generate| ohne negativen Konsequenzen. Wir verwenden
  es um die Datei |updmap.cfg| in unserem Repository zu aktualisieren.

  Sollten die Dateien |language-local.dat|, |language-local.def|,
  |fmtutil-local.cnf|, oder |updmap-local.cfg| vorhanden sein unter
  \path{TEXMFLOCAL} in den entsprechenden Ordnern, dann wird deren
  Inhalt als letztes in die erstellten Dateien hineinkopiert.
\end{itemize}


\paragraph{Die Paketaktionen}
\begin{itemize}
\item |install| \var{pkg}\ldots\ installiert die angegebenen Pakete.
  Normalerweise werden alle Pakete von denen ein angegebenes Paket
  abhängt auch mitinstalliert. Dies kann mit der Option |--no-depends|
  unterdrückt werden. Weiters gibt es noch |--no-depends-at-all|
  was tlmgr zusätzlich die eng verknüpften Pakete mit architekturspezifischen
  Paketen vergessen lässt; zum Beispiel |bin-bibtex| und
  |bin-bibtex.i386-linux|. Das sollte niemals verwendet werden außer Sie
  wissen sehr genau was Sie tun.
  |--dry-run| simuliert die Installation nur.
\item |update| \var{pkg}\ldots\  bringt die angegebenen Pakete auf den
  neuesten Stand. Zusätzlich, sollte ein der \var{pkg} eine Paketgruppe
  sein, und an der Installationsquelle gibt es die gleiche Paketgruppe
  mit Paketen die nicht installiert sind lokal, so werden diese auch
  installiert. Optionen sind:
  \begin{description}
  \item |--list| Listet nur die Pakete auf die erneuert oder 
    neu installiert werden würden ohne den Update wirklich durchzuführen.
    Es werden zusätzlich die Revisionsnummern der lokalen Pakete und
    der Pakete der Installationsquelle angegeben.
  \item |--all| Bringt alle Pakete die Erneuerungen haben auf den neuesten
    Stand.
  \item |--dry-run| Die Installation wird nur simuliert.
  \item |--backup| und |--backupdir |\var{directory}
    Diese Optionen steuern die Erstellung von Sicherheitskopien der
    Pakete bevor das Upgrade installiert wird.
    Wird weder |--backup| noch |--backupdir| angegeben wird keine
    Sicherheitskopie erstellt. Wird |--backupdir| angegeben und 
    zeigt auf einen beschreibbaren Ordner, wird eine Sicherungskopie
    erstellt. Wird nur |--backup| angegeben wird versucht der in der
    Datenbank vorher mit |option backupdir| festgelegte Ordner für
    Sicherungskopien zu verwenden.
    Werden beide Optionen angegeben dann wird die Sicherungskopie in
    dem angegebenen Ordner erstellt.

    tlmgr erstellt vor jedem Upgrade eine temporäre Sicherungskopie um
    im Fehlerfall automatisch zur letzten installierten Version
    zurückgehen zu können. Diese Optionen hier erlauben die Erstellung
    von persistenten Sicherungskopien.

  \item |--no-depends| Normale Abhängigkeiten werden nicht aufgelöst.
  \item |--no-depends-at-all| Bitte die |install| Aktion weiter oben
    dazu konsultieren.
  \end{description}
\item |remove| \var{pkg}\ldots\ 
  entfernt die angegebenen Pakete. Wird eine Paketgruppe entfernt
  werden auch alle darin gelisteten Pakete entfernt, jedoch keine
  anderen Paketgruppen die darin referenziert sind. 
  Wird ein normales Pakete (keine Paketgruppe) entfernt dann werden
  darin referenzierte Pakete nie entfernt.

  Options:
  \begin{description}
  \item |--no-depends| referenziert Pakete werden nicht entfernt.
  \item |--no-depends-at-all| Bitte die |install| Aktion weiter oben
    dazu konsultieren.
  \item |--force|
    tlmgr überprüft ob ein zu entfernendes Paket oder Paketgruppe
    in irgendeinem anderen Paket oder Paketgruppe referenziert ist. Ist
    dies so wird das Paket oder die Paketgruppe nicht entfernt
    außer man gibt diese Option an.
  \item |--dry-run|
    Das Entfernen der Pakete wird nur simuliert.
  \end{description}
\item |backup| \var{pkg}\ldots\
  Wird die Option |--clean| nicht angegeben, wird von den angegebenen
  Paketen, oder von allen wenn |--all| angegeben ist, eine 
  Sicherungskopie gemacht. Diese Kopien werden in den Ordner der
  entweder durch die Option |--backupdir| angegeben ist, oder durch
  den in der Datenbank festgelegten Ordner bestimmt. Sollten beide
  nicht angegeben sein oder nicht beschreibbar, werden keine 
  Sicherungskopien erstellt.

  Wird |--clean| angegeben dann werden alte Sicherungskopien gelöscht.
  Der Wert der zu erhaltenden Sicherungskopien wird entweder durch
  einen optionalen Parameter zu |--clean=N| angegeben, oder durch den
  in der Datenbank gespeicherte Option |autobackup|.

\item |restore --backupdir |\var{dir} |[|\var{pkg} |[|\var{rev}|]]|\\
  Wird \var{pkg} nicht angegeben (und daher auch kein \var{rev}), dann
  werden alle vorhanden Sicherungskopien für alle Pakete aufgelistet.
 
  Wird \var{pkg} angegeben aber kein \var{rev} dann werden alle 
  vorhandenen Sicherungskopien nach Revisionen für das Paket
  aufgelistet.

  Werden sowohl \var{pkg} als auch \var{rev} angegeben wird die 
  Sicherungskopie des Pakets in der angegebenen Revision installiert.

  Die Option |--backupdir dir| gibt den Ordner an wo nach 
  Sicherungskopien gesucht wird.
  Die Option |--dry-run| wird ebenso unterstützt, wie üblich.
  
\item |arch |\var{operation} \var{arg}\ldots
  Ist \var{operation} gleich |list| so werden alle an der 
  Installationsquelle vorhandenen Architekturen/Plattformen ausgegeben.
  
  Ist \var{operation} gleich |add| so werden die Programme für die 
  angegebenen Architekturen installiert.
  
  Die Option |--dry-run| wird ebenso unterstützt, wie üblich.
\end{itemize}


\subsection{Typische Anwendungsbeispiele des tlmgr}

Im Folgenden werden wir einige typische Anwendungsszenaria des \tlmgr\
vorstellen.

\paragraph{Installation einer neuen Paketgruppe}

Angenommen Sie haben das Schema |scheme-medium| installiert und
realisieren dass die Trennmuster für einige Sprachen die Sie benutzen
fehlen, z.B.\ Norwegisch. Zuerst verwenden Sie tlmgr um nach diesem
Schlüsselwort zu suchen:
\begin{lstlisting}
$ tlmgr search --global norwegian
tlmgr: installation location ...
collection-langnorwegian - Norwegian
hyphen-norwegian - 
\end{lstlisting}
und dann installieren Sie die Paketgruppe:
\begin{lstlisting}
$ tlmgr install collection-langnorwegian
tlmgr: installation location ...
install: collection-langnorwegian
install: hyphen-norwegian
tlmgr: package log updated at .../tlmgr.log
regenerating language.dat
regenerating language.def
\end{lstlisting}
gefolgt von der Ausgabe der Neuerstellung aller Formate die entweder von
|language.dat| oder |language.def| abhängen.
(Falls die |formats| Option auf 0 geändert wurde in der lokalen Datenbank
wird die Neuerstellung übersprungen. Die Voreinstellung ist dass Format
jeweils erneuert werden.)

\paragraph{Suche nach einem Paket}

Sie wollen eine Einladung mit Absätzen in besonderen Formen setzten, aber
Sie wissen nicht welches Paket man da verwenden könnte. Ein Aufruf von
tlmgr hilft:
\begin{lstlisting}
$ tlmgr search paragraph
\end{lstlisting}
zeigt aber keine Ausgabe. Vielleicht ist nichts entsprechendes installiert?
Also versuchen Sie eine Globalsuche:
\lstset{breaklines}
\begin{lstlisting}
$ tlmgr search -global paragraph
tlmgr: installation location ...
 bigfoot - Footnotes for critical editions
 edmargin - Multiple series of endnotes for critical editions
 footmisc - A range of footnote options
 genmpage - Generalization of LaTeX's minipages
 hanging - Hanging paragraphs
 ibycus-babel - Use the Ibycus 4 Greek font with Babel
 insbox - A TeX macro for inserting pictures/boxes into paragraphs
 layouts - Display various elements of a document's layout
 lettrine - Typeset dropped capitals
 lineno - Line numbers on paragraphs
 lipsum - Easy access to the Lorem Ipsum dummy text
 moresize - Allows font sizes up to 35.83pt
 ncctools - A collection of general packages for LaTeX
 paralist - Enumerate and itemize within paragraphs
 picinpar - Insert pictures into paragraphs
 plari - Typesetting stageplay scripts
 seqsplit - Split long sequences of characters in a neutral way
 shapepar - A macro to typeset paragraphs in specific shapes
 vwcol - Variable-width multiple text columns
\end{lstlisting}
und hier ist es, |shapepar| scheint genau zu sein was Sie brauchen. Also
sehen Sie sich genauer an was diese Paket ist:
\begin{lstlisting}
$ tlmgr show shapepar
tlmgr: installation location ...
Package:   shapepar
Category:  Package
ShortDesc: A macro to typeset paragraphs in specific shapes.
LongDesc:  \shapepar is a macro to typeset paragraphs in a specific shape.
...
Installed: No
Collection:collection-latexextra
\end{lstlisting}
Nun, das schaut gut aus. Sie können nun entweder die ganze Paketgruppe
installieren:
\begin{lstlisting}
$ tlmgr install collection-latexextra
\end{lstlisting}
was aber nicht nur |shapepar| sondern eine Unmenge anderer Pakete mitbringt,
oder sie installieren nur dieses eine Paket und hoffen dass keine
anderen Pakete notwendig sind:
\begin{lstlisting}
$ tlmgr install shapepar
tlmgr: installation location ...
install: shapepar
tlmgr: package log updated at .../tlmgr.log
running mktexlsr
...
\end{lstlisting}

Diese Beispiele demonstrieren wie man nicht installierte Pakete findet
und installiert. Die Voreinstellung des Installationsprogrammes ist
jedoch das gesamte \tl\ zu installieren, d.h.\ alles was verfügbar ist
wird auch installiert.

\paragraph{Update der Installation}

Nach der ersten Installation wollen Sie nun die neuesten Versionen der
gesamten Pakete bekommen, doch sicherheitshalber vorher überprüfen
was denn das heißt:
\begin{lstlisting}
$ tlmgr update --list
tlmgr: installation location /mnt/cdrom
Cannot load TeX Live database from /mnt/cdrom at .../tl/2008/bin/i386-linux/tlmgr line 1505, <TMP> line 1982.
\end{lstlisting}
Hmm, das scheint ein Fehler sich eingeschlichen zu haben, tlmgr versucht
noch immer von der \acro{DVD} zu installieren, die Sie schon lange
an einen Freund weitergegeben haben. Da sollte Sie nun zur
Netzwerkinstallationsquelle übergehen, und das gleich für alle weiteren
Aktionen als Voreinstellung speichern. Nur haben Sie schon wieder die
Adresse vergessen! Glücklicherweise kann sich der \tlmgr\ daran erinnern
und Sie brauchen ihm nur sagen dass er |ctan| verwenden soll:
\begin{lstlisting}
$ tlmgr option location ctan
tlmgr: setting default installation location to http://mirror.ctan.org/systems/texlive/tlnet/2008
\end{lstlisting}
Ok, nun schauen wir mal was es so Neues gibt:
\begin{lstlisting}
$ tlmgr update --list
tlmgr: installation location /src/TeX/texlive-svn/Master
bin-texlive: local: 12181, source: 12269
cc-pl: local: 7340, source: 12724
latexmk: local: 12697, source: 12749
mfpic4ode: local: 7340, source: 12734
pkfix-helper: local: 12532, source: 12713
scheme-minimal: local: 10129, source: 12703
texlive.infra: local: 12186, source: 12729
\end{lstlisting}
Da sind ja einige Dinge die ein Update brauchen, tun wir das einmal:
\begin{lstlisting}
$ tlmgr update --all
tlmgr: installation location ...
Updates for tlmgr itself are present.
===========================================
Please update the packages bin-texlive and texlive.infra first, via either
  tlmgr update bin-texlive texlive.infra
or by getting the latest updater for Unix-ish systems:
  http://mirror.ctan.org/systems/texlive/tlnet/2008/update-tlmgr-latest.sh
and/or Windows systems:
  http://mirror.ctan.org/systems/texlive/tlnet/2008/update-tlmgr-latest.exe
Then continue with other updates.
===========================================
.../tl/2008/bin/x86_64-linux/tlmgr: Exiting, please read above warning.
\end{lstlisting}
Ja, dies sollte gemacht werden. \tlmgr\ verweigert die Operation wenn
Updates für tlmgr oder die Infrastrukturpakete zur Verfügung stehen.
Dies garantiert dass Fehler im \tlmgr\ nicht zu lange unbehoben bleiben.
Also tun Sie das:
\begin{lstlisting}
$ tlmgr update bin-texlive texlive.infra
tlmgr: installation location ...
[1/2] update: bin-texlive (12181 -> 12269) ... running post remove action for bin-texlive
running post install action for bin-texlive
done
[2/2] update: texlive.infra (12186 -> 12729) ... running post install action for texlive.infra
done
tlmgr: package log updated at .../tlmgr.log
running mktexlsr
...
\end{lstlisting}
Gut, scheint ja geklappt zu haben. Jetzt probieren wir das mit den 
Updates noch einmal:
\begin{lstlisting}
$ tlmgr update --list
tlmgr: installation location ...
cc-pl: local: 7340, source: 12724
latexmk: local: 12697, source: 12749
mfpic4ode: local: 7340, source: 12734
pkfix-helper: local: 12532, source: 12713
scheme-minimal: local: 10129, source: 12703
\end{lstlisting}
und das tatsächliche Upgrade:
\begin{lstlisting}
$ tlmgr update --all
tlmgr: installation location ...
[1/5] update: cc-pl (7340 -> 12724) ... done
[2/5] update: latexmk (12697 -> 12749) ... done
[3/5] update: mfpic4ode (7340 -> 12734) ... done
[4/5] update: pkfix-helper (12532 -> 12713) ... done
[5/5] update: scheme-minimal (10129 -> 12703) ... done
tlmgr: package log updated at .../tlmgr.log
running mktexlsr ...
running updmap-sys  ...
\end{lstlisting}

\paragraph{Einstellen des Papierformats}

Sie übersiedeln nach Japan und hätten gerne \emph{letter} als
voreingestelltes Papierformat, nichts leichter als das:
\begin{lstlisting}
$ tlmgr paper letter
\end{lstlisting}
und die wichtigsten Programme werden ab nun \emph{letter} Papierformat
verwenden.

\section{Die graphische Oberfläche von tlmgr}

Um die meisten Windows-Benutzer und einige Unix-Benutzer glücklich(er)
zu machen gibt es für tlmgr auch eine graphische Oberfläche, die wie
die des Installationsprogrammes in Perl/Tk geschrieben ist.
Bisher ist jedoch nicht die volle Funktionalität der Kommandozeilenversion
von tlmgr in der graphischen Oberfläche abgebildet.

Die Oberfläche hat mehrere Fenster mit verschiedenen Funktionalitäten:
Installation, Update, Entfernen von Paketen, Entfernen von \tl\ als
Ganzes, Unterstützung verschiedener Architekturen, und Konfiguration.

Die graphische Oberfläche wird mit |tlmgr gui| oder |tlmgr --gui action|
gestartet. Im letzeren Fall versucht tlmgr gleich das Fenster das zur
angegebenen Aktion passt anzuzeigen.

\subsection{Das Installationsfenster}

Das erste Fenster das man normalerweise sieht ist das Installationsfenster
(fig.~\ref{fig:gui:install}).

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-install-de.png}}
  \caption{\tlmgr\ \acro{GUI} Installationsfenster}
  \label{fig:gui:install}
\end{figure}

Am oberen Ende sieht man die aktuelle Installationsquelle, die entweder
über die Kommandozeilenoption |--location| angegeben wurde oder aus 
der Datenbank gelesen wird. Die entfernte Datenbank wird \emph{nicht}
automatisch geladen, Sie müssen die \button{Load} Knopf drücken, oder
den \button{Change} Knopf um vorher eine andere Installationsquelle
anzugeben. 

Darunter sieht man die Liste der an der Installationsquelle verfügbaren
Pakete auf der linken Seite, zuerst die Paketgruppen und Schemata, danach
alle normalen Pakete in alphabetischer Ordnung. Durch Eingabe von Zeichen
in das Eingabefeld neben \button{Suche} hüpft die Selektion sofort zum ersten
passenden Paket. Der Knopf \button{Nächster} erlaubt es zum nächsten
passenden Eintrag zu springen. 

Nachdem ein Paket auf der linken Seite selektiert wurde erscheint die
Kurz- und Langbeschreibung des Paketes im rechten Teil des Fensters.

Darunter gibt es einen Knopf um die selektierten Pakete zu installieren.
Weiters zwei Auswahlschalter die es erlaubt die Installations zu
erzwingen (falls Updates für tlmgr selbst vorhanden sind wird keinerlei
Aktion durchgeführt), und einen Auswahlschalter der es erlaubt Pakete
ohne Abhängigkeiten zu installieren.

\subsection{Das Aktualisierungsfenster}

Der Aktualisierungsfenster ähnelt dem Installationsfenster, mit dem
Unterschied dass nur die Pakete angezeigt werden für die Aktualisierungen
zur Verfügung stehen. Der Aktionsbereich im rechten unteren Eck erlaubt
entweder alle Pakete zu aktualisieren, oder nur die selektierten.
Wieder kann die Aktualisierung erzwungen werden falls neuere Versionen
von tlmgr selbst vorhanden sind.

In Abb.~\ref{fig:gui:update} ist der Aktualisierungsfenster sehen in dem für
einige Pakete Aktualisierungen verfügbar sind.

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-update-de.png}}
  \caption{\tlmgr\ \acro{GUI} Aktualisierungsfenster}
  \label{fig:gui:update}
\end{figure}

\subsection{Das Entfernfenster}

Das Entfernfenster in Abb.~\ref{fig:gui:remove}
ist ebenfalls dem Installationsfenster ähnlich, wobei
die Liste aller installierten Pakete angezeigt werden. Das Aktionsfeld
enthält diesmal einen Knopf um alle selektierten Pakete zu entfernen, und
zwei Auswahlschalter um die Entfernung zu erzwingen (entsprechend
der |--force| Kommandozeilenoption) und Abhängigkeiten zu ignorieren
(entsprechend der |--no-depends| Kommandozeilenoption), 

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-remove-de.png}}
  \caption{\tlmgr\ \acro{GUI} Entfernfenster}
  \label{fig:gui:remove}
\end{figure}

\subsection{Das Deinstallationsfenster}

Dieses Fenster enthält nur einen Knopf der es erlaubt \tl\ vollständig
zu entfernen. Auf Windowssystemen ist dieser Knopf durch einen Text
ersetzt der darauf hinweist dass \cmd{Programme} aus der Systemsteuerung
verwendet werden soll.

\subsection{Das Architekturfenster}

Unter Unix erlaubt \tl\ die Installation von Programmen für verschiedene
Plattformen, d.h.\ für Architektur--Betriebssystem Kombinationen. Dies
erlaubt die Verteilung einer \tl\ Installation in einem inhomogenen
lokalen Netzwerk, z.B.\ via \acro{NFS}, siehe Abb.~\ref{fig:gui:arch}.

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-arch-de.png}}
  \caption{\tlmgr\ \acro{GUI} Architekturfenster}
  \label{fig:gui:arch}
\end{figure}

Dieses Fenster listet die verfügbaren Architekturen an der aktuellen
Installationsquelle auf, und erlaubt es neue Architekturen durch
drücken des Knopfes \button{Änderungen anwenden} zu installieren.

Während das hinzufügen von Architekturen unterstützt wird, ist das
entfernen von derzeit installierten Architekturen (noch) 
nicht unterstützt. Weiters ist das gesamte Fenster unter Windows
nicht vorhanden, da Windows keine symbolischen Verweise (symlinks)
unterstützt.

\subsection{Das Konfigurationsfenster}

Dieses Fenster erlaubt es dem Benutzer sehr komfortabel diverse 
in der Datenbank gespeicherten Optionen zu überprüfen und zu ändern,
siehe Abb.~\ref{fig:gui:option}.

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-options-de.png}}
  \caption{\tlmgr\ \acro{GUI} Konfigurationsfenster}
  \label{fig:gui:option}
\end{figure}

Im oberen Teil werden die in der Datenbank gespeicherten Optionen angezeigt,
und können jeweils mit dem \button{Ändern} geändert werden.

Im unteren linken Teil wird das voreingestellte Papierformat für alle
Programme angezeigt, und kann mit dem Knöpfen \button{A4} und
\button{letter} für alle Programme auf einmal geändert werden, oder
mit den Knöpfen \button{Ändern} für jedes Programm einzeln.

Im unteren rechten Teil sind einige Knöpfe die hin und wieder nützlich 
sind, nämlich um die Dateilisten (ls-R) neu zu erstellen, alle Formate
neu zu erstellen, und die Liste der Outline Schriftarten (|updmap-sys|).

\subsection{Das Logfenster}

Neben dem sich ändernden Hauptfenster gibt es ein permanentes Fenster
das die Ausgabe, die tlmgr auf die Konsole schreibt, auch in diesem
Fenster anzeigt, siehe Abb.~\ref{fig:gui:log}.

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{tlmgrgui-log-de.png}}
  \caption{\tlmgr\ \acro{GUI} Logfenster}
  \label{fig:gui:log}
\end{figure}

\section{Was gibt es noch (neues)?}

Neben der vollkommen überarbeiteten Infrastruktur und den für Benutzer
sichtbaren Änderungen des neuen Installationsprogrammes und 
des \tlmgr wurde wie jedes Jahr alle Pakete auf den neuesten Stand 
gebracht (und auch laufend aktualisiert). Derzeit stehen circa~1400
normale Pakete wie \LaTeX\ Styles oder Fontpakete zur Verfügung, und 
zusätzlich knapp~300 andere Pakete, größtenteils Dokumentation und 
einige wenige \tl\ interne Pakete.

Das wichtigeste neue Programm ist sicher die neue \TeX-Engine Lua\TeX\
(\url{http://luatex.org}). Neben einem vollkommen neuen Grad an
Flexibilität stellt Lua\TeX\ die Scriptsprache Lua bereit, die z.\,B.\ in
|texdoc| verwendet wird.

\subsection{Windows-spezifische Eigenheiten}

Um als halbwegs komplett unter Windows zu gelten bringt jede \tl\ Installation
noch einige zusätzliche Pakete für Windows mit:
\begin{description}
\item[Perl und Ghostscript.] Da sowohl Perl als auch Ghostscript in vielen
  Programmen verwendet wird bringt \tl\ `versteckte' Kopien dieser
  Programme mit. Die \tl-Programme wissen wo sie Perl und Ghostscript
  finden können, aber diese versteckten Versionen verraten ihre Anwesenheit
  sonst nicht durch Umgebungsvariablen oder Registrierungseinträge.
  Sie sind auch kein Ersatz für eine vollständige Distribution dieser
  Programme und liefern nur die in \tl\ verwendete Funktionalität.
\item[Programme für die Kommandozeile.] 
  \tl\ installiert nun auch Portierungen von üblichen Unix-Programmen
  die zusammen mit den anderen \tl-Programmen installiert werden. Unter
  den installierten Programmen sind \cmd{gzip}, \cmd{chktex},
  \cmd{jpeg2ps}, \cmd{unzip}, \cmd{wget} und die Kommandozeilenprogramme
  der \cmd{xpdf} Suite. (Der \cmd{xpdf} Betrachter selber wird jedoch
  nicht auf Windows installiert, aber der Sumatra \acro{PDF} Betrachter
  basiert auf \cmd{xpdf}:
  \url{http://blog.kowalczyk.info/software/sumatrapdf}.)
\item[\texttt{fc-cache}] ist ein weiteres Kommandozeilenprogramm
  dass \XeTeX\ erlaubt die installierten Schriftarten effizienter
  zu handhaben.
\item[PS\_View.] Als Neuerung dieses Jahr wird PS\_View installiert,
  ein PostScript Betrachter der freie Software ist, siehe 
  Abb.~\ref{fig:psview}. Es unterstützt auch die Anzeige von \acro{PDF}
  Dateien und ist extrem schnell und hat eine Vielzahl an Funktionen.
  Bitte kontaktieren Sie uns für Vorschläge und Fehlermeldungen, dieses
  Programm ist in aktiver Entwicklung.
\item[dviout] Dieser \acro{DVI} Betrachter wurde auf der \acro{DVD} nur
  im |support| Ordner ausgeliefert, aber er wird durch Aktualisierungen
  über das Netzwerk installiert, siehe Abb.~\ref{fig:dviout}.
\end{description}

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{psview.png}}
  \caption{PS\_View erlaubt hohe Vergrößerungen und unterstützt \acro{PDF}}
  \label{fig:psview}
\end{figure}

\begin{figure}[ht!]
  \centering
  \resizebox{0.8\columnwidth}{!}{\includegraphics{dviout.png}}
  \caption{DVIout auf Windows}
  \label{fig:dviout}
\end{figure}

\section{Schlussbemerkungen und andere Informationsquellen}

Der \tlmgr\ unterliegt schneller Entwicklung, und das graphische
Frontend noch viel mehr. Wir versuchen immer mehr Funktionalität in
tlmgr einzubauen und auch in der graphischen Oberfläche abzubilden.
Bitte melden Sie jegliche Abnormalitäten an uns unter 
\url{tex-live@tug.org}.

Wie mit jedem Projekt das auf freiwillige Mitarbeit beruht leiden wir
an einem nur sehr kleinen Pool an Programmieren für die zentrale
Infrastruktur und den \tlmgr. Praktisch die gesamte Infrastruktur,
der gesamte tlmgr und das graphische Frontend wurde vom Autor mit nur 
geringen Beiträgen anderer Autoren programmiert. Jeder der Perl 
beherrscht ist herzliche eingeladen uns zu unterstützen, es gibt
lange Listen von zu erledigenden Dingen für den \tlmgr, 
ganz zu schweigen von \tl\ als Ganzes.

Wenn Sie mehr Informationen zu \tl\ suchen ist die erste Adresse
\url{http://tug.org/texlive/} und die entsprechende Dokumentationsseite
\url{http://tug.org/texlive/doc.html}.

Die Liste der Personen denen Dank gebührt ist viel zu lange um hier
inkludiert zu werden, sie ist in der online \tl\ Dokumentation, Kapitel~9
(Danksagungen) zu finden. Natürlich darf ein Name hier nicht fehlen und
das ist Karl Berry, der mit seinem unglaublichen Enthusiasmus und seiner
permanenten Unterstützung (und seiner zur gegebenen Zeit kritischen Stimme)
die Ausgabe von \tl~2008 überhaupt ermöglicht hat.

\bibliography{tlmgr-article}

%
% END OF ARTICLE
%