diff options
Diffstat (limited to 'Master/tlpkg/doc/guit08/tlmgr-article.tex')
-rw-r--r-- | Master/tlpkg/doc/guit08/tlmgr-article.tex | 921 |
1 files changed, 921 insertions, 0 deletions
diff --git a/Master/tlpkg/doc/guit08/tlmgr-article.tex b/Master/tlpkg/doc/guit08/tlmgr-article.tex new file mode 100644 index 00000000000..8c2ccaaa4bd --- /dev/null +++ b/Master/tlpkg/doc/guit08/tlmgr-article.tex @@ -0,0 +1,921 @@ +% +% Norbert Preining +% Article presented on the 5th GuITmeeting, Pisa 18 October 2008 +% +% Copyright 2008 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. +% +\documentclass{arstexnica} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern} +\usepackage[english]{babel} +\usepackage{graphicx} +\usepackage{hyperref} +\usepackage{fancyvrb} +\usepackage{url} +\usepackage{natbib} +\usepackage{marvosym} +\usepackage{listings} +\lstset{frame=lines,basicstyle=\small\ttfamily,prebreak={\Righttorque}, + postbreak={\Lefttorque},columns=flexible}%,breaklines} +\newcommand{\tl}{\TeX~Live} +\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}} + +\hyphenation{infra-struc-ture} + +%\catcode`>=\active +%\def>#1<{\texttt{#1}} +\DefineShortVerb{\|} +\begin{document} +\begin{article} +%\selectlanguage{italian}% + +\title{\tl~2008 and the \TeX\ Live Manager% + \thanks{Originally presented at the \GuIT\ Conference 2008 in Pisa, and + published in Ars\TeX nica, issue~6}} + +\author{Norbert Preining} +\address{Vienna University of Technology\\ + %Wiedner Hauptstr.\ 10\\ + %1040 Wien, Austria +} +\netaddress{preining@logic.at} + +\maketitle + + +\begin{abstract} +\tl~2008 has been released recently, and the \acro{DVD}s are ready to +go gold. This is the first release of \tl\ shipping the \tlmgr, tlmgr +for short. + +Besides taking over some of the tasks from texconfig (which has never been +available for Windows) it finally brings many new features +to the \tl\ world, most importantly the option for dynamic updates. + +This article will present the new \tl\ Installer, the \tlmgr, and +at the end lists other changes in \tl~2008. +\end{abstract} + +\tableofcontents + +\section*{Important note} + +This article describes the status of the \tlmgr\ as it will be shipped +around October~2008, and not the one on \acro{DVD}. The +version on the \acro{DVD} works fine for local configuration +tasks (which is why we felt it could be shipped), but is not +sufficiently robust for reliable updates over the Internet. Users' +first update will be to get the new tlmgr. + +\section{Introduction} +\label{sec:intro} + +After more than one year of development work \tl~2008 has been +released with a complete new infrastructure \citep{at:2007-4-069-preining}. +At first these infrastructure changes were only relevant for the +developers themselves, since it made life (a bit) easier and the +system more consistent due to the elimination of duplicated +information. + +As a first user-visible change came the unification of the installer, +so that all supported platforms now share the same +installer. Furthermore, this installer has gotten a \acro{GUI} which +also is uniform across all platforms. On Unix systems the only +prerequsites are a Perl installation, and for the \acro{GUI} the +installation of Perl/Tk. On Windows we ship a minimal Perl with +the necessary modules. + +The first part of this article will give an overview of the new +installer. + +The second user-visible change came from the addition of the \tlmgr, +or tlmgr for short, to the list of programs. It manages an existing \tl\ +installation, both packages and options. Besides performing many of +the same actions as |texconfig| it has the ability to install +additional packages, update and remove existing ones, make backups, +search within and list all packages. + +\section{The new installer} +\label{sec:installer} + +The creation of a new \tl\ installer was necessitated by the new +package infrastructure \citep{at:2007-4-069-preining}. From a user's +point of view the new installer has only one visual change, but there +other significant changes. In particular: +\begin{itemize} +\item It is possible to install \tl\ from the Internet. +\item There is just one installer, which can run either in text + mode, emulating the former install-tl.sh shell script, + or in \acro{GUI} mode (more or less emulating the \tl\ 2007 tlpmgui). +\item The Windows installation is much closer to using the same + implementation as Unix. +\end{itemize} + +\subsection{Install \tl\ from the Internet} + +If you got (by the time you read this article) a \tl\ \acro{DVD} you +can just start the installer as usual. On Windows this will be by +default the \acro{GUI} installer (see below), on Unix the text mode +installer. + +We also ship an installation package \citep{inst:package} containing +all the necessary files for an installation over the network. By +default, normal installation will use a \ctan\ mirror, +selected using the |http://mirror.ctan.org| service. (See +|http://tug.org/ctan.html#sites|.) + +Two installers for network downloads are provided. +|install-tl-unx.tar.gz| supports Unix only. |install-tl.zip| +additionally contains a small subset of Perl for Windows which is +required to bootstrap the system. The latter works on all platforms +supported by \tl. The sole reason for providing a separate package +for Unix is its significantly smaller size. + +In any case you can override the source from which you want to install +with the command line option |-location|. + +\subsection{The text mode installer} + +If you have used \tl\ in recent years you will see no big changes in +the text mode installer (see fig.~\ref{fig:text_main_menu}); we tried +to keep it as close as possible to the one used in former +releases. One new option is at the bottom of the menu, namely +\emph{set up for running from DVD}. This is what we call \emph{live} +installation: +it sets up a minimal writable environment on your computer, while all the input +files and binaries remain on the \acro{DVD}. + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{install08text-crop}} + \caption{Main menu of the text mode installer} + \label{fig:text_main_menu} +\end{figure} + +\subsection{The GUI Installer} + +The \acro{GUI} installer has nearly the same functionality as the text +version; the option to set up for live installation is the only missing +piece. It is written in Perl/Tk and thus should run on all platforms (on +Unix Perl/Tk has to be installed). + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{gui-installer.png}} + \caption{Main window of the \acro{GUI} installer} + \label{fig:gui_main_menu} +\end{figure} + +The main window can be seen in fig.~\ref{fig:gui_main_menu}. It should +remind you very much of the text mode installer. As with the text mode +installer it allows you to change which binary systems should be +installed (fig.~\ref{fig:gui_systems}), select the scheme to be +installed (fig.~\ref{fig:gui_scheme}), where a \emph{scheme} is a +pre-defined set of +collections to be installed, and further specify in more detail which +collections (a collection is a set of packages) and which language +packages to +install (fig.~\ref{fig:gui_coll} and~\ref{fig:gui_lang}). You +can select the installation directories for \tl\ and toggle some +options, all in line with the installer of recent years and the text +mode installer. + +\begin{figure}[ht!] + \centering + \resizebox{0.5\columnwidth}{!}{\includegraphics{gui-systems.png}} + \caption{Binary system select window} + \label{fig:gui_systems} +\end{figure} + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{gui-scheme.png}} + \caption{Scheme select window} + \label{fig:gui_scheme} +\end{figure} + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{gui-collections.png}} + \caption{Collections select window} + \label{fig:gui_coll} +\end{figure} + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{gui-lang.png}} + \caption{Language packs select window} + \label{fig:gui_lang} +\end{figure} + +During installation the main window's status line will indicate what +is going on currently, and at the same time the program will print out +to the terminal the same output as the normal installer. + +For both the text mode installer and the \acro{GUI} mode installer, a +log file with more details is +created in the installation directory as |install-tl.log|. (If you +report installation problems, please send us this log file.) + +\subsection{Bringing Windows in line with Unix} + +\tl\ 2008 supports Windows 2000 and later. By dropping older Windows +versions, there is much less need to treat Windows specially. + +Under Windows 2000 and later, users have a real home directory, +viz. \verb+%USERPROFILE%+, usually +\verb+C:\Documents and Settings\+\textit{username}. + +This is now reflected in tilde expansion by \kpse: +\verb+~/texmf+ is expanded to \verb+%USERPROFILE%\texmf+ +under Windows and to \verb+$HOME/texmf+ under Unix. + +It is also possible to differentiate between system settings and +user settings. Happily, there is no longer any need to have a different +set of \texttt{texmf} trees on Windows, or to leave out scripts such as +\texttt{fmtutil-sys} and \texttt{updmap-sys}. We also +have a single \texttt{texmf.cnf} used on all platforms. + + +% +% +% +\section{The \tlmgr} + +\tlmgr\ provides a wealth of options and commands; we will explain them +all here, some tersely, some in more detail. Of course we expect to add +more features in the future. + +\subsection{The \tl\ Database} + +First of all, it is important to understand where all the information about +installed packages and other options are saved. This is the \tl\ +database, which normally can be found in \path{ROOT/tlpkg/texlive.tlpdb} +(where |ROOT| is the destination folder you have choosen at +installation time). It contains the list of all packages, all the +files installed, and in addition to that collects configuration +information like the default installation source, and the options you +have set at installation time (e.g., whether you want A4 or letter-size +paper by default). + +Most of tlmgr's actions will load the local database, and many +actions will also load a remote database: If you want to install a +package, the \tlmgr\ will load the database of the specified installation server +and checks whether this package exists. + +Although we say \emph{remote}, it is not necessarily a remote +network location. If you install from \acro{DVD} the default +installation source will be the \acro{DVD}, and tlmgr will +load the database located on the \acro{DVD} when needed. + +\subsection{General syntax of tlmgr} + +The general syntax of tlmgr is +\begin{center} + \Verb+tlmgr [opt]... action [opt]... [arg]...+ +\end{center} +The first set of options before the main |action| configure the general +operation of tlmgr, while the second set of options are specific to +the chosen |action|. We do not support mixing and reshuffling of all +these options, partly for the sake of clarity, and also for programming +reasons. + +The first set of options can contain +\begin{itemize} +\item |--location| \var{loc} specifies the location from which + packages should be installed or updated, overriding the location + found in the installation's \tl\ Package Database (\acro{TLPDB}). +\item |--gui| starts the \acro{GUI} version of tlmgr. + The \acro{GUI} does not support all the bells + and whistles of the command-line program. It is in fact a separate + program that calls the command-line version to do the actual work. + The difference between this |--gui| option and the |gui| action (see + below) is that given the option, + tlmgr tries to open the \acro{GUI} directly at the screen + for the specified |action|. +\item |--gui-lang| \var{ll} selects the language in which the \acro{GUI} will + appear. Normally the \acro{GUI} tries to deduce your language from + the environment (on Windows via the registry, on Unix via + |LC_MESSAGES|). If that fails you can select a different language by + giving this option a two-letter language code. +\end{itemize} + +Furthermore, some standard options are supported: |--help| (also |-h|) +for getting help, |-q| which supresses informational messages, and +|-v| (verbose) for turning on debugging options. With |--version| the +script will show you the version of your \tl\ system and of itself. + +\subsection{The actions} + +There is a (permanently growing) list of actions, currently: |help|, |version|, +|gui|, |install|, |update|, |backup|, |restore|, |remove|, |option|, +|paper|, |arch|, |search|, |show|, |list|, |check|, |uninstall|, |generate|. + +\paragraph{The general actions} + +\begin{itemize} +\item |search [|\var{option}|...] |\var{what} Without any options, search in the list + of locally installed packages for package names or descriptions + matching |what|. If you give the option |--global| it also searches + the remote database. This might differ in case you have not + installed all of \tl, but only a part of it. Finally, if you specify + |--file| then files are searched, and not package names. +\item |show |\var{pkg}|...| gives you more detailed information on the + listed packages. If all packages are installed locally, it does not + consult the remote database. +\item \Verb+list [collections|schemes]+ With no argument, lists all + packages available at the default install location, prefixing those + already installed with "i ". With an argument lists only collections + or schemes, as requested. +\item |uninstall| This action will ask for confirmation, and then remove + the entire installation. Don't do it or we will be sad. If you give + the |--force| option, it does not even ask, but proceeds + immediately with the removal. +\item \Verb+check [files|collections|all]+ Executes one (or all) + check(s) on the consistency of the installation. For |files| it + checks that all files listed in the local database + are actually present, and lists those missing.% +% \footnote{On Windows that will not work currently, since +% Windows does not ship find. Also MacOS seems to ship a strange +% find implementation that does not support -wholename, so that +% will break, too.} + The option |--use-svn| will use the |svn| command to check for the + files. +\item |gui| starts the \acro{GUI}, as explained above at |--gui|. +\item |version| is the same as |--version|. +\item |help| is the same as |--help|. +\end{itemize} + +\paragraph{The configuration actions} +\begin{itemize} +\item |option [show]| Shows all configuration settings currently + saved in the local database. The |show| option is accepted and ignored. +\item |option |\var{key} |[|\var{value}|]| Without the + \var{value}, shows the current value + of the configuration option \var{key}; with \var{value}, sets this + configuration option. Currently accepted |key|s are |location| + (default installation location), |formats| (create formats at + installation time), |docfiles| (install documentation files), + |srcfiles| (install source files). These are the options you have + set at installation time and will be honoured at \emph{later} install and + upgrade actions. For example, changing the |docfiles| + options from false to true will not install or remove the already + present documentation files. But a subsequent update will install or remove + them. +\item |paper |\var{paper} Sets the default papersize; possible values + are |a4| and |letter|. +\item \var{program} \Verb+paper [help|+\var{paper}|]| + This allows setting different paper sizes for the specified + \var{program}: |xdvi|, |dvips|, |pdftex|, |dvipdfm|, + |dvipdfmx|, |context|. Without any additional argument it reports the + currently selected papersize. With |help|, it issues all the + supported paper sizes for that program. And if you specify a paper size, + it will be set as default papersize for the given program. +\item |generate |\var{what} This command generates one or more + configuration files, as follows: + + Giving |language.dat| for \var{what} + generates the |language.dat| file which specifies the + hyphenation patterns to be loaded for \LaTeX-based formats. + Giving |language.def| for \var{what} generates the |language.def| + file which specifies hyphenation patterns to be loaded for + |etex|-based formats. + Specifying |language| for |what| + generates both of these files. + + Giving |fmtutil| for \var{what} generates the |fmtutil.cnf| file which + contains the definitions of all formats available. + + Giving |updmap| for \var{what} generates the |updmap.cfg| file which + lists all the installed font map files. + + For |fmtutil| and the language files, recreating is normal and both the + installer and tlmgr routinely call that. + + For |updmap|, however, neither the installer nor tlmgr use + |generate|, because the result would be to disable all maps which + have been manually installed via |updmap-sys --enable|, e.g., for + proprietary or local fonts. Only the changes in the |--localcfg| + file mentioned below are incorporated by |generate|. + + On the other hand, if you only use the fonts and font packages + within \TeX\ Live, there is nothing wrong with using |generate updmap|. + Indeed, we use it to generate the |updmap.cfg| file that is + maintained in the live source repository. + + If the files |language-local.dat|, |language-local.def|, + |fmtutil-local.cnf|, or |updmap-local.cfg| are present under + \path{TEXMFLOCAL} in the respective directories, their contents will + be simply merged into the final files, with no error checking of any + kind. +\end{itemize} + + +\paragraph{The package management actions} +\begin{itemize} +\item |install| \var{pkg}\ldots\ installs the packages given as argument. + By default, installing a package + also installs all of its dependencies. + The following options are supported: |--no-depends| will + not install dependent packages. There is also |--no-depends-at-all| + which in addition + disregards the tightly coupled packages architecture-specific + executables; for example, + |bin-bibtex| and |bin-bibtex.i386-linux|. That is something you + should never use unless you are sure you know what you are + doing. |--dry-run| fakes the installation without changing anything. +\item |update| \var{pkg}\ldots\ updates the packages given as arguments. + In addition, if the \var{pkg} is a collection, and the remote server + has new packages in this collection, they will be installed, + following the dependencies specified in the collection. Options: + \begin{description} + \item |--list| Lists the packages which would be updated or newly + installed, but does not do the update. It also lists the revision + numbers of the local and the remote packages. + \item |--all| Update all out-of-date packages. + \item |--dry-run| Fake the updates without changing anything. + \item |--backupdir |\var{directory} + Save a snapshot of the current package (as installed) in \var{directory}, + before the package is updated. This way one can easily recover + in case an update turned out as not working. See the + |restore| action for details. + \item |--no-depends| Do not install normal dependencies. + \item |--no-depends-at-all| See |install| above for this option. + \end{description} +\item |remove| \var{pkg}\ldots\ + removes the packages given as arguments. Removing a + collection will remove all package dependencies (but not collection + dependencies) in that collection, unless |--no-depends| is + specified. However, when removing a package, dependencies are + never removed. + + Options: + \begin{description} + \item |--no-depends| Do not remove dependent packages. + \item |--no-depends-at-all| See |install| above for this option. + \item |--force| + By default, when removing a package or collection would + invalidate a dependency of another collection/scheme, the + package is not be removed and an error is given. With this + option, the package will be removed unconditionally. Use with + care. + \item |--dry-run| + Fake the removals without actually changing anything. + \end{description} +\item |backup| \var{pkg}\ldots\ + makes a backup of the given packages, or all packages + with |--all|, to the directory specified with |--backupdir| (must + exist and be writable. + + The following options are supported: + \begin{description} + \item |--backupdir |\var{directory} + The directory is a required argument and must specify an existing + directory where backups are to be placed. + \item |--all| + Make a backup of all packages in the \TeX\ Live installation. + This will take quite a lot of space and time. + \end{description} + +\item |restore --backupdir |\var{dir} |[|\var{pkg} |[|\var{rev}|]]|\\ + If no |pkg| is given (and thus no |rev|), lists the available backup + revisions for all packages. + + With |pkg| given but no |rev|, list all available backup revisions + of |pkg|. + + With both |pkg| and |rev|, tries to restore the package from the + specified backup. + + The option |--backupdir dir| is required, and must specify a + directory with backups. + + The option |--dry-run| is also supported, as usual. + +\item |arch |\var{operation} \var{arg}\ldots + If \var{operation} is |list|, this + lists the names of architectures (|i386-linux|, \ldots)\ available at + the default install location. + + If \var{operation} is |add|, adds the executables for each of the following + arguments (architecture names) to the installation. + + The option |--dry-run| is also supported, as usual. +\end{itemize} + + +\subsection{Typical usage of tlmgr} + +Here we present some typical usage examples of the \tlmgr. + +\paragraph{Installing a new collection} + +Suppose that you installed |scheme-medium| and then realize that the +hyphenation patterns for some language you are using haven't been +installed, say, Norwegian. First you fire up tlmgr to search for +the support: +\begin{lstlisting} +$ tlmgr search --global norwegian +collection-langnorwegian - Norwegian +hyphen-norwegian - +\end{lstlisting} +and then to install this collection: +\begin{lstlisting} +$ tlmgr install collection-langnorwegian +install: collection-langnorwegian +install: hyphen-norwegian +regenerating language.dat +regenerating language.def +\end{lstlisting} +and then it continues to regenerate all the format files depending on +either |language.dat| or |language.def|. (If the +the |formats| option is changed to false in the local database, the +format rebuilding will be skipped. The default is to do so, to keep +them up to date without manual intervention.) + + +\paragraph{Searching for a package} + +You want to typeset an invitation in a special form, say +in the shape of a heart. Your first try is +\begin{lstlisting} +$ tlmgr search paragraph +\end{lstlisting} +but that yields no output. Maybe it's not installed? +So try a global search: +\lstset{breaklines} +\begin{lstlisting} +$ tlmgr search -global paragraph +tlmgr: installation location /src/TeX/texlive-svn/Master + 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} +and here we are, \texttt{shapepar} seems to be what's needed. So let +us see what it is: +\begin{lstlisting} +$ tlmgr show shapepar +tlmgr: installation location /src/TeX/texlive-svn/Master +Package: shapepar +Category: Package +ShortDesc: A macro to typeset paragraphs in specific shapes. +LongDesc: \shapepar is a macro to typeset paragraphs in a +special ... +Installed: No +Collection:collection-latexextra +\end{lstlisting} +Ok, confirmed, now we can either install the +respective collection using +\begin{lstlisting} +$ tlmgr install collection-latexextra +\end{lstlisting} +which will install quite a lot of packages, or only that one single +package in the hope that it does not depend on anything else: +\begin{lstlisting} +$ tlmgr install shapepar +tlmgr: installation location /src/TeX/texlive-svn/Master +install: shapepar +running mktexlsr +... +\end{lstlisting} + +These examples are about finding uninstalled packages. The default for +\tl\ is a full installation, i.e., everything is installed that is +available. + +\paragraph{Updating your installation} + +After the initial installation you want to get the latest and +greatest of everything, but first you want to see what that means: +\begin{lstlisting} +$ tlmgr update --list +tlmgr: installation location /mnt/cdrom +Cannot load TeX Live database from /mnt/cdrom at /home/norbert/tltest/2008/bin/i386-linux/tlmgr line 1505, <TMP> line 1982. +\end{lstlisting} +Hmm, there seems to be an error, it tries to install from the \acro{DVD} +which you returned to your friend last week. Well, then you +should switch to the network installation source; best to do it +for all future sessions by saving it as default +location. But what was that strange address again? Fortunately you can +tell tlmgr to use \acro{CTAN} and it will know what to do: +\begin{lstlisting} +$ tlmgr option location ctan +tlmgr: setting default installation location to http://mirror.ctan.org/systems/texlive/tlnet/2008 +\end{lstlisting} +Fine. Now let us see what we can upgrade: +\begin{lstlisting} +$ tlmgr update --list +shapepar: local: 10400, source: 10567 +bin-texlive: local: 10693, source: 10750 +pdftex: local: 10622, source: 10705 +texlive.infra: local: 10685, source: 10748 +\end{lstlisting} +Well, some things are there, so let us update all of them at once: +\begin{lstlisting} +$ tlmgr update --all +update: shapepar (10400 -> 10567) ... done +update: bin-texlive (10693 -> 10750) ... done +update: pdftex (10622 -> 10705) ... done +update: texlive.infra (10685 -> 10748) ... done +running mktexlsr ... +\end{lstlisting} + +\paragraph{Paper size configuration} + +You are moving to Japan and want letter as your default paper size; +nothing easier: +\begin{lstlisting} +$ tlmgr paper letter +\end{lstlisting} +will switch to letter for the most important programs, and at also +recreate the formats. + +\section{The GUI for tlmgr} + +To make most Windows users and some Unix users happy we provide a +front end for the \tlmgr\ written in Perl/Tk. It does not do the +actual work, but leaves that for tlmgr. It also does not provide quite the +full functionality of tlmgr, but almost all of it is there. + +This program features several screens for different functionalities: +installation, update, and removal of packages, removal of \tl\ as a +whole, architecture support and configuration. + +The \acro{GUI} is started with either \texttt{tlmgr gui} or +\texttt{tlmgr --gui action} where \texttt{action} is one of the +actions given above. In the latter case it tries to open the respective screen of +the \acro{GUI}. + +\subsection{The install screen} + +The first window to be seen normally is the package installation +screen (fig.~\ref{fig:gui:install}). + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-install.png}} + \caption{\tlmgr\ \acro{GUI} install screen} + \label{fig:gui:install} +\end{figure} + +At the top you see the current installation source, as given either on +the command line of tlmgr, or in the absence of a command line +argument as taken from the default option. It is \emph{not} loaded +automatically, you have to press the \button{Load} button, or the +\button{Change} button to select a different installation source for +this run only. Below you see the list of available packages on the +left, first all the collections and schemes, then all the +other packages in alphabetic order. You can search by entering a +string into the search text field, which immediately jumps to the +first entry. The button \button{Next} jumps to the next match. After +selecting one package you can see its description in the right half of +this screen. Below there is the action button for installing the +selected package(s), and also a switch that allows you to install a +package without those it depends on. + +\subsection{The update screen} + +The update screen is similar to the install screen, but only +lists those packages which have an upgrade available on the +installation location. The upper part of the right pane gives you +information on the package, and in the action area below you see two +buttons, one for updating only the selected packages, and one for +updating all packages. + +In fig.~\ref{fig:gui:update} you can see the update screen with +updates available and the information for the selected package shown +in the right part of the screen. + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-update.png}} + \caption{\tlmgr\ \acro{GUI} update screen} + \label{fig:gui:update} +\end{figure} + +\subsection{The remove screen} + +The remove screen is also similar to the install screen, with the +list of all installed packages in the left part, the +information window in the upper right part, and the action area with +two toggles and the remove button in the lower right part; see +fig.~\ref{fig:gui:remove}. + +The two toggles correspond to the option |--force| and |--no-depends| +of the tlmgr |remove| action, see above. + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-remove.png}} + \caption{\tlmgr\ \acro{GUI} remove screen} + \label{fig:gui:remove} +\end{figure} + +\subsection{The uninstallation screen} + +This screen only sports one button which allows you to completely remove +the \tl\ installation from your system. This button is not present on +Windows systems, being replaced by an informational note that you should +use the \cmd{Add/Remove} entry from the Control Panel. + +\subsection{The architectures screen} + +\tl\ allows you to install the binaries for several +architecture-operating system combinations in case you want to +distribute your installation via \acro{NFS} or other means in an +inhomogen local network, see fig.~\ref{fig:gui:arch}. + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-arch.png}} + \caption{\tlmgr\ \acro{GUI} architectures screen} + \label{fig:gui:arch} +\end{figure} + +This screen lists the available architectures at the current +installation source, and allows you to select new architectures to be +installed by pressing the \button{Apply changes} button. + +Note that the \emph{removal} of architectures is currently not +supported, and that the whole screen is disabled on Windows systems +since Windows does not support normal symbolic links. + +\subsection{The config screen} + +This screen allows the user to comfortably examine and set the various +options of the \tl\ installation, see figure~\ref{fig:gui:option}. + +\begin{figure}[ht!] + \centering + \resizebox{\columnwidth}{!}{\includegraphics{tlmgrgui-options.png}} + \caption{\tlmgr\ \acro{GUI} config screen} + \label{fig:gui:option} +\end{figure} + +In the upper part you can change the defaults for the installation +source, whether formats should be created (and updated) by default, +and whether macro/font documentation and source files should be +installed. + +In the lower left part you can set the letter for all the programs to +either \texttt{A4} or \texttt{letter}, or for each program +individually. In the latter case you can choose from a wide range of +paper formats depending on the programs support. + +In the lower right part there are some convenience buttons for updating +the |ls-R| databases, the outline font list (|updmap-sys|) and +rebuilding all formats. + +\subsection{Execution of the commands} + +As mentioned above, this \acro{GUI} is only a front end and leaves the +actual work to tlmgr itself. So every action you do (installation, +removal, etc.)\ will pop up a window where the output of the tlmgr +process is shown. + +On Unix systems that output will be shown immediately. Windows +lacks good support for forking in Perl/Tk, and thus you have to wait +until the whole process has terminated before the output appears. That +can take quite some time, so please be patient. + +We are working on merging the tlmgr and its \acro{GUI} into one +program so that the output would become more immediate in all cases. + + +\section{What else is there?} + +Besides reworking the whole infrastructure, which is only user-visible in +the new installer and the \tlmgr, as with every year, all the +programs and packages have been updated. We currently ship around~1400 +normal packages, e.g., \LaTeX\ and font packages, and +around~300 other packages, mostly documenation and a few packages +which are \tl\ internal. + +The new player in the game +this year is the new engine Lua\TeX\ (\url{http://luatex.org}); besides a +new level of flexibility in typesetting, this provides an excellent +scripting language for use both inside and outside of \TeX\ +documents. + + +\subsection{Windows-specific features} + +To be complete, a \tl\ installation needs support packages that are not +commonly found on a Windows machine. \tl{} provides the missing +pieces: +\begin{description} +\item[Perl and Ghostscript.] Because of the importance of Perl and + Ghostscript, \tl{} includes `hidden' copies of these + programs. \tl{} programs that need them know where to find them, + but they don't betray their presence through environment variables + or registry settings. They aren't full-scale distributions, and + shouldn't interfere with any system installations of Perl or + Ghostscript. +\item[Command-line tools.] A number of Windows ports of common Unix + command-line programs are installed along with the usual \tl{} + binaries. These include \cmd{gzip}, \cmd{chktex}, + \cmd{jpeg2ps}, \cmd{unzip}, \cmd{wget} and the + command-line utilities from the \cmd{xpdf} suite. (The + \cmd{xpdf} viewer itself is not available for Windows, but the + Sumatra \acro{PDF} viewer is based on it: + \url{http://blog.kowalczyk.info/software/sumatrapdf}.) +\item[\texttt{fc-cache}] helps \XeTeX{} to handle fonts more + efficiently. +\item[PS\_View.] Also installed is PS\_View, a new PostScript viewer + that is free software; see fig.~\ref{fig:psview}. It also supports + viewing of \acro{PDF} files and is extremely fast. Please contact us + with any suggestions, this program is in active development. +\item[dviout] This is a \acro{DVI} previewer which is shipped only in + the support directory of the \acro{DVD}, but you will get it if you + use the network update procedure. See fig.~\ref{fig:dviout} for a + screenshot. +\end{description} + +\begin{figure}[ht!] + \centering + \resizebox{0.8\columnwidth}{!}{\includegraphics{psview.png}} + \caption{PS\_View allows very high magnification, and renders + \acro{PDF}, too} + \label{fig:psview} +\end{figure} + +\begin{figure}[ht!] + \centering + \resizebox{0.8\columnwidth}{!}{\includegraphics{dviout.png}} + \caption{DVIout on Windows} + \label{fig:dviout} +\end{figure} + +\section{Final remarks and other resources} + +The \tlmgr\ is very much work in progress, and its \acro{GUI} even +more. We are adding new functionality frequently, and improving +existing functionality to make it more robust. If you see any anomalies +don't hesitate to contact us at \url{tex-live@tug.org}, and we +will try to improve it further. + +As with most volunteer projects the group of core programmers is +quite small. Most of tlmgr and its \acro{GUI} has been +programmed by the author with some minor contributions from +others. Anyone being more or less able to program Perl is heartily +invited to join forces and help us, there are long lists of +\acro{TODO}s for the \tlmgr, let alone for all of \tl. + +If you are searching more information on \tl\ your first starting +place should be \url{http://tug.org/texlive/} and the documentation +specific page \url{http://tug.org/texlive/doc.html}. + +The list of people to thank is too long to be included here, please +see the online \tl\ documentation, Chapter~9 +(Acknowledgments), for the ever growing list. Of course one name has to +be mentioned and that is Karl Berry who with great enthusiasm and +perpetual support (and a sometimes critical voice if I was too fast in +implementing something!)\ prepared the \tl~2008 release. + +\bibliographystyle{arstexnica} +\bibliography{tlmgr-article,arstexnica} + +% +% END OF ARTICLE +% +\end{article} +\end{document} + + |