diff options
author | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-04-24 15:44:14 +0000 |
---|---|---|
committer | Siep Kroonenberg <siepo@cybercomm.nl> | 2011-04-24 15:44:14 +0000 |
commit | 9d5bc14f41bbd9219da5d024b1d6a164b51c8525 (patch) | |
tree | dbd8181781a4ca5641a7544de85da8ad8e57d3ef /Master/install-tl | |
parent | 1604514ddb81e4dbd0a8f91892afa04cd2c7c07e (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-x | Master/install-tl | 300 |
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 |