summaryrefslogtreecommitdiff
path: root/Master/install-tl
diff options
context:
space:
mode:
authorSiep Kroonenberg <siepo@cybercomm.nl>2011-04-24 15:44:14 +0000
committerSiep Kroonenberg <siepo@cybercomm.nl>2011-04-24 15:44:14 +0000
commit9d5bc14f41bbd9219da5d024b1d6a164b51c8525 (patch)
treedbd8181781a4ca5641a7544de85da8ad8e57d3ef /Master/install-tl
parent1604514ddb81e4dbd0a8f91892afa04cd2c7c07e (diff)
Proposed updates TLWinGoo and install-tl now in place; old tlperl removed
git-svn-id: svn://tug.org/texlive/trunk@22184 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/install-tl')
-rwxr-xr-xMaster/install-tl300
1 files changed, 131 insertions, 169 deletions
diff --git a/Master/install-tl b/Master/install-tl
index 79e7948e04d..eaab2f61732 100755
--- a/Master/install-tl
+++ b/Master/install-tl
@@ -3,7 +3,7 @@
#
# Copyright 2007, 2008, 2009, 2010 Reinhard Kotucha, Norbert Preining,
# Karl Berry.
-#
+#
# This file is licensed under the GNU General Public License version 2
# or any later version.
#
@@ -142,12 +142,12 @@ our %vars=( # 'n_' means 'number of'.
'src_splitting_supported' => 1,
'doc_splitting_supported' => 1,
'selected_scheme' => $default_scheme,
- 'from_dvd' => 0,
+ 'in_place' => 0,
'portable' => 0,
);
# option handling
-my $opt_from_dvd = 0;
+my $opt_in_place = 0;
my $opt_gui = (win32() ? "wizard" : "text");
my $opt_help = 0;
my $opt_location = "";
@@ -201,7 +201,7 @@ process_logging_options();
GetOptions(
"custom-bin=s" => \$opt_custom_bin,
"fancyselector" => \$::alternative_selector,
- "from_dvd" => \$opt_from_dvd,
+ "in-place" => \$opt_in_place,
"gui:s" => \$opt_gui,
"lang=s" => \$::opt_lang,
"location|url|repository|repo=s" => \$opt_location,
@@ -259,6 +259,15 @@ if ($opt_version) {
exit 0;
}
+die "Options custom-bin and in-place are incompatible."
+ if ($opt_in_place and $opt_custom_bin);
+
+die "Options profile and in-place are incompatible."
+ if ($opt_in_place and $opt_profile);
+
+die "Options profile-seed and in-place are incompatible."
+ if ($opt_in_place and $opt_profileseed);
+
if ($#ARGV >= 0) {
# we still have arguments left, should only be gui, otherwise die
if ($ARGV[0] =~ m/^gui$/i) {
@@ -273,7 +282,7 @@ if (defined($::opt_lang)) {
$::lang = $::opt_lang;
}
-if ($opt_profile) {
+if ($opt_profile) { # for now, not allowed if in_place
if (-r $opt_profile) {
info("Automated TeX Live installation using profile: $opt_profile\n");
} else {
@@ -399,9 +408,9 @@ if ($location =~ m!^(ctan$|(http|ftp)://)!i) {
if (member('local_compressed', @media_available)) {
$media = 'local_compressed';
- # for from_dvd option we want local_uncompressed media if possible
- $media = 'local_uncompressed' if
- $opt_from_dvd && member('local_uncompressed', @media_available);
+ # for in_place option we want local_uncompressed media
+ $media = 'local_uncompressed' if $opt_in_place &&
+ member('local_uncompressed', @media_available);
} elsif (member('local_uncompressed', @media_available)) {
$media = 'local_uncompressed';
} else {
@@ -440,11 +449,15 @@ if ($media eq "local_uncompressed") {
}
info("Directory for temporary files: $system_tmpdir\n");
-if ($opt_from_dvd and ($media ne "local_uncompressed")) {
- print "Not running from DVD; 'from_dvd' option not applicable\n";
- $opt_from_dvd = 0;
+if ($opt_in_place and ($media ne "local_uncompressed")) {
+ print "TeX Live not local or not decompressed; 'in_place' option not applicable\n";
+ $opt_in_place = 0;
+} elsif ($opt_in_place and (!TeXLive::TLUtils::texdir_check($::installerdir))) {
+ print "Installer dir not writable; 'in_place' option not applicable\n";
+ $opt_in_place = 0;
}
-$vars{'from_dvd'} = $opt_from_dvd;
+$vars{'in_place'} = $opt_in_place;
+$opt_scheme = "" if $opt_in_place;
$vars{'portable'} = $opt_portable;
load_tlpdb();
@@ -591,9 +604,9 @@ if (!$finished) {
# win32: first, remove trailing slash from texdir[w]
# in case it is the root of a drive
$vars{'TEXDIR'} =~ s![/\\]$!!;
- $vars{'TEXDIRW'} =~ s![/\\]$!!;
+ #$vars{'TEXDIRW'} = $vars{'TEXDIR'}; # no longer used
sanitise_options();
- info("Installing to: $vars{TEXDIRW}\n");
+ info("Installing to: $vars{TEXDIR}\n");
do_installation();
}
@@ -619,9 +632,17 @@ sub do_installation {
exit 1;
}
# do the actual installation
- my $h;
- prepare_installation();
- if (!$vars{'from_dvd'}) {
+ make_var_skeleton "$vars{'TEXMFSYSVAR'}";
+ make_local_skeleton "$vars{'TEXMFLOCAL'}";
+ mkdirhier "$vars{'TEXMFSYSCONFIG'}";
+
+ if ($vars{'in_place'}) {
+ $localtlpdb = $tlpdb;
+ } else {
+ $localtlpdb=new TeXLive::TLPDB;
+ $localtlpdb->root("$vars{'TEXDIR'}");
+ }
+ if (!$vars{'in_place'}) {
calc_depends();
save_options_into_tlpdb();
do_install_packages();
@@ -650,7 +671,7 @@ sub do_installation {
$localtlpdb->add_tlpobj($stlp);
}
}
- $localtlpdb->save unless $vars{'from_dvd'};
+ $localtlpdb->save unless $vars{'in_place'};
do_postinst_stuff();
if (win32() || $vars{'portable'}) {
print welcome();
@@ -665,7 +686,6 @@ sub do_installation {
# of former times, and should be critically checked.
sub do_postinst_stuff {
my $TEXDIR="$vars{'TEXDIR'}";
- my $TEXDIRW="$vars{'TEXDIRW'}";
my $TEXMFSYSVAR="$vars{'TEXMFSYSVAR'}";
my $TEXMFSYSCONFIG="$vars{'TEXMFSYSCONFIG'}";
my $TEXMFVAR="$vars{'TEXMFVAR'}";
@@ -684,9 +704,7 @@ sub do_postinst_stuff {
#
# create package backup directory for tlmgr autobackup to work
- # unless installation is on non-writable media (from_dvd or live)
- mkdirhier("$TEXDIR/$TeXLive::TLConfig::PackageBackupDir")
- if ($vars{'TEXDIR'} eq $vars{'TEXDIRW'});
+ mkdirhier("$TEXDIR/$TeXLive::TLConfig::PackageBackupDir");
# final program execution
# we have to do several things:
@@ -697,26 +715,22 @@ sub do_postinst_stuff {
# Step 1: Clean the environment.
%origenv = %ENV;
- my @TMFVARS0=qw(VARTEXFONTS
+ my @TMFVARS=qw(VARTEXFONTS
TEXMF SYSTEXMF VARTEXFONTS
TEXMFDBS WEB2C TEXINPUTS TEXFORMATS MFBASES MPMEMS TEXPOOL MFPOOL MPPOOL
PSHEADERS TEXFONTMAPS TEXPSHEADERS TEXCONFIG TEXMFCNF
TEXMFMAIN TEXMFDIST TEXMFLOCAL TEXMFSYSVAR TEXMFSYSCONFIG
TEXMFVAR TEXMFCONFIG TEXMFHOME TEXMFCACHE);
- if (defined($ENV{'TEXMFCNF'}) and !$vars{'from_dvd'}) {
+ if (defined($ENV{'TEXMFCNF'})) {
print "WARNING: environment variable TEXMFCNF is set.
You should know what you are doing.
We will remove that for the post install actions, but all further
operations might be disturbed.\n\n";
}
- foreach $tmv (@TMFVARS0) {
+ foreach $tmv (@TMFVARS) {
delete $ENV{$tmv} if (defined($ENV{$tmv}));
}
- if ($vars{'from_dvd'}) {
- $ENV{'TEXMFSYSVAR'} = $vars{'TEXMFSYSVAR'};
- $ENV{'TEXMFCNF'} = $vars{'TEXMFSYSVAR'}."/web2c";
- }
# Step 2: Setup the PATH, switch to the new Perl
@@ -761,9 +775,10 @@ operations might be disturbed.\n\n";
# post install actions
#
- # in case we are running from DVD we use the tlpdb from the DVD, otherwise
+ # in case we are running from local_uncompressed
+ # we use the tlpdb from the local_uncompressed, otherwise
# the one we have locally created, for all the further actions
- my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+ my $usedtlpdb = $vars{'in_place'} ? $tlpdb : $localtlpdb;
if (win32()) {
@@ -771,16 +786,16 @@ operations might be disturbed.\n\n";
debug 'Effective TEXMFCNF: '.`kpsewhich -expand-path=\$TEXMFCNF`."\n";
}
- if (win32() and !$vars{'portable'}) {
- create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIRW'},
+ if (win32() and !$vars{'portable'} and !$vars{'in_place'}) {
+ create_uninstaller($vars{'TEXDIR'}, $vars{'TEXDIR'},
$vars{'TEXMFSYSVAR'}, $vars{'TEXMFSYSCONFIG'});
+ # TODO: custom uninstaller for in_place
# (re-)initialize batchfile for uninstalling shortcuts
- mkdirhier("$TEXDIRW/tlpkg/installer") if $vars{'from_dvd'};
}
# Step 4: run the programs
- if (!$vars{'from_dvd'}) {
+ if (!$vars{'in_place'}) {
info("running mktexlsr $TEXDIR/texmf-dist $TEXDIR/texmf\n");
system('mktexlsr', "$TEXDIR/texmf-dist", "$TEXDIR/texmf");
}
@@ -862,15 +877,21 @@ operations might be disturbed.\n\n";
}
#
- # do path adjustments: On Windows add/remove to PATH etc, on Unix
- # set symlinks
+ # do path adjustments: On Windows add/remove to PATH etc,
+ # on Unix set symlinks
+ # for portable, this option should be unset
+ # it should not be necessary to test separately for portable
do_path_adjustments() if $vars{'option_path'};
# now do the system integration:
# on unix this means setting up symlinks
# on w32 this means adding to path, settting registry values
# on both, we run the postaction directives of the tlpdb
+ # no need to test for portable or in_place:
+ # the menus (or profile?) should have set the required options
do_tlpdb_postactions();
+ copy("$::installerdir/tlpkg/installer/tlmenu.bat", $TEXDIR)
+ if $vars{'portable'};
}
@@ -879,7 +900,8 @@ sub do_tlpdb_postactions {
# Run the post installation code in the postaction tlpsrc entries
# For now the option_desktop_integrations maps to both desktop
# and menu entries, but we can split that later
- my $usedtlpdb = $vars{'from_dvd'} ? $tlpdb : $localtlpdb;
+ # option settings already reflect portable- and in_place options.
+ my $usedtlpdb = $vars{'in_place'} ? $tlpdb : $localtlpdb;
foreach my $package ($usedtlpdb->list_packages) {
&TeXLive::TLUtils::do_postaction("install",
$usedtlpdb->get_package($package),
@@ -896,10 +918,6 @@ sub do_path_adjustments {
if (win32()) {
TeXLive::TLUtils::w32_add_to_path($vars{'TEXDIR'}.'/bin/win32',
$vars{'option_w32_multi_user'});
- #
- # from_dvd stuff
- # setenv_reg('TEXMFSYSVAR', $vars{'TEXMFSYSVAR'}) if $vars{'from_dvd'};
- setenv_reg('TEXMFCNF', $vars{'TEXMFSYSVAR'}.'/web2c') if $vars{'from_dvd'};
broadcast_env();
} else {
TeXLive::TLUtils::add_symlinks($vars{'TEXDIR'}, $vars{'this_platform'},
@@ -917,12 +935,11 @@ sub do_texmf_cnf {
my @texmfcnflines = <TMF>;
close(TMF);
- my @newtmf = (); # running from dvd: write whole new texmf.cnf
my @changedtmf = (); # install to disk: write only changed items
my $yyyy = $TeXLive::TLConfig::ReleaseYear;
my $rewritetmflua = 0; # need a new texmfcnf.lua?
-
+
# we have to find TEXMFLOCAL TEXMFSYSVAR and TEXMFHOME
foreach my $line (@texmfcnflines) {
if ($line =~ m/^TEXMFLOCAL/) {
@@ -930,73 +947,47 @@ sub do_texmf_cnf {
# we don't have to write a new setting.
my $deftmlocal = dirname($vars{'TEXDIR'});
$deftmlocal .= "/texmf-local";
- if ("$vars{'TEXMFLOCAL'}" eq "$deftmlocal") {
- push @newtmf, $line;
- } else {
- push @newtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
+ if ("$vars{'TEXMFLOCAL'}" ne "$deftmlocal") {
push @changedtmf, "TEXMFLOCAL = $vars{'TEXMFLOCAL'}\n";
}
} elsif ($line =~ m/^TEXMFSYSVAR/) {
- if ("$vars{'TEXMFSYSVAR'}" eq "$vars{'TEXDIR'}/texmf-var") {
- push @newtmf, $line;
- } else {
- push @newtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
+ if ("$vars{'TEXMFSYSVAR'}" ne "$vars{'TEXDIR'}/texmf-var") {
push @changedtmf, "TEXMFSYSVAR = $vars{'TEXMFSYSVAR'}\n";
}
} elsif ($line =~ m/^TEXMFSYSCONFIG/) {
- if ("$vars{'TEXMFSYSCONFIG'}" eq "$vars{'TEXDIR'}/texmf-config") {
- push @newtmf, $line;
- } else {
- push @newtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
+ if ("$vars{'TEXMFSYSCONFIG'}" ne "$vars{'TEXDIR'}/texmf-config") {
push @changedtmf, "TEXMFSYSCONFIG = $vars{'TEXMFSYSCONFIG'}\n";
}
} elsif ($line =~ m/^TEXMFVAR/) {
- if ($vars{"TEXMFVAR"} eq "~/.texlive$yyyy/texmf-var") {
- push @newtmf, $line;
- } else {
- push @newtmf, "TEXMFVAR = $vars{'TEXMFVAR'}\n";
+ if ($vars{"TEXMFVAR"} ne "~/.texlive$yyyy/texmf-var") {
push @changedtmf, "TEXMFVAR = $vars{'TEXMFVAR'}\n";
$rewritetmflua = 1; # TEXMFVAR change -> new texmfcnf.lua
}
} elsif ($line =~ m/^TEXMFCONFIG/) {
- if ("$vars{'TEXMFCONFIG'}" eq "~/.texlive$yyyy/texmf-config") {
- push @newtmf, $line;
- } else {
- push @newtmf, "TEXMFCONFIG = $vars{'TEXMFCONFIG'}\n";
+ if ("$vars{'TEXMFCONFIG'}" ne "~/.texlive$yyyy/texmf-config") {
push @changedtmf, "TEXMFCONFIG = $vars{'TEXMFCONFIG'}\n";
}
} elsif ($line =~ m/^TEXMFHOME/) {
- if ("$vars{'TEXMFHOME'}" eq "~/texmf") {
- push @newtmf, $line;
- } else {
- push @newtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
+ if ("$vars{'TEXMFHOME'}" ne "~/texmf") {
push @changedtmf, "TEXMFHOME = $vars{'TEXMFHOME'}\n";
}
} elsif ($line =~ m/^OSFONTDIR/) {
if (win32()) {
- push @newtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
push @changedtmf, "OSFONTDIR = \$SystemRoot/fonts//\n";
- } else {
- push @newtmf, $line;
}
- } else {
- push @newtmf, $line;
}
}
if ($vars{'portable'}) {
- push @newtmf, "ASYMPTOTE_HOME = \$TEXMFCONFIG/asymptote\n";
push @changedtmf, "ASYMPTOTE_HOME = \$TEXMFCONFIG/asymptote\n";
}
-
+
my ($TMF, $TMFLUA);
- if ($vars{'TEXDIR'} eq $vars{'TEXDIRW'}) {
- # if TEXDIR == TEXDIRW we want to write only changes to texmf.cnf
- # even for from_dvd installation (needed by tl-portable script to
- # initialize an existing, writable installation for portable use)
- $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
- open(TMF, $TMF) || die "open($TMF) failed: $!";
- print TMF <<EOF;
+ # we want to write only changes to texmf.cnf
+ # even for in_place installation
+ $TMF = ">$vars{'TEXDIR'}/texmf.cnf";
+ open(TMF, $TMF) || die "open($TMF) failed: $!";
+ print TMF <<EOF;
% (Public domain.)
% This texmf.cnf file should contain only your personal changes from the
% original texmf.cnf (for example, as chosen in the installer).
@@ -1007,52 +998,39 @@ sub do_texmf_cnf {
% And include *only* your changed values, not a copy of the whole thing!
%
EOF
- foreach (@changedtmf) {
- # avoid absolute paths for TEXDIR, use $SELFAUTOPARENT instead
- s/^(TEXMF\w+\s*=\s*)\Q$vars{'TEXDIR'}\E/$1\$SELFAUTOPARENT/;
- print TMF;
- }
- #
- # save the setting of shell_escape to the generated system texmf.cnf
- # default in texmf/web2c/texmf.cnf is
- # shell_escape = p
- # so we write that only if the user *deselected* this option
- if (!$vars{"option_write18_restricted"}) {
- print TMF <<EOF;
+ foreach (@changedtmf) {
+ # avoid absolute paths for TEXDIR, use $SELFAUTOPARENT instead
+ s/^(TEXMF\w+\s*=\s*)\Q$vars{'TEXDIR'}\E/$1\$SELFAUTOPARENT/;
+ print TMF;
+ }
+ #
+ # save the setting of shell_escape to the generated system texmf.cnf
+ # default in texmf/web2c/texmf.cnf is
+ # shell_escape = p
+ # so we write that only if the user *deselected* this option
+ if (!$vars{"option_write18_restricted"}) {
+ print TMF <<EOF;
% Disable system commands via \\write18{...}. See texmf/web2c/texmf.cnf.
shell_escape = 0
EOF
;
- }
- if ($rewritetmflua) {
- $TMFLUA = ">$vars{'TEXDIR'}/texmfcnf.lua";
- open(TMFLUA, $TMFLUA) || die "open($TMFLUA) failed: $!";
- }
-
- } else {
- # running from DVD, have to use a different directory.
- $TMF = ">$vars{'TEXMFSYSVAR'}/web2c/texmf.cnf";
- open (TMF, $TMF) || die "open($TMF) failed (dvd): $!\n";
- foreach (@newtmf) { print TMF; }
-
- if ($rewritetmflua) {
- $TMFLUA = ">$vars{'TEXMFSYSVAR'}/web2c/texmfcnf.lua";
- open(TMFLUA, $TMFLUA) || die "open($TMFLUA) failed (dvd): $!";
- }
}
close(TMF) || warn "close($TMF) failed: $!";
- # contents of the revised texmfcnf.lua is the same whether from_dvd or not.
if ($rewritetmflua) {
+ $TMFLUA = ">$vars{'TEXDIR'}/texmfcnf.lua";
+ open(TMFLUA, $TMFLUA) || die "open($TMFLUA) failed: $!";
+
print TMFLUA <<EOF;
-- (Public domain.)
-- This texmfcnf.lua file should exist only if you have personal changes
-- from the distributed file; for example, if TEXMFVAR was changed in
-- the installer.
---
+--
return { TEXMFCACHE = '$vars{"TEXMFVAR"}' }
EOF
+
close(TMFLUA) || warn "close($TMFLUA) failed: $!";
}
}
@@ -1099,7 +1077,8 @@ sub set_platforms_supported {
# TEXLIVE_INSTALL_TEXMFHOME '$HOME/texmf'
sub set_texlive_default_dirs {
- my $tex_prefix = getenv('TEXLIVE_INSTALL_PREFIX');
+ my $tex_prefix = $vars{'in_place'} ? abs_path($::installerdir) :
+ getenv('TEXLIVE_INSTALL_PREFIX');
if (win32) {
$tex_prefix ||= getenv('SystemDrive') . '/texlive';
# we use SystemDrive because ProgramFiles requires admin rights
@@ -1108,24 +1087,24 @@ sub set_texlive_default_dirs {
} else {
$tex_prefix ||= '/usr/local/texlive';
}
- # for portable installation we want everything in one directory
- $vars{'TEXDIRW'} = $vars{'portable'}
+ # for portable and in_place installation we want everything in one directory
+ $vars{'TEXDIR'} = ($vars{'portable'} || $vars{'in_place'})
? $tex_prefix : "$tex_prefix/$texlive_release";
my $texmfsysvar = getenv('TEXLIVE_INSTALL_TEXMFSYSVAR');
- $texmfsysvar ||= $vars{'TEXDIRW'} . '/texmf-var';
+ $texmfsysvar ||= $vars{'TEXDIR'} . '/texmf-var';
$vars{'TEXMFSYSVAR'} = $texmfsysvar;
my $texmfsysconfig = getenv('TEXLIVE_INSTALL_TEXMFSYSCONFIG');
- $texmfsysconfig ||= $vars{'TEXDIRW'} . '/texmf-config';
+ $texmfsysconfig ||= $vars{'TEXDIR'} . '/texmf-config';
$vars{'TEXMFSYSCONFIG'}=$texmfsysconfig;
my $texmflocal = getenv('TEXLIVE_INSTALL_TEXMFLOCAL');
$texmflocal ||= "$tex_prefix/texmf-local";
$vars{'TEXMFLOCAL'} = $texmflocal;
- $vars{'TEXDIR'} = $vars{'from_dvd'}
- ? abs_path($::installerdir) : $vars{'TEXDIRW'};
+ $vars{'TEXDIR'} = $vars{'in_place'}
+ ? abs_path($::installerdir) : $vars{'TEXDIR'};
my $texmfhome = getenv('TEXLIVE_INSTALL_TEXMFHOME');
$texmfhome ||= "~";
@@ -1140,7 +1119,7 @@ sub set_texlive_default_dirs {
my $texmfconfig = getenv('TEXLIVE_INSTALL_TEXMFCONFIG');
$texmfconfig ||= "$texmfhome/.texlive$yyyy/texmf-config";
$vars{'TEXMFCONFIG'} = $texmfconfig;
-
+
# for portable installation we want everything in one directory
if ($vars{'portable'}) {
$vars{'TEXMFHOME'} = "\$TEXMFLOCAL";
@@ -1295,7 +1274,7 @@ sub load_tlpdb {
$location .= "/systems/texlive/tlnet";
$master = $location;
#
- # since we change location, we reset the error count of the
+ # since we change location, we reset the error count of the
# download object
$::tldownload_server->enable if defined($::tldownload_server);
#
@@ -1451,14 +1430,14 @@ sub create_profile {
if $key=~/^collection/ and $vars{$key}==1;
print $fh "$key $vars{$key}\n" if $key =~ /^option_/;
print $fh "$key $vars{$key}\n" if (($key =~ /^binary_/) && $vars{$key});
- print $fh "$key $vars{$key}\n" if $key =~ /^TEXDIR/; # includes TEXDIRW
+ print $fh "$key $vars{$key}\n" if $key =~ /^TEXDIR/;
print $fh "$key $vars{$key}\n" if $key =~ /^TEXMFSYSVAR/;
print $fh "$key $vars{$key}\n" if $key =~ /^TEXMFSYSCONFIG/;
print $fh "$key $vars{$key}\n" if $key =~ /^TEXMFVAR/;
print $fh "$key $vars{$key}\n" if $key =~ /^TEXMFCONFIG/;
print $fh "$key $vars{$key}\n" if $key =~ /^TEXMFLOCAL/;
print $fh "$key $vars{$key}\n" if $key =~ /^TEXMFHOME/;
- print $fh "$key $vars{$key}\n" if $key =~ /^from_dvd/;
+ print $fh "$key $vars{$key}\n" if $key =~ /^in_place/;
print $fh "$key $vars{$key}\n" if $key =~ /^portable/;
}
if (!ref($profilepath)) {
@@ -1514,20 +1493,6 @@ sub sanitise_options {
$vars{'option_desktop_integration'} &&= !$vars{'portable'};
}
-sub prepare_installation {
- make_var_skeleton "$vars{'TEXMFSYSVAR'}";
- make_local_skeleton "$vars{'TEXMFLOCAL'}";
- mkdirhier "$vars{'TEXMFSYSCONFIG'}";
-
- if ($vars{'from_dvd'}) {
- $localtlpdb = $tlpdb;
- } else {
- $localtlpdb=new TeXLive::TLPDB;
- $localtlpdb->root("$vars{'TEXDIR'}");
- }
-}
-
-
sub do_install_packages {
my @what;
foreach my $package (sort keys %install) {
@@ -1582,10 +1547,9 @@ sub save_options_into_tlpdb {
$localtlpdb->setting ("platform", $::_platform_);
}
$localtlpdb->setting("available_architectures", @archs);
- $localtlpdb->save() unless $vars{'from_dvd'};
+ $localtlpdb->save() unless $vars{'in_place'};
}
-
sub import_settings_from_old_tlpdb {
my $dn = shift;
my $tlpdboldpath = "$dn/$TeXLive::TLConfig::InfraLocation/$TeXLive::TLConfig::DatabaseName";
@@ -1626,7 +1590,6 @@ sub import_settings_from_old_tlpdb {
my $oldroot = $previoustlpdb->root;
my $newroot = abs_path("$oldroot/..") . "/$texlive_release";
$vars{'TEXDIR'} = $newroot;
- $vars{'TEXDIRW'} = $newroot;
$vars{'TEXMFSYSVAR'} = "$newroot/texmf-var";
$vars{'TEXMFSYSCONFIG'} = "$newroot/texmf-config";
# only TEXMFLOCAL is treated differently, we use what is found by kpsewhich
@@ -1768,13 +1731,13 @@ sub do_cleanup {
# stuff is already dumped to it and $::LOGFILE defined. So do not
# redefine it
if (!defined($::LOGFILE)) {
- if (open(LOGF,">$vars{'TEXDIRW'}/install-tl.log")) {
+ if (open(LOGF,">$vars{'TEXDIR'}/install-tl.log")) {
$::LOGFILE = \*LOGF;
foreach my $line(@::LOGLINES) {
print $::LOGFILE "$line";
}
} else {
- tlwarn("$0: Cannot create log file $vars{'TEXDIRW'}/install-tl.log: $!\n"
+ tlwarn("$0: Cannot create log file $vars{'TEXDIR'}/install-tl.log: $!\n"
. "Not writing out log lines.\n");
}
}
@@ -1782,13 +1745,13 @@ sub do_cleanup {
# remove temporary files from TEXDIR/temp
if (($media eq "local_compressed") or ($media eq "NET")) {
debug("Remove temporary downloaded containers...\n");
- rmtree("$vars{'TEXDIRW'}/temp") if (-d "$vars{'TEXDIRW'}/temp");
+ rmtree("$vars{'TEXDIR'}/temp") if (-d "$vars{'TEXDIR'}/temp");
}
# write the profile out
- if ($vars{'from_dvd'}) {
- create_profile("$vars{'TEXDIRW'}/texlive.profile");
- debug("Profile written to $vars{'TEXDIRW'}/texlive.profile\n");
+ if ($vars{'in_place'}) {
+ create_profile("$vars{'TEXDIR'}/texlive.profile");
+ debug("Profile written to $vars{'TEXDIR'}/texlive.profile\n");
} else {
create_profile("$vars{'TEXDIR'}/$InfraLocation/texlive.profile");
debug("Profile written to $vars{'TEXDIR'}/$InfraLocation/texlive.profile\n");
@@ -1797,8 +1760,8 @@ sub do_cleanup {
close($::LOGFILE) if (defined($::LOGFILE));
if (defined($::LOGFILENAME) and (-e $::LOGFILENAME)) {
print "Logfile: $::LOGFILENAME\n";
- } elsif (-e "$vars{'TEXDIRW'}/install-tl.log") {
- print "Logfile: $vars{'TEXDIRW'}/install-tl.log\n";
+ } elsif (-e "$vars{'TEXDIR'}/install-tl.log") {
+ print "Logfile: $vars{'TEXDIR'}/install-tl.log\n";
} else {
print "No logfile\n";
}
@@ -1840,7 +1803,7 @@ sub welcome_paths {
Add $::vars{'TEXDIR'}/texmf/doc/info to INFOPATH.
EOF
- if ($::vars{'from_dvd'} and !win32()) {
+ if ($::vars{'in_place'} and !win32()) {
$welcome .= <<"EOF";
Set TEXMFCNF to $::vars{'TEXMFSYSVAR'}/web2c.
EOF
@@ -1878,7 +1841,7 @@ $texenvs ----------------------------------------------------------------------
EOF
}
}
-
+
$welcome .= <<"EOF";
Welcome to TeX Live!
@@ -2014,9 +1977,9 @@ Use the text mode installer (default except on Windows).
(only for GUI installer) If possible, start the installer translated into
the language specified by the 2-letter (ISO 639-1) language code (with
-the exception for selecting simplified or traditional Chinese).
+the exception for selecting simplified or traditional Chinese).
Currently supported
-languages: English (en, default), Czech (cs), German (de), French (fr),
+languages: English (en, default), Czech (cs), German (de), French (fr),
Italian (it), Dutch (nl), Polish (pl), Russian (ru), Slovak (sk),
Slovenian (sl), Serbian (sr), Vietnamese (vi), simplified Chinese
(zh-cn), and traditional Chinese (zh-tw).
@@ -2116,10 +2079,10 @@ For Windows only: configure for the current user, not for all users.
=item B<--no-persistent-downloads>
For net installs, activating this option makes the installer try to set up a
-persistent connection using the Net::LWP Perl module.
-This opens only one connection between your computer and the server
+persistent connection using the Net::LWP Perl module.
+This opens only one connection between your computer and the server
per session and reuses it, instead of initiating a new download for
-each package.
+each package.
This option is turned on by default, and the installation program will
fall back to using C<wget> if this is not possible. To disable usage of
@@ -2127,9 +2090,18 @@ LWP and persistent connections, use C<--no-persistent-downloads>.
=item B<-portable>
-Install for portable use. This option minimazes the impact on the host
-system making TeX Live self-contained in a single directory and
-usable from portable drives. See section B<PORTABLE USE> below.
+Install for portable use on e.g. a USB stick. Also selectable from
+within the perltk- and text installers.
+
+=item B<-in-place>
+
+This is a quick-and-dirty installation option in case you already
+have an rsync- or svn checkout of TeX Live. It will use the checkout
+as-is and will just do the necessary post-install. Be warned that
+the file tlpkg/texlive.tlpdb may be rewritten, that removal has
+to be done manually, and that the only realistic way to maintain
+this installation is to redo it from time to time. This option is
+not available via the installer interface. USE AT YOUR OWN RISK.
=item B<-print-platform>
@@ -2155,7 +2127,7 @@ There is one exception to this: If the profile contains a variable for
C<selected_scheme> and I<no> collection variable is defined in the
profile, then the collections which the specified scheme requires are
installed. Thus, a simple line C<selected_scheme scheme-medium>
-together with the definitions of the paths (C<TEXDIR>, C<TEXDIRW>,
+together with the definitions of the paths (C<TEXDIR>,
C<TEXMFHOME>, C<TEXMFLOCAL>, C<TEXMFSYSCONFIG>, C<TEXMFSYSVAR>) suffices
to install the medium scheme with all default options.
@@ -2188,16 +2160,6 @@ If C<-v> has been given the revisions of the used modules are reported, too.
As usual, all options can be specified with either C<-> or C<-->, and
arguments can be separated from their options by either a space or C<=>.
-=head1 PORTABLE USE
-
-The root directory of a TeX Live installation contains a shell script
-C<tl-portable> and a DOS batch file C<tl-portable.bat> which start up a
-new shell (command prompt), in which TeX Live can be run self-contained.
-
-When running these scripts from a non-writable medium, some preparation
-of the host system is done on the first run, in the host directory
-C<~/.tlportableYYYY>. Otherwise, the host system is not touched.
-
=head1 AUTHORS AND COPYRIGHT
This script and its documentation were written for the TeX Live