[LON-CAPA-cvs] cvs: doc(version_2_11_X) /install/linux install.pl
raeburn
raeburn at source.lon-capa.org
Sun Jun 30 16:10:29 EDT 2024
raeburn Sun Jun 30 20:10:29 2024 EDT
Modified files: (Branch: version_2_11_X)
/doc/install/linux install.pl
Log:
- For 2.11
Backport part of 1.77 omitted in earlier backport (1.45.2.16) and backport
1.83, 1.84, 1.85, 1.86, 1.87, 1.88, 1.89, 1.90.
-------------- next part --------------
Index: doc/install/linux/install.pl
diff -u doc/install/linux/install.pl:1.45.2.18 doc/install/linux/install.pl:1.45.2.19
--- doc/install/linux/install.pl:1.45.2.18 Tue Dec 21 16:07:53 2021
+++ doc/install/linux/install.pl Sun Jun 30 20:10:29 2024
@@ -76,7 +76,7 @@
&mt('Stopping execution.')."\n";
exit;
} else {
- print LOG '$Id: install.pl,v 1.45.2.18 2021/12/21 16:07:53 raeburn Exp $'."\n";
+ print LOG '$Id: install.pl,v 1.45.2.19 2024/06/30 20:10:29 raeburn Exp $'."\n";
}
#
@@ -489,7 +489,7 @@
if ($mysqlsetup eq 'needsrestart') {
$mysqlrestart = '';
if ($distro eq 'ubuntu') {
- $mysqlrestart = 'sudo ';
+ $mysqlrestart = 'sudo ';
}
$mysqlrestart .= 'service mysql restart';
return ($distro,$gotprereqs,$localecmd,$packagecmd,$updatecmd,$installnow,$mysqlrestart);
@@ -535,6 +535,14 @@
$process = 'mysqld';
$proc_owner = 'mysql';
}
+ } elsif ($distro =~ /^debian(\w+)/) {
+ if ($1 >= 10) {
+ $process = 'mysql';
+ $proc_owner = 'mysql';
+ }
+ if ($1 >= 11) {
+ $mysqldaemon = 'mariadb';
+ }
} elsif ($distro =~ /^fedora(\d+)/) {
if ($1 >= 16) {
$process = 'mysqld';
@@ -554,6 +562,9 @@
$proc_owner = 'mysql';
$use_systemctl = 1;
}
+ if ($1 >= 9) {
+ $process = 'mariadb';
+ }
} elsif ($distro =~ /^sles(\d+)/) {
if ($1 >= 12) {
$use_systemctl = 1;
@@ -674,9 +685,13 @@
if (($distro =~ /^ubuntu/) && ($version <= 8)) {
$daemon{'cups'} = 'cupsys';
}
- if (($distro =~ /^ubuntu/) && ($version >= 18)) {
+ if ((($distro =~ /^ubuntu/) && ($version >= 18)) ||
+ (($distro =~ /^debian/) && ($version >= 10))) {
$daemon{'ntp'} = 'chrony';
}
+ if (($distro =~ /^debian/) && ($version >= 11)) {
+ $daemon{'mysql'} = 'mariadb';
+ }
} elsif ($distro =~ /^fedora(\d+)/) {
my $version = $1;
if ($version >= 15) {
@@ -902,7 +917,8 @@
my $distname = $1;
my $version = $2;
my ($stdconf,$stdsite);
- if (($distname eq 'ubuntu') && ($version > 12)) {
+ if ((($distname eq 'ubuntu') && ($version > 12)) ||
+ (($distname eq 'debian') && ($version >= 10))) {
$stdconf = "$instdir/debian-ubuntu/ubuntu14/loncapa_conf";
$stdsite = "$instdir/debian-ubuntu/ubuntu14/loncapa_sites";
} else {
@@ -913,7 +929,8 @@
print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";
} else {
my ($configfile,$sitefile);
- if (($distname eq 'ubuntu') && ($version > 12)) {
+ if ((($distname eq 'ubuntu') && ($version > 12)) ||
+ (($distname eq 'debian') && ($version >= 10))) {
$sitefile = '/etc/apache2/sites-available/loncapa.conf';
$configfile = '/etc/apache2/conf-available/loncapa.conf';
} else {
@@ -929,7 +946,8 @@
}
}
}
- if ((!$fixapache) && ($distname eq 'ubuntu') && ($version > 12)) {
+ if ((!$fixapache) && ((($distname eq 'ubuntu') && ($version > 12)) ||
+ (($distname eq 'debian') && ($version >= 10)))) {
if (($sitefile ne '') && (-e $sitefile) && (-e $stdsite)) {
if (open(PIPE, "diff --brief $stdsite $sitefile |")) {
my $diffres = <PIPE>;
@@ -949,7 +967,7 @@
}
}
}
- if ((!$fixapache) && ($distname eq 'ubuntu')) {
+ if ((!$fixapache) && (($distname eq 'ubuntu') || ($distname eq 'debian'))) {
my $sitestatus = "/etc/apache2/mods-available/status.conf";
my $stdstatus = "$instdir/debian-ubuntu/status.conf";
if ((-e $stdstatus) && (-e $sitestatus)) {
@@ -1175,8 +1193,8 @@
my ($instdir,$dsn,$distro) = @_;
my ($mysqlsetup,$has_pass,$mysql_unix_socket,$mysql_has_wwwuser);
my $dbh = DBI->connect($dsn,'root','',{'PrintError'=>0});
- my ($mysqlversion,$mysqlsubver,$mysqlname) = &get_mysql_version();
- if (($mysqlname =~ /^MariaDB/i) && ($mysqlversion >= 10.4)) {
+ my ($mysqlversion,$mysqlminorversion,$mysqlsubver,$mysqlname) = &get_mysql_version();
+ if (($mysqlname =~ /^MariaDB/i) && (($mysqlversion == 10 && $mysqlminorversion >= 4) || ($mysqlversion >= 11))) {
if ($dbh) {
my $sth = $dbh->prepare("SELECT Priv FROM mysql.global_priv WHERE (User = 'root' AND Host ='localhost')");
$sth->execute();
@@ -1197,7 +1215,7 @@
}
if ($dbh) {
$mysqlsetup = 'noroot';
- if (($mysqlname !~ /^MariaDB/i) && ($mysqlversion >= 5.7)) {
+ if (($mysqlname !~ /^MariaDB/i) && (($mysqlversion == 5 && $mysqlminorversion >= 7) || ($mysqlversion >= 6))) {
my $sth = $dbh->prepare("SELECT plugin from mysql.user where User='root'");
$sth->execute();
while (my $priv = $sth->fetchrow_array) {
@@ -1322,14 +1340,30 @@
sub firewall_is_active {
if (-e '/proc/net/ip_tables_names') {
+ my $status;
if (open(PIPE,'cat /proc/net/ip_tables_names |grep filter |')) {
- my $status = <PIPE>;
+ $status = <PIPE>;
close(PIPE);
chomp($status);
if ($status eq 'filter') {
return 1;
}
}
+ unless ($status) {
+ if (open(PIPE,'nft list tables |')) {
+ while(<PIPE>) {
+ chomp();
+ if (/filter$/) {
+ $status = 1;
+ last;
+ }
+ }
+ close(PIPE);
+ if ($status) {
+ return 1;
+ }
+ }
+ }
}
return 0;
}
@@ -1856,10 +1890,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")) {
@@ -1914,6 +1949,10 @@
$lc_uses_systemctl = 1;
}
$uses_sudo = 1;
+ } elsif ($distro =~ /^debian(\d+)$/) {
+ if ($1 >= 10) {
+ $lc_uses_systemctl = 1;
+ }
} elsif ($distro =~ /^sles(\d+)$/) {
if ($1 > 12) {
$lc_uses_systemctl = 1;
@@ -1952,7 +1991,7 @@
"cd $homedir/$lcdir\n".
"$update\n";
if (-e '/etc/loncapa-release') {
- my $lcstart = '/etc/init.d/loncontrol start';
+ my $lcstart = '/etc/init.d/loncontrol start';
if ($lc_uses_systemctl) {
$lcstart = '/home/httpd/perl/loncontrol start';
}
@@ -2034,6 +2073,29 @@
> #define SERVER_UIDS $num /* user "www" */
ENDPATCH
+ my $patch_code = <<"ENDPATCH";
+127a128
+> #include <string.h>
+214a216
+> #include <time.h>
+566c568
+< check_fails()
+---
+> int check_fails()
+589c591
+< log_failure()
+---
+> void log_failure()
+629c631
+< snooze(int seconds)
+---
+> void snooze(int seconds)
+653c655
+< main(int argc, char **argv)
+---
+> int main(int argc, char **argv)
+ENDPATCH
+
if (! -e "/usr/bin/patch") {
print_and_log(&mt('You must install the software development tools package: [_1], when installing Linux.',"'patch'")."\n");
print_and_log(&mt('Authentication installation not completed.')."\n");
@@ -2044,9 +2106,17 @@
return;
}
my $dir = "/tmp/pwauth-2.2.8";
+ my $patchedok;
if (open(PATCH,"| patch $dir/config.h")) {
print PATCH $patch;
close(PATCH);
+ if (open(PATCH,"| patch $dir/pwauth.c")) {
+ print PATCH $patch_code;
+ close(PATCH);
+ $patchedok = 1;
+ }
+ }
+ if ($patchedok) {
print_and_log("\n");
##
## Compile patched pwauth
@@ -2117,7 +2187,8 @@
&print_and_log(&mt('Removing [_1] from startup.',$service)."\n");
if ($distro =~ /^(?:debian|ubuntu)(\d+)/) {
my $version = $1;
- if (($distro =~ /^ubuntu/) && ($version > 16)) {
+ if ((($distro =~ /^ubuntu/) && ($version > 16)) ||
+ (($distro =~ /^debian/) && ($version >= 10))) {
if (ref($uses_systemctl) eq 'HASH') {
if ($uses_systemctl->{$service}) {
if (`systemctl is-enabled $service`) {
@@ -2187,21 +2258,23 @@
sub setup_mysql_permissions {
my ($dbh,$has_pass,$mysql_unix_socket, at mysql_lc_commands) = @_;
- my ($mysqlversion,$mysqlsubver,$mysqlname) = &get_mysql_version();
+ my ($mysqlversion,$mysqlminorversion,$mysqlsubver,$mysqlname) = &get_mysql_version();
my ($usescreate,$usesauth,$is_mariadb,$hasauthcol, at mysql_commands);
if ($mysqlname =~ /^MariaDB/i) {
$is_mariadb = 1;
- if ($mysqlversion >= 10.4) {
+ if ((($mysqlversion == 10) && ($mysqlminorversion >= 4)) || ($mysqlversion >= 11)) {
$usescreate = 1;
- } elsif ($mysqlversion >= 10.2) {
+ } elsif (($mysqlversion == 10) && ($mysqlminorversion >= 2)) {
$usesauth = 1;
- } elsif ($mysqlversion >= 5.5) {
+ } elsif (($mysqlversion == 5) && ($mysqlminorversion >= 5)) {
$hasauthcol = 1;
}
} else {
- if (($mysqlversion > 5.7) || (($mysqlversion == 5.7) && ($mysqlsubver > 5))) {
+ if (($mysqlversion > 5) || (($mysqlminorversion == 5) && ($mysqlminorversion > 7)) ||
+ (($mysqlversion == 5) && ($mysqlminorversion == 7) && ($mysqlsubver > 5))) {
$usesauth = 1;
- } elsif (($mysqlversion >= 5.6) || (($mysqlversion == 5.5) && ($mysqlsubver >= 7))) {
+ } elsif (($mysqlversion == 5) &&
+ (($mysqlminorversion >= 6) || (($mysqlminorversion == 5) && ($mysqlsubver >= 7)))) {
$hasauthcol = 1;
}
}
@@ -2315,17 +2388,17 @@
}
sub get_mysql_version {
- my ($version,$subversion,$name);
+ my ($version,$minorversion,$subversion,$name);
if (open(PIPE," mysql -V |")) {
my $info = <PIPE>;
chomp($info);
close(PIPE);
- ($version,$subversion,$name) = ($info =~ /(\d+\.\d+)\.(\d+)(?:\-?(\w*),|)/);
+ ($version,$minorversion,$subversion,$name) = ($info =~ /(\d+)\.(\d+)\.(\d+)(?:\-?(\w*),|)/);
} else {
print &mt('Could not determine which version of MySQL is installed.').
"\n";
}
- return ($version,$subversion,$name);
+ return ($version,$minorversion,$subversion,$name);
}
###########################################################
@@ -2429,11 +2502,13 @@
$distname = $1;
$version = $2;
}
- if (($distname eq 'ubuntu') && ($version > 12)) {
+ if ((($distname eq 'ubuntu') && ($version > 12)) ||
+ (($distname eq 'debian') && ($version >= 10))) {
$defaultconfig = "$apache2_sites_enabled_dir/000-default.conf";
}
my ($skipconf,$skipsite,$skipstatus);
- if (($distname eq 'ubuntu') && ($version > 12)) {
+ if ((($distname eq 'ubuntu') && ($version > 12)) ||
+ (($distname eq 'debian') && ($version >= 10))) {
my $apache2_conf_enabled_dir = '/etc/apache2/conf-enabled';
my $apache2_conf_available_dir = '/etc/apache2/conf-available';
my $defaultconf = $apache2_conf_enabled_dir.'/loncapa.conf';
@@ -2586,7 +2661,7 @@
}
}
}
- if ($distname eq 'ubuntu') {
+ if (($distname eq 'ubuntu') || ($distname eq 'debian')) {
my $sitestatus = "$apache2_mods_available_dir/status.conf";
my $stdstatus = "$instdir/debian-ubuntu/status.conf";
if ((-e $sitestatus) && (-e $stdstatus)) {
More information about the LON-CAPA-cvs
mailing list