[LON-CAPA-cvs] cvs: doc /install/linux install.pl
raeburn
raeburn at source.lon-capa.org
Sun Mar 28 23:49:58 EDT 2021
raeburn Mon Mar 29 03:49:58 2021 EDT
Modified files:
/doc/install/linux install.pl
Log:
- loncapa-X.Y.Z-tar.gz files are downloaded into installation directory.
- loncapa-X.Y.Z directory in tarball will be extracted into parent directory
of installation directory, if distro is Ubuntu, and into /root otherwise.
-------------- next part --------------
Index: doc/install/linux/install.pl
diff -u doc/install/linux/install.pl:1.76 doc/install/linux/install.pl:1.77
--- doc/install/linux/install.pl:1.76 Sun Mar 28 21:51:22 2021
+++ doc/install/linux/install.pl Mon Mar 29 03:49:58 2021
@@ -78,7 +78,7 @@
&mt('Stopping execution.')."\n";
exit;
} else {
- print LOG '$Id: install.pl,v 1.76 2021/03/28 21:51:22 raeburn Exp $'."\n";
+ print LOG '$Id: install.pl,v 1.77 2021/03/29 03:49:58 raeburn Exp $'."\n";
}
#
@@ -585,7 +585,7 @@
$nochgstd,$nochgint) = &chkapachessl($distro,$instdir,$hostname,$hostip);
$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,
@@ -1440,12 +1440,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$/) {
@@ -1455,14 +1455,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;
@@ -1476,7 +1476,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) {
@@ -1509,21 +1509,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);
}
@@ -2003,26 +2003,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 '') {
@@ -2170,7 +2185,7 @@
if (keys(%added) > 0) {
print &mt('Firewall configured to allow access for: [_1].',
join(', ',sort(keys(%added))))."\n";
- system('firewall-cmd --reload');
+ system('firewall-cmd --reload');
}
if ($current{'http'} || $current{'https'}) {
print &mt('Firewall already configured to allow access for:[_1].',
@@ -2238,10 +2253,11 @@
print &mt('LON-CAPA is available for download from: [_1]',
'http://install.loncapa.org/')."\n";
if (!-e '/etc/loncapa-release') {
- &print_and_log(&mt('LON-CAPA is not yet installed on your system.').
- "\n\n".
- &mt('You may retrieve the source for LON-CAPA by executing:')."\n".
- "wget http://install.loncapa.org/versions/$lctarball\n");
+ &print_and_log(&mt('LON-CAPA is not yet installed on your system.')."\n\n";
+ unless ($filetouse) {
+ &print_and_log(&mt('You may retrieve the source for LON-CAPA by executing:')."\n".
+ "wget http://install.loncapa.org/versions/$lctarball\n");
+ }
} else {
my $currentversion;
if (open(my $fh,"</etc/loncapa-release")) {
@@ -2270,6 +2286,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)) {
@@ -2314,12 +2333,22 @@
$apachestop = 'sudo '.$apachestop;
}
print &mt('If you are now ready to update LON-CAPA, enter the following commands:').
- "\n\n$lcstop\n$apachestop\n";
+ "\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) {
@@ -3633,31 +3662,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