Diff for /doc/install/redhat7.3/install.pl between versions 1.2 and 1.24

version 1.2, 2002/06/19 19:27:17 version 1.24, 2003/09/02 19:10:52
Line 48 Line 48
 #    The following files are assumed to be present in the current  #    The following files are assumed to be present in the current
 #    directory:  #    directory:
 #      RPMS:  #      RPMS:
   #        ImageMagick-5.4.3.11-1.i386.rpm
   #        ImageMagick-devel-5.4.3.11-1.i386.rpm
   #        ImageMagick-perl-5.4.3.11-1.i386.rpm
 #        gnuplot-3.7.1-5.i386.rpm  #        gnuplot-3.7.1-5.i386.rpm
 #        libgd-1.3-4.i386.rpm  #        libgd-1.3-4.i386.rpm
 #        libungif-progs-4.1.0-9.i386.rpm  #        libungif-progs-4.1.0-9.i386.rpm
Line 58 Line 61
 #        perl-DBI-1.21-1.i386.rpm  #        perl-DBI-1.21-1.i386.rpm
 #        mod_perl-1.26-5.i386.rpm  #        mod_perl-1.26-5.i386.rpm
 #        perl-suidperl-5.6.1-34.99.6.i386.rpm  #        perl-suidperl-5.6.1-34.99.6.i386.rpm
 #        LON-CAPA-systemperl-3.4-rh72.i386.rpm  #        LON-CAPA-systemperl-3.5-rh7.i386.rpm
 #        mysql-3.23.49-3.i386.rpm  #        mysql-3.23.49-3.i386.rpm
 #        mysqlclient9-3.23.22-6.i386.rpm  #        mysqlclient9-3.23.22-6.i386.rpm
 #        mysql-server-3.23.49-3.i386.rpm  #        mysql-server-3.23.49-3.i386.rpm
 #        hwcrypto-1.0-3.i386.rpm  #        hwcrypto-1.0-3.i386.rpm
 #        m2crypto-0.05_snap4-2.i386.rpm  #        m2crypto-0.05_snap4-2.i386.rpm
 #        netatalk-1.5pre6-1rh7.i386.rpm  #        netpbm-9.24-3.i386.rpm
   #        netpbm-progs-9.24-3.i386.rpm
   #        krb5-libs-1.2.4-3.i386.rpm
 #      Other files:  #      Other files:
 #        httpd.conf  #        httpd.conf
 #        mod_auth_external-2.1.13.tar.gz  #        mod_auth_external-2.1.13.tar.gz
Line 82  my $result; Line 87  my $result;
 my $test;  my $test;
   
 # note: The filehandle LOG is global.  # note: The filehandle LOG is global.
 open LOG,">/tmp/loncapa_install.log" || die "Unable to open log file.\n";  open LOG,">loncapa_install.log" || die "Unable to open log file.\n";
   
   print LOG '$Id$'."\n";
   
 # Some friendly subroutines  # Some friendly subroutines
 sub die_if_nonempty {  sub die_if_nonempty {
Line 142  END Line 149  END
 print <<"END";  print <<"END";
 ********************************************************************  ********************************************************************
   
                         Welcome to LON-CAPA                      Welcome to LON-CAPA 
   
 This script will install the base software that LON-CAPA needs to  This script will install the base software that LON-CAPA needs to
 run properly.   run properly. 
Line 159  chomp($instdir); Line 166  chomp($instdir);
 # This list of rpms needs to be pared down to some extent.  # This list of rpms needs to be pared down to some extent.
 #  #
   
 my @gnuplot_rpms = (  my @apache_rpms = (
              "$instdir/gnuplot-3.7.1-5.i386.rpm",               "$instdir/apache-1.3.23-14.i386.rpm",
              "$instdir/libgd-1.3-4.i386.rpm",                     );
              "$instdir/libungif-progs-4.1.0-9.i386.rpm",  
              "$instdir/ncurses4-5.0-5.i386.rpm",  my @openssh_rpms = (
              "$instdir/readline-2.2.1-6.i386.rpm",               "$instdir/openssh-3.1p1-6.i386.rpm",
              "$instdir/readline-4.2a-4.i386.rpm"               "$instdir/openssh-askpass-3.1p1-6.i386.rpm",
                     );               "$instdir/openssh-clients-3.1p1-6.i386.rpm",
                "$instdir/openssh-server-3.1p1-6.i386.rpm"
                   );
   
   # Check for gnome-askpass installation.
   if (-e "/etc/profile.d/gnome-ssh-askpass.sh") {
       push @openssh_rpms,"$instdir/openssh-askpass-gnome-3.1p1-6.i386.rpm";
   }
   
   my @ImageMagick_rpms = ( 
                "$instdir/ImageMagick-5.4.3.11-1.i386.rpm",
                "$instdir/ImageMagick-devel-5.4.3.11-1.i386.rpm",
                "$instdir/ImageMagick-perl-5.4.3.11-1.i386.rpm",
                          );
   
   my @mysql_rpms = (
                "$instdir/mysql-3.23.49-3.i386.rpm",
                "$instdir/mysqlclient9-3.23.22-6.i386.rpm",
                "$instdir/mysql-server-3.23.49-3.i386.rpm",
                     );
   
 my @perl_rpms = (   my @perl_rpms = ( 
              "$instdir/perl-DBD-MySQL-1.2216-4.i386.rpm",               "$instdir/perl-DBD-MySQL-1.2216-4.i386.rpm",
              "$instdir/perl-DBI-1.21-1.i386.rpm",               "$instdir/perl-DBI-1.21-1.i386.rpm",
              "$instdir/mod_perl-1.26-5.i386.rpm",  
              "$instdir/perl-suidperl-5.6.1-34.99.6.i386.rpm",               "$instdir/perl-suidperl-5.6.1-34.99.6.i386.rpm",
                  );                   );
   
   my @old_readline_rpms = (
                "$instdir/readline-2.2.1-6.i386.rpm", # requires -i --oldpackage, 
                                                      # not -Uvh
                            );
   my @gnuplot_rpms = ( # must be done after readline-2.2.1-6
                "$instdir/libgd-1.3-4.i386.rpm", 
                "$instdir/libungif-progs-4.1.0-9.i386.rpm",
                "$instdir/ncurses4-5.0-5.i386.rpm",
                "$instdir/gnuplot-3.7.1-5.i386.rpm",
                       );
   
 my @loncapa_perl_rpms = (  my @loncapa_perl_rpms = (
              "$instdir/LON-CAPA-systemperl-3.4-rh72.i386.rpm"               "$instdir/netpbm-9.24-3.i386.rpm",
                "$instdir/netpbm-progs-9.24-3.i386.rpm",
                "$instdir/krb5-libs-1.2.4-3.i386.rpm",
                "$instdir/krb5-devel-1.2.4-3.i386.rpm",
                "$instdir/LON-CAPA-krb4-3.1-1.i386.rpm",
                     );                      );
 my @mysql_rpms = (  
              "$instdir/mysql-3.23.49-3.i386.rpm",          # okay w/o f,nd  
              "$instdir/mysqlclient9-3.23.22-6.i386.rpm",   # okay w/o f,nd  
              "$instdir/mysql-server-3.23.49-3.i386.rpm",   # okay w/o f,nd  
                   );  
 my @misc_rpms = (  my @misc_rpms = (
              "$instdir/hwcrypto-1.0-3.i386.rpm",           # already installed               "$instdir/m2crypto-0.05_snap4-2.i386.rpm",
              "$instdir/m2crypto-0.05_snap4-2.i386.rpm",    # okay w/o f,nd               "$instdir/tetex-dvips-1.0.7-47.i386.rpm",
              "$instdir/netatalk-1.5pre6-1rh7.i386.rpm"     # hmmmm               "$instdir/ntp-4.1.1-1.i386.rpm",
                "$instdir/libcap-1.10-8.i386.rpm",
              );               );
   
   my $systemperl = "$instdir/LON-CAPA-systemperl-3.7-rh7.i386.rpm";
   
 ##  ##
 ## Okay, I have tried being nice about this and not doing '--force --nodeps',  ## Some of these rpm commands require being obnoxious (--force --nodeps)
 ## but it is an exercise in frustration.  It would be nice to be kind, but  ## this is not a nice thing to do and we should be careful about it.
 ## frankly I do not want to spend the time to figure this out.  ##
 ##  
 print_and_log("Installing mysql packages.\n");  
 writelog (`rpm -ivh --force --nodeps @mysql_rpms`);  
 print_and_log("Installing gnuplot packages.\n");  &print_and_log("Installing Apache packages.\n");
 writelog (`rpm -ivh --force --nodeps @gnuplot_rpms`);  &writelog (`rpm -Uvh --replacepkgs @apache_rpms`);
 print_and_log("Installing LON-CAPA Perl packages.\n");  &print_and_log("Installing openssh packages.\n");
 writelog (`rpm -ivh --force --nodeps @loncapa_perl_rpms`);  &writelog (`rpm -Uvh --replacepkgs @openssh_rpms`);
 print_and_log("Installing Perl packages.\n");  &writelog(`/etc/init.d/sshd start`);
 writelog (`rpm -ivh --force --nodeps @perl_rpms`);  &print_and_log("Installing ImageMagick packages.\n");
 print_and_log("Installing misc packages.\n");  &writelog (`rpm -Uvh --replacepkgs @ImageMagick_rpms`);
 writelog (`rpm -ivh --force --nodeps @misc_rpms`);  &print_and_log("Installing mysql packages.\n");
 system("/etc/init.d/sshd start");  &writelog (`rpm -Uvh --replacepkgs @mysql_rpms`);
 print_and_log("\n");  &print_and_log("Installing Perl packages.\n");
   &writelog (`rpm -Uvh --replacepkgs@perl_rpms`);
   &print_and_log("Installing legacy readline package (required for gnuplot).");
   &writelog(`rpm -i --oldpackage @old_readline_rpms`);
   &print_and_log("Installing gnuplot packages.\n");
   &writelog (`rpm -ivh --force --nodeps @gnuplot_rpms`);
   &print_and_log("Installing LON-CAPA Perl packages.\n");
   &writelog (`rpm -Uvh --replacepkgs @loncapa_perl_rpms`);
   &print_and_log("Installing misc packages.\n");
   &writelog (`rpm -Uvh --replacepkgs @misc_rpms`);
   &print_and_log("Installing LON-CAPA systemperl rpm");
   &writelog(`rpm -ivh --force --nodeps $systemperl`);
   &print_and_log("\n");
   
   
   ##
   ## Remove conflicting packages
   ##
   my @php_rpms = ("php-imap-4.1.2-7",
                   "asp2php-0.76.2-1",
                   "php-ldap-4.1.2-7",
                   "php-devel-4.1.2-7",
                   "php-4.1.2-7",
           "php-pgsql-4.1.2-7");
   
   &print_and_log("Removing php packages");
   foreach my $php_rpm (@php_rpms) {
       my $remove_error = system("rpm -e --nodeps ".$php_rpm);
       if ($remove_error) {
           &print_and_log("Unable to remove ".$php_rpm.".  ".
                          "Assuming it is not present.\n");
       } else {
           &writelog("Successfully removed ".$php_rpm);
       }
   }
   
   &print_and_log("Removing mod_throttle");
   system("rpm -e `rpm -q -a | grep mod_throttle`");
   &print_and_log("Removing mod_bandwidth");
   system("rpm -e `rpm -q -a | grep mod_bandwidth`");
   
 ##  ##
 ## Fix that stupid little sendmail bug  ## Fix that stupid little sendmail bug
Line 291  print_and_log("\n"); Line 371  print_and_log("\n");
 ## Set up mysql  ## Set up mysql
 ##  ##
 print_and_log("Setting mysqld to start on boot up.\n");  print_and_log("Setting mysqld to start on boot up.\n");
   system("/sbin/chkconfig --add mysqld");
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc0.d/K90mysqld");  system("/sbin/chkconfig mysqld on");
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc1.d/K90mysqld");  &writelog(`/sbin/chkconfig --list mysqld`);
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc2.d/S90mysqld");  
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc3.d/S90mysqld");  
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc4.d/S90mysqld");  
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc5.d/S90mysqld");  
 make_link_or_die("/etc/rc.d/init.d/mysqld","/etc/rc.d/rc6.d/K90mysqld");  
   
 writelog("mysql links created successfully\n");  writelog("mysql links created successfully\n");
 writelog(`/etc/rc.d/init.d/mysqld start`);  writelog(`/etc/rc.d/init.d/mysqld start`);
 print_and_log("Waiting for mysql daemon to start.\n");  print_and_log("Waiting for mysql daemon to start.\n");
 sleep 5;  sleep 5;
 if (`/etc/rc.d/init.d/mysqld status` !~ / is running/) {  my $status = system("/etc/rc.d/init.d/mysqld status");
   if ($status != 0) {
     die "Unable to start mysql daemon\nHalting\n";      die "Unable to start mysql daemon\nHalting\n";
   } else {
       print_and_log("Mysql daemon is running.\n");
 }  }
 print_and_log("\n");  print_and_log("\n");
   
Line 330  print MYSQL <<"ENDMYSQL"; Line 408  print MYSQL <<"ENDMYSQL";
 CREATE DATABASE loncapa;  CREATE DATABASE loncapa;
 INSERT INTO user (Host, User, Password)  INSERT INTO user (Host, User, Password)
 VALUES ('localhost','www',password('localhostkey'));  VALUES ('localhost','www',password('localhostkey'));
 GRANT ALL PRIVILEGES ON *.* TO www\@localhost;  INSERT INTO db VALUES ('localhost','loncapa','www',
   'Y','Y','Y','Y','Y','Y','N','Y','Y','Y');
 SET PASSWORD FOR root\@localhost=PASSWORD('$rootpass');  SET PASSWORD FOR root\@localhost=PASSWORD('$rootpass');
 DELETE FROM user WHERE host<>'localhost';  DELETE FROM user WHERE host<>'localhost';
 FLUSH PRIVILEGES;  FLUSH PRIVILEGES;
Line 343  close MYSQL; Line 422  close MYSQL;
 print_and_log("\n");  print_and_log("\n");
   
 ##  ##
 ## Kill the firewall, if it exists  ## Remove the firewall.
 ##  ##
 #  system("/sbin/chkconfig ipchains off");
 # A better method would be to modify the firewall rules to make  system("/etc/init.d/ipchains stop");
 # the lond port open.  Someday.  system("/sbin/chkconfig iptables off");
 #  system("/etc/init.d/iptables stop");
 if (-e "/etc/init.d/iptables" || -e "/etc/init.d/ipchans") {  
     print_and_log("Stopping and removing your firewall\n");  # Someday we will add these to /etc/sysconfig/ipchains.
     my @tokill = ("/etc/rc.d/rc2.d/S08ipchains",  #  "-A input -s 0/0 -d 0/0 8080 -p tcp -y -j ACCEPT",
                   "/etc/rc.d/rc2.d/S08iptables",  #  "-A input -s 0/0 -d 0/0 5663 -p tcp -y -j ACCEPT"
                   "/etc/rc.d/rc3.d/S08ipchains",  # Someday we will deal with iptables, too.  Soon.
                   "/etc/rc.d/rc3.d/S08iptables",  
                   "/etc/rc.d/rc4.d/S08ipchains",  
                   "/etc/rc.d/rc4.d/S08iptables",  
                   "/etc/rc.d/rc5.d/S08ipchains",  
                   "/etc/rc.d/rc5.d/S08iptables" );  
     foreach (@tokill) {  
         unlink $_ if (-e $_ );  
     }  
     writelog(`/etc/init.d/ipchains stop`);  
     writelog(`/etc/init.d/ipchains stop`);  
     print_and_log("\n");  
 }  
   
 ##  ##
 ## Set up httpd   ## Set up httpd 
 ##  ##
 print_and_log("Setting httpd to start on boot up.\n");  print_and_log("Setting httpd to start on boot up.\n");
   system("/sbin/chkconfig httpd on");
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc0.d/K15httpd");  
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc1.d/K15httpd");  
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc2.d/K15httpd");  
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc3.d/S85httpd");  
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc4.d/K15httpd");  
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc5.d/K15httpd");  
 make_link_or_die("/etc/rc.d/init.d/httpd","/etc/rc.d/rc6.d/K15httpd");  
   
 ##  ##
 ## Copy our (probably lousy) httpd.conf to its rightful place  ## Copy our (probably lousy) httpd.conf to its rightful place
Line 391  print_and_log("\n"); Line 451  print_and_log("\n");
 ##  ##
 ## Retrieve loncapa.tar.gz  ## Retrieve loncapa.tar.gz
 ##  ##
 if (! -e "$instdir/loncapa.tar.gz") {  my $lctarball = 'loncapa-current.tar.gz';
     print_and_log("Retrieving LON-CAPA source files from install.loncapa.org\n");  if (! -e "$instdir/$lctarball") {
     system("wget http://install.loncapa.org/versions/current/loncapa.tar.gz 2>/dev/null 1>/dev/null");      print_and_log("Retrieving LON-CAPA source files from install.loncapa.org\n")
     if (! -e "./loncapa.tar.gz") {  ;
       system("wget http://install.loncapa.org/versions/$lctarball 2>/dev/null 1>/dev/null");
       if (! -e "./$lctarball") {
         die("Unable to retrieve LON-CAPA source files from\n".          die("Unable to retrieve LON-CAPA source files from\n".
             "http://install.loncapa.org/versions/current/loncapa.tar.gz\n");              "http://install.loncapa.org/versions/$lctarball\n");
     }      }
     print_and_log("\n");      print_and_log("\n");
 } else {  } else {
     print_and_log(<<"END");      print_and_log(<<"END");
 ------------------------------------------------------------------------  ------------------------------------------------------------------------
   
 You seem to have a version of loncapa.tar.gz in $instdir.    You seem to have a version of loncapa-current.tar.gz in $instdir.  
 This copy will be used and a new version will NOT be downloaded.    This copy will be used and a new version will NOT be downloaded.  
 If you wish, you may download a new version by executing:  If you wish, you may download a new version by executing:
   
 wget http://install.loncapa.org/versions/current/loncapa.tar.gz  wget http://install.loncapa.org/versions/loncapa-current.tar.gz
   
 ------------------------------------------------------------------------  ------------------------------------------------------------------------
 END  END
Line 417  END Line 479  END
 ## untar loncapa.tar.gz  ## untar loncapa.tar.gz
 ##  ##
 print_and_log("Extracting LON-CAPA source files\n");  print_and_log("Extracting LON-CAPA source files\n");
 writelog(`cd ~root; tar zxf $instdir/loncapa.tar.gz`);  writelog(`cd ~root; tar zxf $instdir/loncapa-current.tar.gz`);
 print_and_log("\n");  print_and_log("\n");
   
 my $version = `cat /etc/redhat-release`;  my $version = `cat /etc/redhat-release`;
Line 428  commands now: Line 490  commands now:
 rpm -Uvh perl-5.6.1-34.99.6.i386.rpm  rpm -Uvh perl-5.6.1-34.99.6.i386.rpm
 rpm -Uvh perl-CGI-2.752-34.99.6.i386.rpm  rpm -Uvh perl-CGI-2.752-34.99.6.i386.rpm
   
 cd /root/loncapa  cd /root/loncapa-N.N     (N.N should correspond to a version number like '0.4')
 ./UPDATE  ./UPDATE
   
 END  END
Line 440  END Line 502  END
 All of the extra files seem to have been installed correctly.  It remains for   All of the extra files seem to have been installed correctly.  It remains for 
 you to execute the following commands:  you to execute the following commands:
   
 cd /root/loncapa;  cd /root/loncapa-N.N     (N.N should correspond to a version number like '0.4')
 ./UPDATE  ./UPDATE
   
 If you have any trouble, please see http://install.loncapa.org and   If you have any trouble, please see http://install.loncapa.org/ and 
 http://help.loncapa.org.    http://help.loncapa.org/.  
 ENDMSG  ENDMSG
 }  }
   
 close LOG;  close LOG;
   

Removed from v.1.2  
changed lines
  Added in v.1.24


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