summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/tlinst-BT08.tex
blob: 4789924a1c28cf8c314a9d15e2f1ddea4dc67d23 (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
%
% A new installer for TeX Live
% Norbert Preining, Reinhard Kotucha, Siep Kroonenberg
% Article presented on the 16th BachoTeX meeting, Bachotek ?? May 2008
%
% Copyright 2007 Norbert Preining at al.
% 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}
\documentclass{ltugproc}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{fancyvrb}
\usepackage{url}
\usepackage{marvosym}
\usepackage{listings}
\lstset{frame=lines,basicstyle=\ttfamily,showspaces=true,prebreak={\Righttorque},postbreak={\Lefttorque},breaklines}
\usepackage{microtype}

\usepackage{hyperref} % should be loaded last because it patches other
                      % packages.

\newcommand{\tl}{\TeX~Live}
\newcommand{\ctan}{CTAN}
\newcommand{\tpm}{\texttt{tpm}}
\newcommand{\tpms}{\tpm{}s}
\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}{\texttt{kpathsea}}


\hypersetup{pdftitle={A new installer for \tl},
   pdfauthor={R. Kotucha, S. Kroonenberg, N. Preining},
   pdfsubject={A new installer for \tl},
   pdfkeywords={TeX Live, installer, ...}}

\hyphenation{infra-struc-ture}

%\catcode`>=\active
%\def>#1<{\texttt{#1}}
\DefineShortVerb{\|}
\begin{document}
%\begin{article}
%\selectlanguage{italian}%

\title{A new installer for \tl}%%%\thanks{%
%  Article presented on the 16th Bacho\TeX meeting, Bachotek ?? May 2008}}

\author{Reinhard Kotucha}
\address{Marschnerstr.~25\\
	30167~Hannover, Germany}
\netaddress{reinhard.kotucha@web.de}

\author{Siep Kroonenberg}
\address{Rijksuniversiteit Groningen\\
	Department of Economics\\
        P.O.~Box~800\\
	9700~AV~Groningen, the Netherlands}
\netaddress{siepo@cybercomm.nl}

\author{Norbert Preining}
\address{Vienna University of Technology\\
	Wiedner Hauptstr.\ 10\\
	1040 Wien, Austria}
\netaddress{preining@logic.at}


\begin{abstract}
  \tl\ has a new package infrastructure, primarily developed by
  Norbert Preining, and inspired by the Debian/Linux packaging
  system.

  We shall present a new \tl\ installer, based on the new package
  infrastructure. It includes a text based as well a graphical user
  interface.  Among other new features, installing \tl\ from the
  internet is now possible. It should work on all platforms
  supported by \tl.
\end{abstract}

\maketitle

%
% does not work in normal arstexnika mode, needs standalone, I leave
% this up to the editors
%\tableofcontents

\section{Introduction}
\label{sec:intro}

In this paper we introduce the new \tl\ installer. Its creation was
necessitated by the brand-new package infrastructure -- described
elsewhere in these proceedings.

However, there is more news, also from a user's point of view. In
particular:
\begin{itemize}
\item It will be possible to install \tl\ from the internet.
\item The Windows version is much more in line with Unix versions.
\item There is just one installer, which can run either in text mode
  or in GUI mode.
\end{itemize}

\section{\tlu}

Nowadays \TeX{} contains a customized copy of Lua as embedded
scripting language. When called as \tlu, it acts as a standalone Lua
interpreter, customized for a \TeX{} environment. This is a very
attractive scripting solution:
\begin{itemize}
\item no discrepancies between versions: \tlu{} scripts should
  simply match the \TeX{} version they are part of.
\item \tlu{} has \kpse\ compiled in.  In a \tlu{} script the
  location of a particular file can be determined very fast.
\item An embedded scripting language is immune from the kind of
  bloat suffered by popular scripting languages such as \pl{} and
  Ruby.
\end{itemize}
Under Windows, |.texlua| files are made executable by the installer.

\section{Install \tl\ from the Internet}\label{texlua}
It is now possible to install \tl\ from a remote server.  Thanks to
the new infrastructure, the package database which is needed by the
installer in order to determine which packages have to be downloaded
and how to install them is a single file.

Two installers for network downloads are provided.
|install-tl.tar.gz.| supports UNIX only.  |install-tl.zip|
additionally contains a tiny subset of \pl\ 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.


\section{A new compression Algorithm}
Using |.tar.lzma| compression instead of |.zip| reduces the size of the
compressed packages by 20\%.  It cannot be assumed that |lzma|
decompressors are available on any platform, hence they have to be
provided for all platforms supported by \tl.  Fortunately there is a
program `|lzmadec|' available for all platforms.  The size of the
executable file is only 12\,kB.

\section{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.

\subsection{\texttt{\$HOME} and multi-user support}
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, thanks to Karl
Berry: \verb+~/texmf+ is expanded to \verb+%USERPROFILE%\texmf+
under Windows and to \verb+$HOME+ under Unix.

It is also possible to differentiate between system settings and
user settings. Now there is no reason any more to have a different
set of \texttt{texmf} trees or to leave out scripts such as
\texttt{fmtutil-sys} and \texttt{updmap-sys}. It also shares the
Unix \texttt{texmf.cnf}.

\subsection{Scripting}
We cannot count on the presence of the usual Unix scripting
languages. We deal with this by including a limited subset of \pl{}
for Windows, which contains just enough modules to run the installer
and the \pl{} scripts which are part of \tl.

To prevent interference with any pre-existing \pl, we make it
invisible to the system by not placing it on the searchpath and by
not creating or changing any \pl-related settings. Instead, the
\tl\ \pl\ scripts are called via wrapper scripts that know how to
find Perl and that create the necessary environment variables for
the hidden \pl{} for the duration of the job. In the case of the
installer itself, the wrapper is a simple batchfile (but not so
simple that it would have worked under earlier Windows
versions). But in most cases, the wrapper is written in \tlu; see
section \ref{texlua}.

\subsection{\gs}

\tl{} for Windows also includes a hidden copy of \gs, another
fixture of Unix systems that is usually absent under Windows.  The
most important batch files provided by \gs\ have been ported to
\tlu{}, see \ref{texlua}.

%\bibliographystyle{arstexnica}
%\bibliography{atsample}

%\end{article}

\end{document}