--- doc/install/linux/install.pl 2019/05/26 22:19:35 1.53 +++ doc/install/linux/install.pl 2019/07/07 23:36:03 1.57 @@ -77,7 +77,7 @@ if (!open(LOG,">>loncapa_install.log")) &mt('Stopping execution.')."\n"; exit; } else { - print LOG '$Id: install.pl,v 1.53 2019/05/26 22:19:35 raeburn Exp $'."\n"; + print LOG '$Id: install.pl,v 1.57 2019/07/07 23:36:03 raeburn Exp $'."\n"; } # @@ -166,7 +166,18 @@ sub get_user_selection { sub get_distro { my ($distro,$gotprereqs,$updatecmd,$packagecmd,$installnow,$unknown); $packagecmd = '/bin/rpm -q LONCAPA-prerequisites '; - if (-e '/etc/redhat-release') { + if (-e '/etc/oracle-release') { + open(IN,'; + chomp($versionstring); + close(IN); + if ($versionstring =~ /^Oracle Linux Server release (\d+)/) { + my $version = $1; + $distro = 'oracle'.$1; + $updatecmd = 'yum install LONCAPA-prerequisites'; + $installnow = 'yum -y install LONCAPA-prerequisites'; + } + } elsif (-e '/etc/redhat-release') { open(IN,'; chomp($versionstring); @@ -196,6 +207,10 @@ sub get_distro { $distro = 'rhes'.$1; $updatecmd = 'yum install LONCAPA-prerequisites'; $installnow = 'yum -y install LONCAPA-prerequisites'; + } elsif ($versionstring =~ /Red Hat Enterprise Linux release (\d+)/) { + $distro = 'rhes'.$1; + $updatecmd = 'dnf install LONCAPA-prerequisites'; + $installnow = 'dnf -y install LONCAPA-prerequisites'; } elsif ($versionstring =~ /CentOS(?:| Linux) release (\d+)/) { $distro = 'centos'.$1; $updatecmd = 'yum install LONCAPA-prerequisites'; @@ -308,7 +323,7 @@ sub get_distro { $unknown = 1; } } else { - print &mt('Unknown installation: expecting a debian, ubuntu, suse, sles, redhat, fedora or scientific linux system.')."\n"; + print &mt('Unknown installation: expecting a debian, ubuntu, suse, sles, redhat, fedora, scientific linux, or oracle linux system.')."\n"; } } return ($distro,$packagecmd,$updatecmd,$installnow); @@ -436,7 +451,7 @@ sub check_locale { print &mt('Failed to open: [_1], default locale not checked.', '/etc/sysconfig/i18n'); } - } elsif ($distro =~ /^(?:rhes|centos|scientific)(\d+)/) { + } elsif ($distro =~ /^(?:rhes|centos|scientific|oracle)(\d+)/) { if ($1 >= 7) { if (!open($fh,"= 19) { $mysqldaemon ='mariadb'; } - } elsif ($distro =~ /^(?:centos|rhes|scientific)(\d+)/) { + } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { if ($1 >= 7) { $mysqldaemon ='mariadb'; $process = 'mysqld'; @@ -729,7 +748,7 @@ sub chkconfig { if ($version >= 19) { $daemon{'mysql'} = 'mariadb'; } - } elsif ($distro =~ /^(?:centos|rhes|scientific)(\d+)/) { + } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { my $version = $1; if ($version >= 7) { $uses_systemctl{'ntp'} = 1; @@ -739,6 +758,9 @@ sub chkconfig { $uses_systemctl{'cups'} = 1; $daemon{'mysql'} = 'mariadb'; } + if (($version >= 8) || ($distro eq 'oracle7')) { + $daemon{'ntp'} = 'chronyd'; + } } my $nocheck; if (! -x $checker_bin) { @@ -842,7 +864,7 @@ sub uses_firewalld { if ($1 >= 18) { $checkfirewalld = 1; } - } elsif ($distro =~ /^(?:centos|rhes|scientific)(\d+)/) { + } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) { if ($1 >= 7) { $checkfirewalld = 1; } @@ -984,14 +1006,14 @@ sub chkapache { } elsif ($distro =~ /^(suse|sles)([\d\.]+)$/) { my ($name,$version) = ($1,$2); my $apache = 'apache'; - my $conf_file = "$instdir/sles-suse/default-server.conf"; + my $conf_file = "$instdir/sles-suse/default-server.conf"; if ($version >= 10) { $apache = 'apache2'; } if (($name eq 'sles') && ($version >= 12)) { $conf_file = "$instdir/sles-suse/apache2.4/default-server.conf"; } - if (!-e "$conf_file") { + if (!-e $conf_file) { $fixapache = 0; print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n"; } elsif (-e "/etc/$apache/default-server.conf") { @@ -1020,7 +1042,7 @@ sub chkapache { } } else { my $configfile = 'httpd.conf'; - if ($distro =~ /^(?:centos|rhes|scientific)(\d+)$/) { + if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { if ($1 >= 7) { $configfile = 'apache2.4/httpd.conf'; } elsif ($1 > 5) { @@ -1797,7 +1819,7 @@ if ($distro eq '') { print "\n".&mt('Linux distribution could not be verified as a supported distribution.')."\n". &mt('The following are supported: [_1].', 'CentOS, RedHat Enterprise, Fedora, Scientific Linux, '. - 'openSuSE, SLES, Ubuntu LTS, Debian')."\n\n". + 'Oracle Linux, openSuSE, SLES, Ubuntu LTS, Debian')."\n\n". &mt('Stopping execution.')."\n"; exit; } @@ -2084,7 +2106,7 @@ if ($callsub{'firewall'}) { } } } - } elsif ($distro =~ /^scientific/) { + } elsif ($distro =~ /^(scientific|oracle)/) { print &mt('Use [_1] to configure the firewall to allow access for [_2].', 'system-config-firewall-tui -- Customize', 'ssh, http')."\n"; @@ -2534,7 +2556,7 @@ sub get_mysql_version { sub copy_httpd_conf { my ($instdir,$distro,$hostname) = @_; my $configfile = 'httpd.conf'; - if ($distro =~ /^(?:centos|rhes|scientific)(\d+)$/) { + if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) { if ($1 >= 7) { $configfile = 'apache2.4/httpd.conf'; } elsif ($1 > 5) { @@ -3160,7 +3182,7 @@ sub copy_sysconfig_apache2_file { if (($name eq 'sles') && ($version >= 12)) { $sysconf_file = "$instdir/sles-suse/apache2.4/sysconfig_apache2"; } - copy "$sysconf_file","/etc/sysconfig/apache2"; + copy $sysconf_file,"/etc/sysconfig/apache2"; chmod(0444,"/etc/sysconfig/apache2"); }