Diff for /doc/install/linux/install.pl between versions 1.45.2.4 and 1.45.2.7

version 1.45.2.4, 2019/10/14 14:14:51 version 1.45.2.7, 2020/05/03 00:48:28
Line 357  sub check_prerequisites { Line 357  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 382  sub check_locale { Line 385  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;
         }          }
     } elsif ($distro =~ /^(?:rhes|centos|scientific|oracle)(\d+)/) {      } elsif ($distro =~ /^(?:rhes|centos|scientific|oracle)(\d+)/) {
         if ($1 >= 7) {          if ($1 >= 7) {
             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 645  sub chkconfig { Line 654  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 659  sub chkconfig { Line 671  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 914  sub chkapache { Line 929  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';
Line 953  sub chkapache { Line 982  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 961  sub chkapache { Line 991  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 979  sub chkapache { Line 1009  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 1607  if ($callsub{'apache'}) { Line 1651  if ($callsub{'apache'}) {
         &copy_apache2_debconf($instdir,$distro);          &copy_apache2_debconf($instdir,$distro);
     } else {      } else {
         &copy_httpd_conf($instdir,$distro);          &copy_httpd_conf($instdir,$distro);
           &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 2123  sub get_mysql_version { Line 2168  sub get_mysql_version {
         my $info = <PIPE>;          my $info = <PIPE>;
         chomp($info);          chomp($info);
         close(PIPE);          close(PIPE);
         ($version,$subversion,$name) = ($info =~ /(\d+\.\d+)\.(\d+)\-?(\w*),/);          ($version,$subversion,$name) = ($info =~ /(\d+\.\d+)\.(\d+)(?:\-?(\w*),|)/);
     } else {      } else {
         print &mt('Could not determine which version of MySQL is installed.').          print &mt('Could not determine which version of MySQL is installed.').
               "\n";                "\n";
Line 2162  sub copy_httpd_conf { Line 2207  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");
           }
       }
   }
   
 #########################################################  #########################################################
 ##  ##
 ## Ubuntu/Debian -- copy our loncapa configuration file to  ## Ubuntu/Debian -- copy our loncapa configuration file to
Line 2190  sub copy_apache2_debconf { Line 2279  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 2418  wget http://install.loncapa.org/versions Line 2588  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.45.2.4  
changed lines
  Added in v.1.45.2.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>