version 1.1, 2003/12/04 21:58:35
|
version 1.9, 2005/07/01 23:17:58
|
Line 1
|
Line 1
|
#!/usr/bin/perl -w |
#!/usr/bin/perl -w |
# The LearningOnline Network |
# The LearningOnline Network |
# Red Hat 7.3 installation script |
# Fedora installation script |
# |
# |
# $Id$ |
# $Id$ |
# |
# |
Line 179 if ($install_httpd_conf) {
|
Line 179 if ($install_httpd_conf) {
|
©_httpd_conf(); |
©_httpd_conf(); |
} |
} |
|
|
my $lctarball = 'loncapa-current.tar.gz'; |
#my $lctarball = 'loncapa-current.tar.gz'; |
|
my $lctarball = 'loncapa-fedora-current.tar.gz'; |
if ($download_loncapa) { |
if ($download_loncapa) { |
&download_loncapa($lctarball); |
&download_loncapa($lctarball); |
} else { |
} else { |
Line 217 sub setup_www {
|
Line 218 sub setup_www {
|
############################################### |
############################################### |
############################################### |
############################################### |
sub uid_of_www { |
sub uid_of_www { |
my $num = `grep ^www /etc/passwd | cut -d':' -f3`; |
my ($num) = (getpwnam('www'))[2]; |
chomp $num; |
|
if (int($num) == $num) { |
|
writelog ("uid of www = $num\n"); |
|
} else { |
|
die "Unable to determine UID of user www\n Halting.\n"; |
|
} |
|
print_and_log("\n"); |
|
return $num; |
return $num; |
} |
} |
|
|
Line 235 sub uid_of_www {
|
Line 229 sub uid_of_www {
|
############################################### |
############################################### |
sub build_and_install_mod_auth_external { |
sub build_and_install_mod_auth_external { |
my $num = &uid_of_www(); |
my $num = &uid_of_www(); |
# Patch mod_auth_external |
# Patch pwauth |
print_and_log("Building authentication system for LON-CAPA users.\n"); |
print_and_log("Building authentication system for LON-CAPA users.\n"); |
my $patch = <<"ENDPATCH"; |
my $patch = <<"ENDPATCH"; |
148c148 |
148c148 |
Line 246 ENDPATCH
|
Line 240 ENDPATCH
|
|
|
if (! -e "/usr/bin/patch") { |
if (! -e "/usr/bin/patch") { |
print_and_log("You must install the software development tools package ". |
print_and_log("You must install the software development tools package ". |
"when installing RedHat.\n"); |
"when installing Fedora.\n"); |
die; |
die; |
} |
} |
&die_if_nonempty(`cd /tmp; tar zxf $instdir/mod_auth_external-2.1.13.tar.gz`, |
&die_if_nonempty(`cd /tmp; tar zxf $instdir/pwauth-2.2.8.tar.gz`, |
"Unable to extract mod_auth_external\n"); |
"Unable to extract pwauth\n"); |
my $dir = "/tmp/mod_auth_external-2.1.13/pwauth"; |
my $dir = "/tmp/pwauth-2.2.8"; |
open PATCH, "| patch $dir/config.h" || |
open PATCH, "| patch $dir/config.h" || |
die "Unable to start patch for mod_auth_external. Halting\n"; |
die "Unable to start patch for pwauth. Halting\n"; |
print PATCH $patch; |
print PATCH $patch; |
close PATCH; |
close PATCH; |
print_and_log("\n"); |
print_and_log("\n"); |
Line 269 END
|
Line 263 END
|
if ($result ne $expected) { |
if ($result ne $expected) { |
die "Unable to compile patched pwauth. Halting.\n"; |
die "Unable to compile patched pwauth. Halting.\n"; |
} |
} |
print_and_log( "appearant success compiling pwauth:\n".$result ); |
print_and_log( "apparent success compiling pwauth:\n".$result ); |
# Install patched pwauth |
# Install patched pwauth |
print_and_log("Copying pwauth to /usr/local/sbin\n"); |
print_and_log("Copying pwauth to /usr/local/sbin\n"); |
if (! copy "$dir/pwauth","/usr/local/sbin/pwauth") { |
if (! copy "$dir/pwauth","/usr/local/sbin/pwauth") { |
Line 318 sub setup_mysql {
|
Line 312 sub setup_mysql {
|
} |
} |
print_and_log("\n"); |
print_and_log("\n"); |
# |
# |
|
|
|
my ($mysqlinfo,$mysql_ver); |
|
open(PIPE,"/usr/bin/mysql -V |"); |
|
$mysqlinfo = <PIPE>; |
|
close(PIPE); |
|
if ($mysqlinfo =~ /Distrib\s+([\d]+)\./) { |
|
$mysql_ver = $1; |
|
} |
my $mysql_commands = "CREATE DATABASE loncapa;\n"; |
my $mysql_commands = "CREATE DATABASE loncapa;\n"; |
if ($setup_mysql_permissions) { |
if ($setup_mysql_permissions) { |
## |
## |
Line 330 to remember it.
|
Line 332 to remember it.
|
END |
END |
my $rootpass = <>; |
my $rootpass = <>; |
chomp $rootpass; |
chomp $rootpass; |
$mysql_commands .= <<"END"; |
$mysql_commands .= <<"BLOCKONE"; |
INSERT INTO user (Host, User, Password) |
INSERT INTO user (Host, User, Password) |
VALUES ('localhost','www',password('localhostkey')); |
VALUES ('localhost','www',password('localhostkey')); |
INSERT INTO db VALUES ('localhost','loncapa','www', |
BLOCKONE |
'Y','Y','Y','Y','Y','Y','N','Y','Y','Y'); |
if ($mysql_ver < 4) { |
|
$mysql_commands .=<<"BLOCKTWO"; |
|
INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv) VALUES ('localhost','loncapa','www','Y','Y','Y','Y','Y','Y','N','Y','Y','Y'); |
|
BLOCKTWO |
|
} else { |
|
$mysql_commands .=<<"BLOCKTHREE"; |
|
INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv,Create_priv,Drop_priv,Grant_priv,References_priv,Index_priv,Alter_priv,Create_tmp_table_priv,Lock_tables_priv) VALUES ('localhost','loncapa','www','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y'); |
|
BLOCKTHREE |
|
} |
|
$mysql_commands .=<<"END"; |
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 399 You seem to have a version of loncapa-cu
|
Line 410 You seem to have a version of loncapa-cu
|
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/loncapa-current.tar.gz |
wget http://install.loncapa.org/versions/loncapa-fedora-current.tar.gz |
|
|
------------------------------------------------------------------------ |
------------------------------------------------------------------------ |
END |
END |
Line 409 END
|
Line 420 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-current.tar.gz`); |
writelog(`cd ~root; tar zxf $instdir/$lctarball`); |
print_and_log("\n"); |
print_and_log("\n"); |
print <<"ENDMSG"; |
print <<"ENDMSG"; |
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 |