version 1.73, 2021/03/18 21:40:03
|
version 1.81, 2021/12/21 14:31:52
|
Line 212 sub get_distro {
|
Line 212 sub get_distro {
|
$distro = 'rhes'.$1; |
$distro = 'rhes'.$1; |
$updatecmd = 'dnf install LONCAPA-prerequisites'; |
$updatecmd = 'dnf install LONCAPA-prerequisites'; |
$installnow = 'dnf -y install LONCAPA-prerequisites'; |
$installnow = 'dnf -y install LONCAPA-prerequisites'; |
} elsif ($versionstring =~ /CentOS(?:| Linux| Stream) release (\d+)/) { |
} elsif ($versionstring =~ /CentOS(| Linux| Stream) release (\d+)/) { |
$distro = 'centos'.$1; |
$distro = 'centos'.$2; |
|
if ($1 eq ' Stream') { |
|
$distro .= '-stream'; |
|
} |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
} elsif ($versionstring =~ /Scientific Linux (?:SL )?release ([\d.]+) /) { |
} elsif ($versionstring =~ /Scientific Linux (?:SL )?release ([\d.]+) /) { |
Line 222 sub get_distro {
|
Line 225 sub get_distro {
|
$distro = 'scientific'.$ver; |
$distro = 'scientific'.$ver; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
|
} elsif ($versionstring =~ /Rocky Linux release ([\d.]+)/) { |
|
my $ver = $1; |
|
$ver =~ s/\.\d+$//; |
|
$distro = 'rocky'.$ver; |
|
$updatecmd = 'dnf install LONCAPA-prerequisites'; |
|
$installnow = 'dnf -y install LONCAPA-prerequisites'; |
|
} elsif ($versionstring =~ /AlmaLinux release ([\d.]+) /) { |
|
my $ver = $1; |
|
$ver =~ s/\.\d+$//; |
|
$distro = 'alma'.$ver; |
|
$updatecmd = 'dnf install LONCAPA-prerequisites'; |
|
$installnow = 'dnf -y install LONCAPA-prerequisites'; |
} else { |
} else { |
print &mt('Unable to interpret [_1] to determine system type.', |
print &mt('Unable to interpret [_1] to determine system type.', |
'/etc/redhat-release')."\n"; |
'/etc/redhat-release')."\n"; |
Line 585 sub check_required {
|
Line 600 sub check_required {
|
$nochgstd,$nochgint) = &chkapachessl($distro,$instdir,$hostname,$hostip); |
$nochgstd,$nochgint) = &chkapachessl($distro,$instdir,$hostname,$hostip); |
$recommended{'stopsrvcs'} = &chksrvcs($distro,$tostop); |
$recommended{'stopsrvcs'} = &chksrvcs($distro,$tostop); |
($recommended{'download'},$downloadstatus,$filetouse,$production,$testing) |
($recommended{'download'},$downloadstatus,$filetouse,$production,$testing) |
= &need_download(); |
= &need_download($distro,$instdir); |
return ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow, |
return ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow, |
$mysqlrestart,\%recommended,$dbh,$has_pass,$mysql_unix_socket, |
$mysqlrestart,\%recommended,$dbh,$has_pass,$mysql_unix_socket, |
$has_lcdb,$downloadstatus,$filetouse,$production,$testing,$apachefw, |
$has_lcdb,$downloadstatus,$filetouse,$production,$testing,$apachefw, |
Line 616 sub check_mysql_running {
|
Line 631 sub check_mysql_running {
|
if ($1 >= 19) { |
if ($1 >= 19) { |
$mysqldaemon ='mariadb'; |
$mysqldaemon ='mariadb'; |
} |
} |
} elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { |
if ($1 >= 34) { |
|
$process = 'mariadb'; |
|
} |
|
} elsif ($distro =~ /^(?:centos|rhes|scientific|oracle|rocky|alma)(\d+)/) { |
if ($1 >= 7) { |
if ($1 >= 7) { |
$mysqldaemon ='mariadb'; |
$mysqldaemon ='mariadb'; |
$process = 'mysqld'; |
$process = 'mysqld'; |
Line 763 sub chkconfig {
|
Line 781 sub chkconfig {
|
if ($version >= 26) { |
if ($version >= 26) { |
$daemon{'ntp'} = 'chronyd'; |
$daemon{'ntp'} = 'chronyd'; |
} |
} |
} elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { |
} elsif ($distro =~ /^(?:centos|rhes|scientific|oracle|rocky|alma)(\d+)/) { |
my $version = $1; |
my $version = $1; |
if ($version >= 7) { |
if ($version >= 7) { |
$uses_systemctl{'ntp'} = 1; |
$uses_systemctl{'ntp'} = 1; |
Line 879 sub uses_firewalld {
|
Line 897 sub uses_firewalld {
|
if ($1 >= 18) { |
if ($1 >= 18) { |
$checkfirewalld = 1; |
$checkfirewalld = 1; |
} |
} |
} elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { |
} elsif ($distro =~ /^(?:centos|rhes|scientific|oracle|rocky|alma)(\d+)/) { |
if ($1 >= 7) { |
if ($1 >= 7) { |
$checkfirewalld = 1; |
$checkfirewalld = 1; |
} |
} |
} |
} |
if ($checkfirewalld) { |
if ($checkfirewalld) { |
my ($loaded,$active); |
my ($loaded,$active); |
if (open(PIPE,"systemctl status firewalld |")) { |
if (open(PIPE,"systemctl status firewalld 2>/dev/null |")) { |
while (<PIPE>) { |
while (<PIPE>) { |
chomp(); |
chomp(); |
if (/^\s*Loaded:\s+(\w+)/) { |
if (/^\s*Loaded:\s+(\w+)/) { |
$loaded = $1; |
$loaded = $1; |
} |
} |
if (/^\s*Active\s+(\w+)/) { |
if (/^\s*Active:\s+(\w+)/) { |
$active = $1; |
$active = $1; |
} |
} |
} |
} |
Line 1072 sub chkapache {
|
Line 1090 sub chkapache {
|
} else { |
} else { |
my $configfile = 'httpd.conf'; |
my $configfile = 'httpd.conf'; |
my $mpmfile = 'mpm.conf'; |
my $mpmfile = 'mpm.conf'; |
if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { |
if ($distro =~ /^(?:centos|rhes|scientific|oracle|rocky|alma)(\d+)/) { |
if ($1 >= 7) { |
if ($1 >= 7) { |
$configfile = 'apache2.4/httpd.conf'; |
$configfile = 'apache2.4/httpd.conf'; |
} elsif ($1 > 5) { |
} elsif ($1 > 5) { |
Line 1440 sub chksrvcs {
|
Line 1458 sub chksrvcs {
|
} |
} |
|
|
sub need_download { |
sub need_download { |
|
my ($distro,$instdir) = @_; |
my $needs_download = 1; |
my $needs_download = 1; |
my ($production,$testing,$stdsizes) = &download_versionslist(); |
my ($production,$testing,$stdsizes) = &download_versionslist(); |
my ($rootdir,$localcurrent,$localtesting,%tarball,%localsize,%bymodtime, |
my ($localcurrent,$localtesting,%tarball,%localsize,%bymodtime, |
%bysize,$filetouse,$downloadstatus); |
%bysize,$filetouse,$downloadstatus); |
$rootdir = '/root'; |
if (opendir(my $dir,$instdir)) { |
if (opendir(my $dir,"$rootdir")) { |
|
my (@lcdownloads,$version); |
my (@lcdownloads,$version); |
foreach my $file (readdir($dir)) { |
foreach my $file (readdir($dir)) { |
if ($file =~ /^loncapa\-([\w\-.]+)\.tar\.gz$/) { |
if ($file =~ /^loncapa\-([\w\-.]+)\.tar\.gz$/) { |
Line 1455 sub need_download {
|
Line 1473 sub need_download {
|
} |
} |
if (ref($stdsizes) eq 'HASH') { |
if (ref($stdsizes) eq 'HASH') { |
if ($version eq 'current') { |
if ($version eq 'current') { |
my @stats = stat("$rootdir/$file"); |
my @stats = stat("$instdir/$file"); |
$localcurrent = $stats[7]; |
$localcurrent = $stats[7]; |
if ($localcurrent == $stdsizes->{$production}) { |
if ($localcurrent == $stdsizes->{$production}) { |
$needs_download = 0; |
$needs_download = 0; |
$filetouse = $file; |
$filetouse = $file; |
} |
} |
} elsif ($version eq 'testing') { |
} elsif ($version eq 'testing') { |
my @stats = stat("$rootdir/$file"); |
my @stats = stat("$instdir/$file"); |
$localtesting = $stats[7]; |
$localtesting = $stats[7]; |
if ($localtesting == $stdsizes->{$testing}) { |
if ($localtesting == $stdsizes->{$testing}) { |
$needs_download = 0; |
$needs_download = 0; |
Line 1476 sub need_download {
|
Line 1494 sub need_download {
|
if ($needs_download) { |
if ($needs_download) { |
if (@lcdownloads > 0) { |
if (@lcdownloads > 0) { |
foreach my $version (@lcdownloads) { |
foreach my $version (@lcdownloads) { |
my @stats = stat("$rootdir/$tarball{$version}"); |
my @stats = stat("$instdir/$tarball{$version}"); |
my $mtime = $stats[9]; |
my $mtime = $stats[9]; |
$localsize{$version} = $stats[7]; |
$localsize{$version} = $stats[7]; |
if ($mtime) { |
if ($mtime) { |
Line 1509 sub need_download {
|
Line 1527 sub need_download {
|
my $newest = $sorted[0]; |
my $newest = $sorted[0]; |
if (ref($bymodtime{$newest}) eq 'ARRAY') { |
if (ref($bymodtime{$newest}) eq 'ARRAY') { |
$downloadstatus = |
$downloadstatus = |
"Latest LON-CAPA source download in $rootdir is: ". |
"Latest LON-CAPA source download in $instdir is: ". |
join(',',@{$bymodtime{$newest}})." (downloaded ". |
join(',',@{$bymodtime{$newest}})." (downloaded ". |
localtime($newest).")\n"; |
localtime($newest).")\n"; |
} |
} |
} else { |
} else { |
$downloadstatus = |
$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"; |
"\n".$filetouse."\n"."which can be used for installation.\n"; |
} |
} |
} else { |
} 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 { |
} 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); |
return ($needs_download,$downloadstatus,$filetouse,$production,$testing); |
} |
} |
Line 2003 my $lctarball = 'loncapa-current.tar.gz'
|
Line 2021 my $lctarball = 'loncapa-current.tar.gz'
|
my $sourcetarball = $lctarball; |
my $sourcetarball = $lctarball; |
if ($callsub{'download'}) { |
if ($callsub{'download'}) { |
my ($production,$testing,$sizes) = &download_versionslist(); |
my ($production,$testing,$sizes) = &download_versionslist(); |
|
my $homedir = '/root'; |
|
if ($distro =~ /^ubuntu/) { |
|
if ($instdir ne $homedir) { |
|
($homedir) = ($instdir =~ m{^(.*)/[^/]+$}); |
|
} |
|
} |
if ($production && $testing) { |
if ($production && $testing) { |
if ($production ne $testing) { |
if ($production ne $testing) { |
print &mt('Two recent LON-CAPA releases are available: ')."\n". |
print &mt('Two recent LON-CAPA releases are available: ')."\n". |
&mt('1.').' '.&mt('A production release - version: [_1].',$production)."\n". |
&mt('1.').' '.&mt('A production release - version: [_1].',$production)."\n". |
&mt('2.').' '.&mt('A testing release - version: [_1].',$testing)."\n\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)) { |
if (&get_user_selection(1)) { |
$sourcetarball = 'loncapa-'.$production.'.tar.gz'; |
$sourcetarball = 'loncapa-'.$production.'.tar.gz'; |
|
print "$sourcetarball will be downloaded into $instdir\n"; |
} else { |
} else { |
print "\n".&mt('Download the testing release? ~[Y/n~]'); |
print "\n".&mt('Download the testing release? ~[Y/n~]'); |
if (&get_user_selection(1)) { |
if (&get_user_selection(1)) { |
$sourcetarball = 'loncapa-'.$testing.'.tar.gz'; |
$sourcetarball = 'loncapa-'.$testing.'.tar.gz'; |
|
print "$sourcetarball will be downloaded into $instdir\n"; |
|
} else { |
|
$callsub{'download'} = 0; |
} |
} |
} |
} |
} |
} |
} elsif ($production) { |
} elsif ($production) { |
print &mt('The most recent LON-CAPA release is version: [_1].',$production)."\n". |
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)) { |
if (&get_user_selection(1)) { |
$sourcetarball = 'loncapa-'.$production.'.tar.gz'; |
$sourcetarball = 'loncapa-'.$production.'.tar.gz'; |
|
print "$sourcetarball will be downloaded into $instdir\n"; |
|
} else { |
|
$callsub{'download'} = 0; |
} |
} |
} |
} |
} elsif ($filetouse ne '') { |
} elsif ($filetouse ne '') { |
Line 2047 if ($callsub{'pwauth'}) {
|
Line 2080 if ($callsub{'pwauth'}) {
|
if ($callsub{'mysql'}) { |
if ($callsub{'mysql'}) { |
if ($dbh) { |
if ($dbh) { |
&setup_mysql($callsub{'mysqlperms'},$dbh,$has_pass, |
&setup_mysql($callsub{'mysqlperms'},$dbh,$has_pass, |
$mysql_unix_socket,$has_lcdb); |
$mysql_unix_socket,$has_lcdb,$distro); |
} else { |
} else { |
print &mt('Unable to configure MySQL because access is denied.')."\n"; |
print &mt('Unable to configure MySQL because access is denied.')."\n"; |
} |
} |
Line 2170 if ($callsub{'firewall'}) {
|
Line 2203 if ($callsub{'firewall'}) {
|
if (keys(%added) > 0) { |
if (keys(%added) > 0) { |
print &mt('Firewall configured to allow access for: [_1].', |
print &mt('Firewall configured to allow access for: [_1].', |
join(', ',sort(keys(%added))))."\n"; |
join(', ',sort(keys(%added))))."\n"; |
system('firewall-cmd --reload'); |
system('firewall-cmd --reload'); |
} |
} |
if ($current{'http'} || $current{'https'}) { |
if ($current{'http'} || $current{'https'}) { |
print &mt('Firewall already configured to allow access for:[_1].', |
print &mt('Firewall already configured to allow access for:[_1].', |
Line 2207 if ($callsub{'firewall'}) {
|
Line 2240 if ($callsub{'firewall'}) {
|
'ssh, http')."\n"; |
'ssh, http')."\n"; |
} else { |
} else { |
my $version; |
my $version; |
if ($distro =~ /^(redhat|centos)(\d+)$/) { |
if ($distro =~ /^(redhat|centos)(\d+)/) { |
$version = $1; |
$version = $1; |
} |
} |
if ($version > 5) { |
if ($version > 5) { |
Line 2238 if ($callsub{'download'}) {
|
Line 2271 if ($callsub{'download'}) {
|
print &mt('LON-CAPA is available for download from: [_1]', |
print &mt('LON-CAPA is available for download from: [_1]', |
'http://install.loncapa.org/')."\n"; |
'http://install.loncapa.org/')."\n"; |
if (!-e '/etc/loncapa-release') { |
if (!-e '/etc/loncapa-release') { |
&print_and_log(&mt('LON-CAPA is not yet installed on your system.'). |
&print_and_log(&mt('LON-CAPA is not yet installed on your system.')."\n\n"; |
"\n\n". |
unless ($filetouse) { |
&mt('You may retrieve the source for LON-CAPA by executing:')."\n". |
&print_and_log(&mt('You may retrieve the source for LON-CAPA by executing:')."\n". |
"wget http://install.loncapa.org/versions/$lctarball\n"); |
"wget http://install.loncapa.org/versions/$lctarball\n"); |
|
} |
} else { |
} else { |
my $currentversion; |
my $currentversion; |
if (open(my $fh,"</etc/loncapa-release")) { |
if (open(my $fh,"</etc/loncapa-release")) { |
Line 2270 if ($callsub{'download'}) {
|
Line 2304 if ($callsub{'download'}) {
|
print "\n".&mt('Requested configuration complete.')."\n\n"; |
print "\n".&mt('Requested configuration complete.')."\n\n"; |
if ($have_tarball && !$updateshown) { |
if ($have_tarball && !$updateshown) { |
my ($lcdir) = ($sourcetarball =~ /^([\w.\-]+)\.tar.gz$/); |
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); |
my ($apachename,$lc_uses_systemctl,$uses_sudo); |
if ($distro =~ /^(suse|sles|debian|ubuntu)([\d.]+)/) { |
if ($distro =~ /^(suse|sles|debian|ubuntu)([\d.]+)/) { |
if (($1 eq 'suse') && ($2 < 10)) { |
if (($1 eq 'suse') && ($2 < 10)) { |
Line 2284 if ($have_tarball && !$updateshown) {
|
Line 2321 if ($have_tarball && !$updateshown) {
|
if ($1 > 6) { |
if ($1 > 6) { |
$lc_uses_systemctl = 1; |
$lc_uses_systemctl = 1; |
} |
} |
} elsif ($distro =~ /^(?:rhes|centos)(\d+)$/) { |
} elsif ($distro =~ /^(?:rhes|centos|rocky|alma)(\d+)/) { |
if ($1 > 7) { |
if ($1 > 7) { |
$lc_uses_systemctl = 1; |
$lc_uses_systemctl = 1; |
} |
} |
Line 2314 if ($have_tarball && !$updateshown) {
|
Line 2351 if ($have_tarball && !$updateshown) {
|
$apachestop = 'sudo '.$apachestop; |
$apachestop = 'sudo '.$apachestop; |
} |
} |
print &mt('If you are now ready to update LON-CAPA, enter the following commands:'). |
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". |
my ($extract,$update); |
"tar zxf $sourcetarball\n". |
my $homedir = '/root'; |
"cd $lcdir\n". |
if ($uses_sudo) { |
"./UPDATE\n"; |
$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') { |
if (-e '/etc/loncapa-release') { |
my $lcstart = '/etc/init.d/loncontrol start'; |
my $lcstart = '/etc/init.d/loncontrol start'; |
if ($lc_uses_systemctl) { |
if ($lc_uses_systemctl) { |
Line 2518 sub kill_extra_services {
|
Line 2565 sub kill_extra_services {
|
} |
} |
|
|
sub setup_mysql { |
sub setup_mysql { |
my ($setup_mysql_permissions,$dbh,$has_pass,$mysql_unix_socket,$has_lcdb) = @_; |
my ($setup_mysql_permissions,$dbh,$has_pass,$mysql_unix_socket,$has_lcdb,$distro) = @_; |
my @mysql_lc_commands; |
my @mysql_lc_commands; |
unless ($has_lcdb) { |
unless ($has_lcdb) { |
push(@mysql_lc_commands,"CREATE DATABASE loncapa"); |
my $createcmd = 'CREATE DATABASE loncapa'; |
|
if ($distro =~ /^sles(\d+)/) { |
|
if ($1 > 11) { |
|
$createcmd .= ' CHARACTER SET utf8 COLLATE utf8_general_ci'; |
|
} |
|
} elsif ($distro =~ /^ubuntu(\d+)/) { |
|
if ($1 > 16) { |
|
$createcmd .= ' CHARACTER SET latin1 COLLATE latin1_swedish_ci'; |
|
} |
|
} |
|
push(@mysql_lc_commands,$createcmd); |
} |
} |
push(@mysql_lc_commands,"USE loncapa"); |
push(@mysql_lc_commands,"USE loncapa"); |
push(@mysql_lc_commands,qq{ |
push(@mysql_lc_commands,qq{ |
Line 2567 sub setup_mysql_permissions {
|
Line 2624 sub setup_mysql_permissions {
|
if ($usescreate) { |
if ($usescreate) { |
@mysql_commands = ("CREATE USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); |
@mysql_commands = ("CREATE USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); |
} elsif ($usesauth) { |
} elsif ($usesauth) { |
@mysql_commands = ("INSERT user (Host, User, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www','','','','')"); |
@mysql_commands = ("INSERT user (Host, User, ssl_cipher, x509_issuer, x509_subject, authentication_string) VALUES('localhost','www','','','','')", |
|
"FLUSH PRIVILEGES"); |
if ($is_mariadb) { |
if ($is_mariadb) { |
push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); |
push(@mysql_commands,"ALTER USER 'www'\@'localhost' IDENTIFIED BY 'localhostkey'"); |
} else { |
} else { |
Line 2696 sub get_mysql_version {
|
Line 2754 sub get_mysql_version {
|
sub copy_httpd_conf { |
sub copy_httpd_conf { |
my ($instdir,$distro,$hostname) = @_; |
my ($instdir,$distro,$hostname) = @_; |
my $configfile = 'httpd.conf'; |
my $configfile = 'httpd.conf'; |
if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { |
if ($distro =~ /^(?:centos|rhes|scientific|oracle|rocky|alma)(\d+)/) { |
if ($1 >= 7) { |
if ($1 >= 7) { |
$configfile = 'apache2.4/httpd.conf'; |
$configfile = 'apache2.4/httpd.conf'; |
} elsif ($1 > 5) { |
} elsif ($1 > 5) { |
Line 2743 sub copy_mpm_conf {
|
Line 2801 sub copy_mpm_conf {
|
print_and_log("\n"); |
print_and_log("\n"); |
} else { |
} else { |
my $logfail; |
my $logfail; |
if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { |
if ($distro =~ /^(?:centos|rhes|scientific|oracle|rocky|alma)(\d+)/) { |
if ($1 > 7) { |
if ($1 > 7) { |
$logfail = 1; |
$logfail = 1; |
} |
} |
Line 3622 sub download_loncapa {
|
Line 3680 sub download_loncapa {
|
print_and_log(" |
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('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:')." |
&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) { |
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"); |
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_and_log("\n"); |
print &mt('LON-CAPA source files extracted.')."\n". |
print &mt('LON-CAPA source files extracted.')."\n". |
&mt('It remains for you to execute the following commands:')." |
&mt('It remains for you to execute the following commands:'). |
|
"\n$chdircmd\n$updatecmd\n". |
cd /root/loncapa-X.Y.Z (X.Y.Z should correspond to a version number like '2.11.3') |
&mt('If you have any trouble, please see [_1] and [_2]', |
./UPDATE |
'http://install.loncapa.org/','http://help.loncapa.org/')."\n"; |
|
|
".&mt('If you have any trouble, please see [_1] and [_2]', |
|
'http://install.loncapa.org/','http://help.loncapa.org/')."\n"; |
|
$updateshown = 1; |
$updateshown = 1; |
} |
} |
return ($have_tarball,$updateshown); |
return ($have_tarball,$updateshown); |