[LON-CAPA-cvs] cvs: doc(version_2_11_X) /install/linux install.pl
raeburn
raeburn at source.lon-capa.org
Sun Mar 28 23:50:33 EDT 2021
raeburn Mon Mar 29 03:50:33 2021 EDT
Modified files: (Branch: version_2_11_X)
/doc/install/linux install.pl
Log:
- For 2.11
Backport 1.77
-------------- next part --------------
Index: doc/install/linux/install.pl
diff -u doc/install/linux/install.pl:1.45.2.15 doc/install/linux/install.pl:1.45.2.16
--- doc/install/linux/install.pl:1.45.2.15 Sun Mar 28 22:10:35 2021
+++ doc/install/linux/install.pl Mon Mar 29 03:50:33 2021
@@ -76,7 +76,7 @@
&mt('Stopping execution.')."\n";
exit;
} else {
- print LOG '$Id: install.pl,v 1.45.2.15 2021/03/28 22:10:35 raeburn Exp $'."\n";
+ print LOG '$Id: install.pl,v 1.45.2.16 2021/03/29 03:50:33 raeburn Exp $'."\n";
}
#
@@ -499,7 +499,7 @@
$recommended{'apache'} = &chkapache($distro,$instdir);
$recommended{'stopsrvcs'} = &chksrvcs($distro,$tostop);
($recommended{'download'},$downloadstatus,$filetouse,$production,$testing)
- = &need_download();
+ = &need_download($distro,$instdir);
return ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow,
$mysqlrestart,\%recommended,$dbh,$has_pass,$mysql_unix_socket,
$has_lcdb,$downloadstatus,$filetouse,$production,$testing,$apachefw,
@@ -1065,12 +1065,12 @@
}
sub need_download {
+ my ($distro,$instdir) = @_;
my $needs_download = 1;
my ($production,$testing,$stdsizes) = &download_versionslist();
- my ($rootdir,$localcurrent,$localtesting,%tarball,%localsize,%bymodtime,
+ my ($localcurrent,$localtesting,%tarball,%localsize,%bymodtime,
%bysize,$filetouse,$downloadstatus);
- $rootdir = '/root';
- if (opendir(my $dir,"$rootdir")) {
+ if (opendir(my $dir,$instdir)) {
my (@lcdownloads,$version);
foreach my $file (readdir($dir)) {
if ($file =~ /^loncapa\-([\w\-.]+)\.tar\.gz$/) {
@@ -1080,14 +1080,14 @@
}
if (ref($stdsizes) eq 'HASH') {
if ($version eq 'current') {
- my @stats = stat("$rootdir/$file");
+ my @stats = stat("$instdir/$file");
$localcurrent = $stats[7];
if ($localcurrent == $stdsizes->{$production}) {
$needs_download = 0;
$filetouse = $file;
}
} elsif ($version eq 'testing') {
- my @stats = stat("$rootdir/$file");
+ my @stats = stat("$instdir/$file");
$localtesting = $stats[7];
if ($localtesting == $stdsizes->{$testing}) {
$needs_download = 0;
@@ -1101,7 +1101,7 @@
if ($needs_download) {
if (@lcdownloads > 0) {
foreach my $version (@lcdownloads) {
- my @stats = stat("$rootdir/$tarball{$version}");
+ my @stats = stat("$instdir/$tarball{$version}");
my $mtime = $stats[9];
$localsize{$version} = $stats[7];
if ($mtime) {
@@ -1134,21 +1134,21 @@
my $newest = $sorted[0];
if (ref($bymodtime{$newest}) eq 'ARRAY') {
$downloadstatus =
- "Latest LON-CAPA source download in $rootdir is: ".
+ "Latest LON-CAPA source download in $instdir is: ".
join(',',@{$bymodtime{$newest}})." (downloaded ".
localtime($newest).")\n";
}
} else {
$downloadstatus =
- "The $rootdir directory already contains the latest LON-CAPA version:".
+ "The $instdir directory already contains the latest LON-CAPA version:".
"\n".$filetouse."\n"."which can be used for installation.\n";
}
} else {
- $downloadstatus = "The $rootdir directory does not appear to contain any downloaded LON-CAPA source code files which can be used for installation.\n";
+ $downloadstatus = "The $instdir directory does not appear to contain any downloaded LON-CAPA source code files which can be used for installation.\n";
}
}
} else {
- $downloadstatus = "Could not open $rootdir directory to look for existing downloads of LON-CAPA source code.\n";
+ $downloadstatus = "Could not open $instdir directory to look for existing downloads of LON-CAPA source code.\n";
}
return ($needs_download,$downloadstatus,$filetouse,$production,$testing);
}
@@ -1216,7 +1216,7 @@
$has_pass = 1;
} else {
$mysqlsetup = 'needsrestart';
- $mysql_has_wwwuser = &check_mysql_wwwuser();
+ $mysql_has_wwwuser = &check_mysql_wwwuser();
return ($mysqlsetup,$has_pass,$dbh,$mysql_has_wwwuser);
}
}
@@ -1245,14 +1245,14 @@
if ($DBI::err =~ /1045/) {
print_and_log(&mt('Incorrect password.')."\n");
}
- $mysql_has_wwwuser = &check_mysql_wwwuser();
+ $mysql_has_wwwuser = &check_mysql_wwwuser();
}
}
}
} elsif ($mysqlsetup ne 'noroot') {
print_and_log(&mt('Problem accessing MySQL.')."\n");
$mysqlsetup = 'rootfail';
- $mysql_has_wwwuser = &check_mysql_wwwuser();
+ $mysql_has_wwwuser = &check_mysql_wwwuser();
}
return ($mysqlsetup,$has_pass,$dbh,$mysql_has_wwwuser);
}
@@ -1624,26 +1624,41 @@
my $sourcetarball = $lctarball;
if ($callsub{'download'}) {
my ($production,$testing,$sizes) = &download_versionslist();
+ my $homedir = '/root';
+ if ($distro =~ /^ubuntu/) {
+ if ($instdir ne $homedir) {
+ ($homedir) = ($instdir =~ m{^(.*)/[^/]+$});
+ }
+ }
if ($production && $testing) {
if ($production ne $testing) {
print &mt('Two recent LON-CAPA releases are available: ')."\n".
&mt('1.').' '.&mt('A production release - version: [_1].',$production)."\n".
&mt('2.').' '.&mt('A testing release - version: [_1].',$testing)."\n\n".
- &mt('Download the production release? ~[Y/n~]');
+ &mt("After download, the tar.gz file will be extracted into $homedir")."\n\n".
+ &mt("Download the production release into $instdir? ~[Y/n~]");
if (&get_user_selection(1)) {
$sourcetarball = 'loncapa-'.$production.'.tar.gz';
+ print "$sourcetarball will be downloaded into $instdir\n";
} else {
print "\n".&mt('Download the testing release? ~[Y/n~]');
if (&get_user_selection(1)) {
$sourcetarball = 'loncapa-'.$testing.'.tar.gz';
+ print "$sourcetarball will be downloaded into $instdir\n";
+ } else {
+ $callsub{'download'} = 0;
}
}
}
} elsif ($production) {
print &mt('The most recent LON-CAPA release is version: [_1].',$production)."\n".
- &mt('Download the production release? ~[Y/n~]');
+ &mt("After download, the tar.gz file will be extracted into $homedir")."\n\n".
+ &mt("Download the production release into $instdir? ~[Y/n~]");
if (&get_user_selection(1)) {
$sourcetarball = 'loncapa-'.$production.'.tar.gz';
+ print "$sourcetarball will be downloaded into $instdir\n";
+ } else {
+ $callsub{'download'} = 0;
}
}
} elsif ($filetouse ne '') {
@@ -1855,6 +1870,9 @@
print "\n".&mt('Requested configuration complete.')."\n\n";
if ($have_tarball && !$updateshown) {
my ($lcdir) = ($sourcetarball =~ /^([\w.\-]+)\.tar.gz$/);
+ if ($lcdir eq 'loncapa-current') {
+ $lcdir = "loncapa-X.Y.Z (X.Y.Z should correspond to a version number like '2.11.3')";
+ }
my ($apachename,$lc_uses_systemctl,$uses_sudo);
if ($distro =~ /^(suse|sles|debian|ubuntu)([\d.]+)/) {
if (($1 eq 'suse') && ($2 < 10)) {
@@ -1895,16 +1913,26 @@
$apachestop = "systemctl stop $apachename";
}
if ($uses_sudo) {
- $lcstop = 'sudo '.$lcstop;
+ $lcstop = 'sudo '.$lcstop;
$apachestop = 'sudo '.$apachestop;
}
print &mt('If you are now ready to update LON-CAPA, enter the following commands:').
"\n\n$lcstop\n$apachestop\n";
}
- print "cd /root\n".
- "tar zxf $sourcetarball\n".
- "cd $lcdir\n".
- "./UPDATE\n";
+ my ($extract,$update);
+ my $homedir = '/root';
+ if ($uses_sudo) {
+ $extract = 'sudo ';
+ $update = 'sudo ';
+ if ($instdir ne $homedir) {
+ ($homedir) = ($instdir =~ m{^(.*)/[^/]+$});
+ }
+ }
+ $extract .= "tar zxf $sourcetarball --directory $homedir";
+ $update .= './UPDATE';
+ print "$extract\n".
+ "cd $homedir/$lcdir\n".
+ "$update\n";
if (-e '/etc/loncapa-release') {
my $lcstart = '/etc/init.d/loncontrol start';
if ($lc_uses_systemctl) {
@@ -2741,31 +2769,47 @@
print_and_log("
------------------------------------------------------------------------
-".&mt('You seem to have a version of loncapa-current.tar.gz in [_1]',$instdir)."\n".
+".&mt('You seem to have a version of [_1] in [_2]',$lctarball,$instdir)."\n".
&mt('This copy will be used and a new version will NOT be downloaded.')."\n".
&mt('If you wish, you may download a new version by executing:')."
-wget http://install.loncapa.org/versions/loncapa-current.tar.gz
+wget http://install.loncapa.org/versions/$lctarball
------------------------------------------------------------------------
");
}
##
- ## untar loncapa.tar.gz
+ ## untar loncapa-X.Y.Z.tar.gz
##
if ($have_tarball) {
+ my $homedir = '/root';
+ my ($targetdir,$chdircmd,$updatecmd);
+ if (($distro =~ /^ubuntu/) && ($instdir ne $homedir)) {
+ ($homedir) = ($instdir =~ m{^(.*)/[^/]+$});
+ $updatecmd = 'sudo ./UPDATE';
+ } else {
+ $updatecmd = './UPDATE';
+ }
print_and_log(&mt('Extracting LON-CAPA source files')."\n");
- writelog(`cd ~root; tar zxf $instdir/$lctarball`);
+ if (-e $homedir) {
+ writelog(`tar zxf $instdir/$lctarball --directory $homedir`);
+ $targetdir = $homedir;
+ } else {
+ writelog(`tar zxf $instdir/$lctarball`);
+ $targetdir = $instdir;
+ }
+ if ($lctarball =~ /^loncapa\-(\d+\.\d+\.\d+(?:|[^.]+))\.tar\.gz$/) {
+ $chdircmd = "cd $targetdir/loncapa-".$1;
+ } else {
+ $chdircmd = "cd $targetdir/loncapa-X.Y.Z (X.Y.Z should correspond to a version number like '2.11.3')";
+ }
print_and_log("\n");
print &mt('LON-CAPA source files extracted.')."\n".
- &mt('It remains for you to execute the following commands:')."
-
-cd /root/loncapa-X.Y.Z (X.Y.Z should correspond to a version number like '2.11.3')
-./UPDATE
-
-".&mt('If you have any trouble, please see [_1] and [_2]',
- 'http://install.loncapa.org/','http://help.loncapa.org/')."\n";
+ &mt('It remains for you to execute the following commands:').
+ "\n$chdircmd\n$updatecmd\n".
+ &mt('If you have any trouble, please see [_1] and [_2]',
+ 'http://install.loncapa.org/','http://help.loncapa.org/')."\n";
$updateshown = 1;
}
return ($have_tarball,$updateshown);
More information about the LON-CAPA-cvs
mailing list