summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/tlinst-BT08.tex
blob: dbfc433cd09422b2dd6662bdbaf3f6c54be73ccf (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
%
% 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}




\section{What's new?}

\subsection{Multiplatform Installations}
It had always been possible to install \tl\ on a UNIX server and mount
the \tl\ directory on many platforms.  On Windows there had been some
restrictions.  Since \tl\ for Windows had been regarded as a
single-user system in the past, *|-sys|-Programs like |fmtutil-sys| or
|updmap-sys| had not been provided.  Thus, it was necessary to provide
a separate |texmf.cnf| file for Windows.

The *|-sys| programs could be implemented easily in |texlua|.  There
are several reasons to use |texlua| for this purpose:
\begin{itemize}
\item |texlua| is a scripting language and therefore the programs are
  platform independent and much easier to maintain than C programs.
\item |texlua| has \kpse\ compiled in.  In a |texlua| script the
  location of a particular file can be determined very fast.
\item |texlua| is a small, simple but very powerful programming
  language.  Its simplicity makes the code easy to maintain.  
\end{itemize}

In order to allow to use the same |texmf.cnf| for all platforms, Karl
Berry implemented tilde expansion to \kpse.  That means that the entry
\begin{verbatim}
  ~/texmf
\end{verbatim}
in |texmf.cnf| expands to
\begin{verbatim}
  $HOME/texmf
\end{verbatim}
on UNIX, but to
\begin{verbatim}
  %USERPROFILE%\texmf
\end{verbatim}
on Windows.

\subsection{Install \tl\ from the Internet}
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.


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

\subsection{Perl and Ghostscript}
Though it can be assumed that \pl\ and \gs\ are installed on every
UNIX system, this is quite uncommon on Windows.  Former versions of
\tl\ installed these programs on demand but it is quite difficult to
avoid conflicts with instances of these programs already installed.

A better solution is to hide these programs and make them visible only
to the scripts which need them.  This is done by wrapper scripts
written in \tlu The purpose of these scripts is to start another
program in a changed environment, and \tlu\ turned out to be the
ultimate programming language for such wrappers because it has \kpse\
built in.

The most important batch files provided by \gs\ had been ported to
\tlu\ too.

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

\end{document}