version 1.19, 2011/05/31 13:29:46
|
version 1.23, 2011/10/25 02:03:16
|
Line 191 sub get_distro {
|
Line 191 sub get_distro {
|
$distro = 'rhes'.$1; |
$distro = 'rhes'.$1; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
} elsif ($versionstring =~ /CentOS release (\d+)/) { |
} elsif ($versionstring =~ /CentOS(?:| Linux) release (\d+)/) { |
$distro = 'centos'.$1; |
$distro = 'centos'.$1; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$updatecmd = 'yum install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
$installnow = 'yum -y install LONCAPA-prerequisites'; |
} elsif ($versionstring =~ /Scientific Linux (SL )?release ([\d.]+) /) { |
} elsif ($versionstring =~ /Scientific Linux (?:SL )?release ([\d.]+) /) { |
my $ver = $1; |
my $ver = $1; |
$ver =~ s/\.\d+$//; |
$ver =~ s/\.\d+$//; |
$distro = 'scientific'.$ver; |
$distro = 'scientific'.$ver; |
Line 357 sub check_required {
|
Line 357 sub check_required {
|
} |
} |
my $gotprereqs = &check_prerequisites($packagecmd,$distro); |
my $gotprereqs = &check_prerequisites($packagecmd,$distro); |
if ($gotprereqs eq '') { |
if ($gotprereqs eq '') { |
return ($distro,$gotprereqs); |
return ($distro,$gotprereqs,'',$packagecmd,$updatecmd); |
} |
} |
my $localecmd = &check_locale($distro); |
my $localecmd = &check_locale($distro); |
unless ($localecmd eq '') { |
unless ($localecmd eq '') { |
Line 405 sub check_required {
|
Line 405 sub check_required {
|
|
|
sub check_mysql_running { |
sub check_mysql_running { |
my ($distro) = @_; |
my ($distro) = @_; |
|
my $use_systemctl; |
my $mysqldaemon ='mysqld'; |
my $mysqldaemon ='mysqld'; |
if ($distro =~ /^(suse|sles|debian|ubuntu)/) { |
if ($distro =~ /^(suse|sles|debian|ubuntu)/) { |
$mysqldaemon = 'mysql'; |
$mysqldaemon = 'mysql'; |
Line 417 sub check_mysql_running {
|
Line 418 sub check_mysql_running {
|
$proc_owner = 'mysql'; |
$proc_owner = 'mysql'; |
} |
} |
} |
} |
|
if ($distro =~ /^fedora(\d+)/) { |
|
if ($1 >= 16) { |
|
$process = 'mysqld'; |
|
$proc_owner = 'mysql'; |
|
$use_systemctl = 1; |
|
} |
|
} |
if (open(PIPE,"ps -ef |grep $process |grep -v grep 2>&1 |")) { |
if (open(PIPE,"ps -ef |grep $process |grep -v grep 2>&1 |")) { |
my $status = <PIPE>; |
my $status = <PIPE>; |
close(PIPE); |
close(PIPE); |
Line 425 sub check_mysql_running {
|
Line 433 sub check_mysql_running {
|
print_and_log(&mt('MySQL is running.')."\n"); |
print_and_log(&mt('MySQL is running.')."\n"); |
return 1; |
return 1; |
} else { |
} else { |
system("/etc/init.d/$mysqldaemon start >/dev/null 2>&1 "); |
if ($use_systemctl) { |
|
system("/bin/systemctl start $mysqldaemon.service >/dev/null 2>&1 "); |
|
} else { |
|
system("/etc/init.d/$mysqldaemon start >/dev/null 2>&1 "); |
|
} |
print_and_log(&mt('Waiting for MySQL to start.')."\n"); |
print_and_log(&mt('Waiting for MySQL to start.')."\n"); |
sleep 5; |
sleep 5; |
if (open(PIPE,"ps -ef |grep $process |grep -v grep 2>&1 |")) { |
if (open(PIPE,"ps -ef |grep $process |grep -v grep 2>&1 |")) { |
Line 460 sub check_mysql_running {
|
Line 472 sub check_mysql_running {
|
|
|
sub chkconfig { |
sub chkconfig { |
my ($distro,$instdir) = @_; |
my ($distro,$instdir) = @_; |
my (%needfix,%tostop); |
my (%needfix,%tostop,%uses_systemctl); |
my $checker_bin = '/sbin/chkconfig'; |
my $checker_bin = '/sbin/chkconfig'; |
|
my $sysctl_bin = '/bin/systemctl'; |
my %daemon = ( |
my %daemon = ( |
mysql => 'mysqld', |
mysql => 'mysqld', |
apache => 'httpd', |
apache => 'httpd', |
Line 491 sub chkconfig {
|
Line 504 sub chkconfig {
|
if (($distro =~ /^ubuntu/) && ($version <= 8)) { |
if (($distro =~ /^ubuntu/) && ($version <= 8)) { |
$daemon{'cups'} = 'cupsys'; |
$daemon{'cups'} = 'cupsys'; |
} |
} |
|
} elsif ($distro =~ /^(?:fedora)(\d+)/) { |
|
my $version = $1; |
|
if ($version >= 15) { |
|
$uses_systemctl{'ntp'} = 1; |
|
} |
|
if ($version >= 16) { |
|
$uses_systemctl{'mysql'} = 1; |
|
$uses_systemctl{'apache'} = 1; |
|
} |
} |
} |
|
my $nocheck; |
if (! -x $checker_bin) { |
if (! -x $checker_bin) { |
|
if ($uses_systemctl{'mysql'} && $uses_systemctl{'apache'}) { |
|
if (! -x $sysctl_bin) { |
|
$nocheck = 1; |
|
} |
|
} else { |
|
$nocheck = 1; |
|
} |
|
} |
|
if ($nocheck) { |
print &mt('Could not check runlevel status for MySQL or Apache')."\n"; |
print &mt('Could not check runlevel status for MySQL or Apache')."\n"; |
return; |
return; |
} |
} |
my $rlstr = join('',@runlevels); |
my $rlstr = join('',@runlevels); |
my $nrlstr = join('',@norunlevels); |
my $nrlstr = join('',@norunlevels); |
|
|
foreach my $type ('apache','mysql','ntp','cups','memcached') { |
foreach my $type ('apache','mysql','ntp','cups','memcached') { |
my $service = $daemon{$type}; |
my $service = $daemon{$type}; |
if ($type eq 'ntp') { |
if ($uses_systemctl{$type}) { |
if ($distro =~ /^(?:fedora)(\d+)/) { |
if (!-l "/etc/systemd/system/multi-user.target.wants/$service.service") { |
my $version = $1; |
$needfix{$type} = "systemctl enable $service.service"; |
if ($version >= 15) { |
|
if (!-l "/etc/systemd/system/multi-user.target.wants/ntpd.service") { |
|
$needfix{$type} = 'systemctl enable ntpd.service'; |
|
} |
|
next; |
|
} |
|
} |
|
} |
|
my $command = $checker_bin.' --list '.$service.' 2>/dev/null'; |
|
if ($type eq 'cups') { |
|
if ($distro =~ /^(?:debian|ubuntu)(\d+)/) { |
|
my $version = $1; |
|
if (($distro =~ /^ubuntu/) && ($version <= 8)) { |
|
$command = $checker_bin.' --list cupsys 2>/dev/null'; |
|
} |
|
} |
} |
} |
next; |
my $results = `$command`; |
} else { |
my $tofix; |
my $command = $checker_bin.' --list '.$service.' 2>/dev/null'; |
if ($results eq '') { |
if ($type eq 'cups') { |
if (($type eq 'apache') || ($type eq 'mysql') || ($type eq 'ntp')) { |
if ($distro =~ /^(?:debian|ubuntu)(\d+)/) { |
if ($distro =~ /^(debian|ubuntu)/) { |
my $version = $1; |
$tofix = "update-rc.d $type defaults"; |
if (($distro =~ /^ubuntu/) && ($version <= 8)) { |
} else { |
$command = $checker_bin.' --list cupsys 2>/dev/null'; |
$tofix = "$checker_bin --add $service\n"; |
} |
} |
} |
} |
} |
} else { |
my $results = `$command`; |
my %curr_runlevels; |
my $tofix; |
for (my $rl=0; $rl<=6; $rl++) { |
if ($results eq '') { |
if ($results =~ /$rl:on/) { $curr_runlevels{$rl}++; } |
if (($type eq 'apache') || ($type eq 'mysql') || ($type eq 'ntp')) { |
} |
if ($distro =~ /^(debian|ubuntu)/) { |
if (($type eq 'apache') || ($type eq 'mysql') || ($type eq 'ntp')) { |
$tofix = "update-rc.d $type defaults"; |
my $warning; |
} else { |
foreach my $rl (@runlevels) { |
$tofix = "$checker_bin --add $service\n"; |
if (!exists($curr_runlevels{$rl})) { |
|
$warning = 1; |
|
} |
} |
} |
} |
if ($warning) { |
} else { |
$tofix = "$checker_bin --level $rlstr $service on\n"; |
my %curr_runlevels; |
|
for (my $rl=0; $rl<=6; $rl++) { |
|
if ($results =~ /$rl:on/) { $curr_runlevels{$rl}++; } |
|
} |
|
if (($type eq 'apache') || ($type eq 'mysql') || ($type eq 'ntp')) { |
|
my $warning; |
|
foreach my $rl (@runlevels) { |
|
if (!exists($curr_runlevels{$rl})) { |
|
$warning = 1; |
|
} |
|
} |
|
if ($warning) { |
|
$tofix = "$checker_bin --level $rlstr $service on\n"; |
|
} |
|
} elsif (keys(%curr_runlevels) > 0) { |
|
$tostop{$type} = 1; |
} |
} |
} elsif (keys(%curr_runlevels) > 0) { |
|
$tostop{$type} = 1; |
|
} |
} |
} |
if ($tofix) { |
if ($tofix) { |
$needfix{$type} = $tofix; |
$needfix{$type} = $tofix; |
} |
} |
} |
} |
} |
if ($distro =~ /^(suse|sles)([\d\.]+)$/) { |
if ($distro =~ /^(suse|sles)([\d\.]+)$/) { |
Line 1222 if ($callsub{'download'}) {
|
Line 1251 if ($callsub{'download'}) {
|
print &mt('The most recent LON-CAPA release is version: [_1].',$production)."\n". |
print &mt('The most recent LON-CAPA release is version: [_1].',$production)."\n". |
&mt('Download the production release? ~[Y/n~]'); |
&mt('Download the production release? ~[Y/n~]'); |
if (&get_user_selection(1)) { |
if (&get_user_selection(1)) { |
$sourcetarball = $production.'tar.gz'; |
$sourcetarball = 'loncapa-'.$production.'.tar.gz'; |
} |
} |
} |
} |
} elsif ($filetouse ne '') { |
} elsif ($filetouse ne '') { |