Diff for /doc/install/linux/install.pl between versions 1.56 and 1.64

version 1.56, 2019/07/06 18:53:23 version 1.64, 2020/05/01 18:29:56
Line 357  sub get_hostname { Line 357  sub get_hostname {
 }  }
   
 #  #
 # get_hostname() prompts the user to provide the server's IPv4 IP address  # get_hostip() prompts the user to provide the server's IPv4 IP address
 #  #
 # If invalid input is provided, the routine is called recursively   # If invalid input is provided, the routine is called recursively 
 # until, a valid IPv4 address is provided.  # until, a valid IPv4 address is provided.
Line 421  sub check_prerequisites { Line 421  sub check_prerequisites {
   
 sub check_locale {  sub check_locale {
     my ($distro) = @_;      my ($distro) = @_;
     my ($fh,$langvar,$command);      my ($fh,$langvar,$command,$earlyout);
     $langvar = 'LANG';      $langvar = 'LANG';
     if ($distro =~ /^(ubuntu|debian)/) {      if ($distro =~ /^(ubuntu|debian)/) {
         if (!open($fh,"</etc/default/locale")) {          if (!open($fh,"</etc/default/locale")) {
             print &mt('Failed to open: [_1], default locale not checked.',              print &mt('Failed to open: [_1], default locale not checked.',
                       '/etc/default/locale');                        '/etc/default/locale');
               $earlyout = 1;
         }          }
     } elsif ($distro =~ /^(suse|sles)(\d+)/) {      } elsif ($distro =~ /^(suse|sles)(\d+)/) {
         if (($1 eq 'sles') && ($2 >= 15)) {          if (($1 eq 'sles') && ($2 >= 15)) {
             if (!open($fh,"</etc/locale.conf")) {              if (!open($fh,"</etc/locale.conf")) {
                 print &mt('Failed to open: [_1], default locale not checked.',                  print &mt('Failed to open: [_1], default locale not checked.',
                           '/etc/locale.conf');                            '/etc/locale.conf');
                   $earlyout = 1;
             }              }
         } else {          } else {
             if (!open($fh,"</etc/sysconfig/language")) {              if (!open($fh,"</etc/sysconfig/language")) {
                 print &mt('Failed to open: [_1], default locale not checked.',                  print &mt('Failed to open: [_1], default locale not checked.',
                           '/etc/sysconfig/language');                            '/etc/sysconfig/language');
                   $earlyout = 1;
             }              }
             $langvar = 'RC_LANG';              $langvar = 'RC_LANG';
         }          }
Line 446  sub check_locale { Line 449  sub check_locale {
             if (!open($fh,"</etc/locale.conf")) {              if (!open($fh,"</etc/locale.conf")) {
                 print &mt('Failed to open: [_1], default locale not checked.',                  print &mt('Failed to open: [_1], default locale not checked.',
                           '/etc/locale.conf');                            '/etc/locale.conf');
                   $earlyout = 1;
             }              }
         } elsif (!open($fh,"</etc/sysconfig/i18n")) {          } elsif (!open($fh,"</etc/sysconfig/i18n")) {
             print &mt('Failed to open: [_1], default locale not checked.',              print &mt('Failed to open: [_1], default locale not checked.',
Line 456  sub check_locale { Line 460  sub check_locale {
             if (!open($fh,"</etc/locale.conf")) {              if (!open($fh,"</etc/locale.conf")) {
                 print &mt('Failed to open: [_1], default locale not checked.',                  print &mt('Failed to open: [_1], default locale not checked.',
                           '/etc/locale.conf');                            '/etc/locale.conf');
                   $earlyout = 1;
             }              }
         } elsif (!open($fh,"</etc/sysconfig/i18n")) {          } elsif (!open($fh,"</etc/sysconfig/i18n")) {
             print &mt('Failed to open: [_1], default locale not checked.',              print &mt('Failed to open: [_1], default locale not checked.',
                       '/etc/sysconfig/i18n');                        '/etc/sysconfig/i18n');
               $earlyout = 1;
         }          }
     } else {      } else {
         if (!open($fh,"</etc/sysconfig/i18n")) {          if (!open($fh,"</etc/sysconfig/i18n")) {
             print &mt('Failed to open: [_1], default locale not checked.',              print &mt('Failed to open: [_1], default locale not checked.',
                       '/etc/sysconfig/i18n');                        '/etc/sysconfig/i18n');
               $earlyout = 1;
         }          }
     }      }
       return if ($earlyout);
     my @data = <$fh>;      my @data = <$fh>;
     chomp(@data);      chomp(@data);
     foreach my $item (@data) {      foreach my $item (@data) {
Line 480  sub check_locale { Line 488  sub check_locale {
                     $command = 'sudo locale-gen en_US.UTF-8'."\n".                      $command = 'sudo locale-gen en_US.UTF-8'."\n".
                                'sudo update-locale LANG=en_US.UTF-8';                                 'sudo update-locale LANG=en_US.UTF-8';
                 } elsif ($distro =~ /^(suse|sles)/) {                  } elsif ($distro =~ /^(suse|sles)/) {
                     $command = 'yast language';                       $command = 'yast language';
                 } elsif (-e '/usr/bin/system-config-language') {                  } elsif (-e '/usr/bin/system-config-language') {
                     $command = 'system-config-language';                      $command = 'system-config-language';
                 } elsif (-e '/usr/bin/localectl') {                  } elsif (-e '/usr/bin/localectl') {
                     $command = 'localectl set-locale en_US.UTF-8';                      $command = '/usr/bin/localectl set-locale LANG=en_US.UTF-8';
                 } else {                  } else {
                     $command = 'No standard command found';                      $command = 'No standard command found';
                 }                  }
Line 734  sub chkconfig { Line 742  sub chkconfig {
         if (($distro =~ /^ubuntu/) && ($version <= 8)) {          if (($distro =~ /^ubuntu/) && ($version <= 8)) {
             $daemon{'cups'} = 'cupsys';              $daemon{'cups'} = 'cupsys';
         }          }
           if (($distro =~ /^ubuntu/) && ($version >= 18)) {
               $daemon{'ntp'}    = 'chrony';
           }
     } elsif ($distro =~ /^fedora(\d+)/) {      } elsif ($distro =~ /^fedora(\d+)/) {
         my $version = $1;          my $version = $1;
         if ($version >= 15) {          if ($version >= 15) {
Line 748  sub chkconfig { Line 759  sub chkconfig {
         if ($version >= 19) {          if ($version >= 19) {
             $daemon{'mysql'} = 'mariadb';              $daemon{'mysql'} = 'mariadb';
         }          }
           if ($version >= 26) {
               $daemon{'ntp'} = 'chronyd';
           }
     } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) {      } elsif ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)/) {
         my $version = $1;          my $version = $1;
         if ($version >= 7) {          if ($version >= 7) {
Line 1003  sub chkapache { Line 1017  sub chkapache {
                 }                  }
             }              }
         }          }
           if ((!$fixapache) && ($distname eq 'ubuntu')) {
               my $sitestatus = "/etc/apache2/mods-available/status.conf";
               my $stdstatus = "$instdir/debian-ubuntu/status.conf";
               if ((-e $stdstatus) && (-e $sitestatus)) {
                   if (open(PIPE, "diff --brief $stdstatus $sitestatus |")) {
                       my $diffres = <PIPE>;
                       close(PIPE);
                       chomp($diffres);
                       if ($diffres) {
                           $fixapache = 1;
                       }
                   }
               }
           }
     } elsif ($distro =~ /^(suse|sles)([\d\.]+)$/) {      } elsif ($distro =~ /^(suse|sles)([\d\.]+)$/) {
         my ($name,$version) = ($1,$2);          my ($name,$version) = ($1,$2);
         my $apache = 'apache';          my $apache = 'apache';
         my $conf_file = "$instdir/sles-suse/default-server.conf";           my $conf_file = "$instdir/sles-suse/default-server.conf";
         if ($version >= 10) {          if ($version >= 10) {
             $apache = 'apache2';              $apache = 'apache2';
         }          }
         if (($name eq 'sles') && ($version >= 12)) {          if (($name eq 'sles') && ($version >= 12)) {
             $conf_file = "$instdir/sles-suse/apache2.4/default-server.conf";              $conf_file = "$instdir/sles-suse/apache2.4/default-server.conf";
         }          }
         if (!-e "$conf_file") {          if (!-e $conf_file) {
             $fixapache = 0;              $fixapache = 0;
             print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";              print &mt('Warning: No LON-CAPA Apache configuration file found for installation check.')."\n";
         } elsif (-e "/etc/$apache/default-server.conf") {          } elsif (-e "/etc/$apache/default-server.conf") {
Line 1042  sub chkapache { Line 1070  sub chkapache {
         }          }
     } else {      } else {
         my $configfile = 'httpd.conf';          my $configfile = 'httpd.conf';
           my $mpmfile = 'mpm.conf';
         if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) {          if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) {
             if ($1 >= 7) {              if ($1 >= 7) {
                 $configfile = 'apache2.4/httpd.conf';                  $configfile = 'apache2.4/httpd.conf';
Line 1050  sub chkapache { Line 1079  sub chkapache {
             }              }
         } elsif ($distro =~ /^fedora(\d+)$/) {          } elsif ($distro =~ /^fedora(\d+)$/) {
             if ($1 > 17) {              if ($1 > 17) {
                 $configfile = 'apache2.4/httpd.conf';                   $configfile = 'apache2.4/httpd.conf';
             } elsif ($1 > 10) {              } elsif ($1 > 10) {
                 $configfile = 'new/httpd.conf';                  $configfile = 'new/httpd.conf';
             }              }
Line 1068  sub chkapache { Line 1097  sub chkapache {
                 }                  }
             }              }
         }          }
           if (-e "/etc/httpd/conf.modules.d/00-mpm.conf") {
               if (!-e "$instdir/centos-rhes-fedora-sl/$mpmfile") {
                   print &mt('Warning: No LON-CAPA Apache MPM configuration file found for installation check.')."\n";
               } elsif ((-e "/etc/httpd/conf.modules.d/00-mpm.conf") && (-e "$instdir/centos-rhes-fedora-sl/$mpmfile")) {
                   if (open(PIPE, "diff --brief $instdir/centos-rhes-fedora-sl/$mpmfile /etc/httpd/conf.modules.d/00-mpm.conf |")) {
                       my $diffres = <PIPE>;
                       close(PIPE);
                       chomp($diffres);
                       if ($diffres) {
                           $fixapache = 1;
                       }
                   }
               }
           }
     }      }
     return $fixapache;      return $fixapache;
 }  }
Line 1986  if ($callsub{'apache'}) { Line 2029  if ($callsub{'apache'}) {
         &copy_apache2_debconf($instdir,$distro,$hostname);          &copy_apache2_debconf($instdir,$distro,$hostname);
     } else {      } else {
         &copy_httpd_conf($instdir,$distro,$hostname);          &copy_httpd_conf($instdir,$distro,$hostname);
           &copy_mpm_conf($instdir,$distro);
     }      }
 } else {  } else {
     print_and_log(&mt('Skipping configuration of Apache web server.')."\n");      print_and_log(&mt('Skipping configuration of Apache web server.')."\n");
Line 2106  if ($callsub{'firewall'}) { Line 2150  if ($callsub{'firewall'}) {
                 }                  }
             }              }
         }          }
     } elsif ($distro =~ /^scientific/) {      } elsif ($distro =~ /^(scientific|oracle)/) {
         print &mt('Use [_1] to configure the firewall to allow access for [_2].',          print &mt('Use [_1] to configure the firewall to allow access for [_2].',
                   'system-config-firewall-tui -- Customize',                    'system-config-firewall-tui -- Customize',
                   'ssh, http')."\n";                    'ssh, http')."\n";
Line 2577  sub copy_httpd_conf { Line 2621  sub copy_httpd_conf {
     print_and_log("\n");      print_and_log("\n");
 }  }
   
   ###########################################################
   ##
   ## RHEL/CentOS/Fedora/Scientific Linux
   ## Copy LON-CAPA mpm.conf to /etc/httpd/conf.modules.d/00-mpm.conf
   ##
   ## The LON-CAPA mpm.conf enables the prefork MPM module in
   ## Apache. This is also the default for RHEL/CentOS/Oracle
   ## Linux 7 and earlier, and Fedora 26 and earlier. For more
   ## recent versions of those distros, the event MPM is enabled
   ## by default. After &copy_mpm_conf() is run, the prefork MPM
   ## module will be enabled instead of the event MPM module.
   ##
   ###########################################################
   
   sub copy_mpm_conf {
       my ($instdir,$distro) = @_;
       my $mpmfile = 'mpm.conf';
       if ((-e "/etc/httpd/conf.modules.d/00-mpm.conf") &&
           (-e "$instdir/centos-rhes-fedora-sl/$mpmfile")) {
           print_and_log(&mt('Copying the LON-CAPA [_1] to [_2].',"'mpm.conf'",
                         "'/etc/httpd/conf.modules.d/00-mpm.conf'")."\n");
           copy "$instdir/centos-rhes-fedora-sl/$mpmfile","/etc/httpd/conf.modules.d/00-mpm.conf";
           chmod(0644,"/etc/httpd/conf.modules.d/00-mpm.conf");
           print_and_log("\n");
       } else {
           my $logfail;
           if ($distro =~ /^(?:centos|rhes|scientific|oracle)(\d+)$/) {
               if ($1 > 7) {
                   $logfail = 1;
               }
           } elsif ($distro =~ /^fedora(\d+)$/) {
               if ($1 > 26) {
                   $logfail = 1;
               }
           }
           if ($logfail) {
               print_and_log(&mt('Warning: copying the LON-CAPA [_1] failed because [_2] and/or [_3] are missing.',
                                 $mpmfile,"'$instdir/centos-rhes-fedora-sl/$mpmfile'",
                                 "'/etc/httpd/conf.modules.d/00-mpm.conf'"));
               print_and_log("\n");
           }
       }
   }
   
 ###############################################  ###############################################
 ##  ##
 ## Copy loncapassl.conf and sslrewrite.conf  ## Copy loncapassl.conf and sslrewrite.conf
Line 3082  sub copy_apache2_debconf { Line 3170  sub copy_apache2_debconf {
     if (($distname eq 'ubuntu') && ($version > 12)) {      if (($distname eq 'ubuntu') && ($version > 12)) {
         $defaultconfig = "$apache2_sites_enabled_dir/000-default.conf";          $defaultconfig = "$apache2_sites_enabled_dir/000-default.conf";
     }      }
     if (-l $defaultconfig) {      my ($skipconf,$skipsite,$skipstatus);
         unlink($defaultconfig);  
     }  
     if (($distname eq 'ubuntu') && ($version > 12)) {      if (($distname eq 'ubuntu') && ($version > 12)) {
         print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from conf-enabled.',"'apache2'","'/etc/apache2/conf-available'","'loncapa.conf symlink'")."\n");  
         my $apache2_conf_enabled_dir = '/etc/apache2/conf-enabled';          my $apache2_conf_enabled_dir = '/etc/apache2/conf-enabled';
         my $apache2_conf_available_dir = '/etc/apache2/conf-available';          my $apache2_conf_available_dir = '/etc/apache2/conf-available';
         if (-e "$apache2_conf_available_dir/loncapa") {  
             copy("$apache2_conf_available_dir/loncapa","$apache2_conf_available_dir/loncapa.original");  
         }  
         my $defaultconf = $apache2_conf_enabled_dir.'/loncapa.conf';          my $defaultconf = $apache2_conf_enabled_dir.'/loncapa.conf';
         copy("$instdir/debian-ubuntu/ubuntu14/loncapa_conf","$apache2_conf_available_dir/loncapa");          if ((-e "$apache2_conf_available_dir/loncapa") && (-e "$instdir/debian-ubuntu/ubuntu14/loncapa_conf")) {
         chmod(0444,"$apache2_conf_available_dir/loncapa");              if (open(PIPE, "diff --brief $apache2_conf_available_dir/loncapa $instdir/debian-ubuntu/ubuntu14/loncapa_conf" |")) {
         if (-l $defaultconf) {                  my $diffres = <PIPE>;
             unlink($defaultconf);                  close(PIPE);
         }                  chomp($diffres);
         symlink("$apache2_conf_available_dir/loncapa","$defaultconf");                  if ($diffres) {
         print_and_log(&mt('Copying loncapa [_1] site file to [_2] and pointing [_3] to it from sites-enabled.',"'apache2'","'/etc/apache2/sites-available'","'000-default.conf symlink'")."\n");                      copy("$apache2_conf_available_dir/loncapa","$apache2_conf_available_dir/loncapa.original");
         copy("$instdir/debian-ubuntu/ubuntu14/loncapa_site","$apache2_sites_available_dir/loncapa");                  }
         chmod(0444,"$apache2_sites_available_dir/loncapa");                  if (-l $defaultconf) {
         symlink("$apache2_sites_available_dir/loncapa","$defaultconfig");                      my $linkfname = readlink($defaultconf);
     } else {                      if ($linkfname eq "$apache2_conf_available_dir/loncapa") {
         print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from sites-enabled.',"'apache2'","'/etc/apache2/sites-available'","'000-default symlink'")."\n");                          unless ($diffres) {
         if (-e "$apache2_sites_available_dir/loncapa") {                              $skipconf = 1;
             copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original");                          }
         }                      }
         copy("$instdir/debian-ubuntu/loncapa","$apache2_sites_available_dir/loncapa");                  }
         chmod(0444,"$apache2_sites_available_dir/loncapa");              }
         symlink("$apache2_sites_available_dir/loncapa","$apache2_sites_enabled_dir/000-default");          }
           unless ($skipconf) {
               print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from conf-enabled.',"'apache2'","'/etc/apache2/conf-available'","'loncapa.conf symlink'")."\n");
               copy("$instdir/debian-ubuntu/ubuntu14/loncapa_conf","$apache2_conf_available_dir/loncapa");
               chmod(0444,"$apache2_conf_available_dir/loncapa");
               if (-l $defaultconf) {
                   unlink($defaultconf);
               }
               symlink("$apache2_conf_available_dir/loncapa","$defaultconf");
           }
           my $stdsite = "$instdir/debian-ubuntu/ubuntu14/loncapa_site";
           if ((-e $stdsite) && (-e "$apache2_sites_available_dir/loncapa")) {
               if (open(PIPE, "diff --brief $stdsite $apache2_sites_available_dir/loncapa |")) {
                   my $diffres = <PIPE>;
                   close(PIPE);
                   chomp($diffres);
                   if ($diffres) {
                       copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original");
                   }
                   if (-l $defaultconfig) {
                       my $linkfname = readlink($defaultconfig);
                       if ($linkfname eq "$apache2_sites_available_dir/loncapa") {
                           unless ($diffres) {
                               $skipsite = 1;
                           }
                       } 
                   }
               }
           }
           unless ($skipsite) {
               print_and_log(&mt('Copying loncapa [_1] site file to [_2] and pointing [_3] to it from sites-enabled.',"'apache2'","'/etc/apache2/sites-available'","'000-default.conf symlink'")."\n");
               copy("$instdir/debian-ubuntu/ubuntu14/loncapa_site","$apache2_sites_available_dir/loncapa");
               chmod(0444,"$apache2_sites_available_dir/loncapa");
               symlink("$apache2_sites_available_dir/loncapa","$defaultconfig");
           }
       } else {
           if ((-e "$instdir/debian-ubuntu/loncapa") && (-e "$apache2_sites_available_dir/loncapa")) {
               if (open(PIPE, "diff --brief $instdir/debian-ubuntu/loncapa $apache2_sites_available_dir/loncapa |")) {
                   my $diffres = <PIPE>;
                   close(PIPE);
                   chomp($diffres);
                   if ($diffres) {
                       copy("$apache2_sites_available_dir/loncapa","$apache2_sites_available_dir/loncapa.original");
                   }
                   if (-l $defaultconfig) {
                       my $linkfname = readlink($defaultconfig);
                       if ($linkfname eq "$apache2_sites_available_dir/loncapa") {
                           unless ($diffres) {
                               $skipsite = 1;
                           }
                       }
                   }
               }
           }
           unless ($skipsite) {
               if (-l $defaultconfig) {
                   unlink($defaultconfig);
               }
               print_and_log(&mt('Copying loncapa [_1] config file to [_2] and pointing [_3] to it from sites-enabled.',"'apache2'","'/etc/apache2/sites-available'","'000-default symlink'")."\n");
               if (-e "$instdir/debian-ubuntu/loncapa") {
                   copy("$instdir/debian-ubuntu/loncapa","$apache2_sites_available_dir/loncapa");
                   chmod(0444,"$apache2_sites_available_dir/loncapa");
                   symlink("$apache2_sites_available_dir/loncapa","$apache2_sites_enabled_dir/000-default");
               }
           }
       }
       if ($distname eq 'ubuntu') {
           my $sitestatus = "$apache2_mods_available_dir/status.conf";
           my $stdstatus = "$instdir/debian-ubuntu/status.conf";
           if ((-e $sitestatus) && (-e $stdstatus)) {
               if (open(PIPE, "diff --brief $stdstatus $sitestatus |")) {
                   my $diffres = <PIPE>;
                   close(PIPE);
                   chomp($diffres);
                   if ($diffres) {
                       copy("$apache2_mods_available_dir/status.conf","$apache2_mods_available_dir/status.conf.original");
                   } else {
                       $skipstatus = 1;
                   }
               }
           }
           unless ($skipstatus) {
               if (-e $stdstatus) {
                   print_and_log(&mt('Copying loncapa [_1] file to [_2],',"'status.conf'","'/etc/apache2/mods-available/status.conf'")."\n");
                   copy($stdstatus,$sitestatus);
                   chmod(0644,$sitestatus);
               }
           }
     }      }
     print_and_log("\n");      print_and_log("\n");
 }  }
Line 3182  sub copy_sysconfig_apache2_file { Line 3351  sub copy_sysconfig_apache2_file {
     if (($name eq 'sles') && ($version >= 12)) {      if (($name eq 'sles') && ($version >= 12)) {
        $sysconf_file = "$instdir/sles-suse/apache2.4/sysconfig_apache2";         $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");      chmod(0444,"/etc/sysconfig/apache2");
 }  }
   
Line 3310  wget http://install.loncapa.org/versions Line 3479  wget http://install.loncapa.org/versions
         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:')."
   
 cd /root/loncapa-N.N     (N.N should correspond to a version number like '0.4')  cd /root/loncapa-X.Y.Z     (X.Y.Z should correspond to a version number like '2.11.3')
 ./UPDATE  ./UPDATE
   
 ".&mt('If you have any trouble, please see [_1] and [_2]',  ".&mt('If you have any trouble, please see [_1] and [_2]',

Removed from v.1.56  
changed lines
  Added in v.1.64


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>
500 Internal Server Error

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at root@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.