blob: 2b70882466f1d3e49248b92be8453d6698c75ed7 (
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
|
#!/bin/sh
# Updater for tlmgr and infrastructure on Unix.
# Runs in unpacked archive directory.
NEWINST=0
if [ "$1" = "-new-install" ] ; then
if [ -z "$2" ] ; then
echo "option -new-install needs the destination folder." >&2
echo "terminating."
exit 1
fi
NEWINST=1
ROOT="$2"
# make sure that we die if something breaks here
set -e
mkdir -p "$ROOT/tlpkg/tlpobj"
mkdir -p "$ROOT/bin"
else
NEWINST=0
ROOT=`kpsewhich --var-value=SELFAUTOPARENT`
if test -r "$ROOT/tlpkg/texlive.tlpdb"; then
# nothing to do here
:
else
cat <<END_ABORT_NODIR >&2
$0: Cannot find TeX Live root using kpsewhich --var-value=SELFAUTOPARENT.
$0: Please call update-tlmgr-latest.sh --noexec --keep
$0: and then call the runme.sh script in the unpacked directory
$0: with the directory root as the first argument, something like:
$0: sh runme.sh /path/to/your/texlive/installation/2008
END_ABORT_NODIR
exit 1
fi
fi
#
# from now on we are in the normal update path
#
if [ $NEWINST = 1 ] ; then
echo "$0: installing to $ROOT..."
else
echo "$0: updating in $ROOT..."
fi
# move the architecture-specific files to the top level.
mv ./master/bin .
mv ./master/tlpkg/installer .
mv ./master/tlpkg/tlpobj .
# install the architecture-independent files.
(cd master && tar cf - *) | (cd $ROOT && tar xf -)
# try to get the list of installed architectures by listing the
# directories in $ROOT/bin.
t_objdir=$ROOT/tlpkg/tlpobj # target tlpobj directory
t_instdir=$ROOT/tlpkg/installer # target installer dir
# ensure these target directories exist.
mkdir -p $t_instdir/lzma
mkdir -p $t_instdir/wget
# start the list of tlpobjs we will install
tlpobjs="$t_objdir/bin-texlive.tlpobj $t_objdir/texlive.infra.tlpobj"
if [ $NEWINST = 1 ] ; then
# use config.guess and platform code to get the current platform
archs=`perl installer/platform.pl installer/config.guess`
else
archs=`ls -d $ROOT/bin/*`
fi
echo "archs = $archs"
cp tlpobj/bin-texlive.tlpobj tlpobj/texlive.infra.tlpobj $t_objdir
for a in $archs; do
if [ $NEWINST = 0 ] ; then
test -d "$a" || continue # skip any cruft files
b=`basename $a` # just the architecture name
else
b=$a
fi
cp tlpobj/bin-texlive.$b.tlpobj tlpobj/texlive.infra.$b.tlpobj $t_objdir
# add the tlpobjs for this platform t the list.
tlpobjs="$tlpobjs $t_objdir/bin-texlive.$b.tlpobj"
tlpobjs="$tlpobjs $t_objdir/texlive.infra.$b.tlpobj"
# install the bin dir for this platform.
(cd bin && tar cf - $b) | (cd $ROOT/bin && tar xf -)
# copy the installer binaries.
cp installer/lzma/lzmadec.$b $t_instdir/lzma/
cp installer/lzma/lzma.$b $t_instdir/lzma/
test -r installer/wget/wget.$b \
&& cp installer/wget/wget.$b $t_instdir/wget
done
# move the architecture-specific files back to the right place
mv bin ./master/
mv installer ./master/tlpkg/
mv tlpobj ./master/tlpkg/
#
if [ $NEWINST = 1 ] ; then
# if we are installing a new we have to create a minimal tlpdb
echo "name 00texlive-installation.config
category TLCore
depend platform:$archs
depend location:http://mirror.ctan.org/systems/texlive/tlnet/2008
depend opt_paper:a4
depend opt_create_formats:0
depend opt_create_symlinks:0
depend opt_sys_bin:/usr/local/bin
depend opt_sys_info:/usr/local/info
depend opt_sys_man:/usr/local/man
depend opt_install_docfiles:1
depend opt_install_srcfiles:1
depend available_architectures:$archs
" > $ROOT/tlpkg/texlive.tlpdb
fi
# invoke secret tlmgr action with the tlpobjs we found.
# Hopefully the result will be a clean tlpdb state.
if [ $NEWINST = 1 ] ; then
export PATH="$ROOT/bin/$archs:$PATH"
echo "PATH = $PATH\n";
fi
tlmgr -v _include_tlpobj $tlpobjs
if [ $NEWINST = 1 ] ; then
mkdir -p $ROOT/texmf-config/web2c
mkdir -p $ROOT/texmf-var/tex/generic/config
mkdir -p $ROOT/texmf-var/web2c
tlmgr option location /var/www/norbert/tlnet/2008
tlmgr install bin-kpathsea
tlmgr install hyphen-base
tlmgr generate updmap
tlmgr generate language
tlmgr generate fmtutil
tlmgr install bin-tetex
tlmgr install bin-texconfig
updmap-sys
fmtutil-sys --all # should not do anything!
#
# should we install collection-basic now???
# otherwise we don't have pdftex etc etc?!?!
#tlmgr install collection-basic
fi
echo "$0: done."
|