History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: GWMON-29
Type: Bug Bug
Status: Resolved
Resolution: Fixed
Priority: Standard Standard
Assignee: Richard Barry-Smith
Reporter: Bas Couwenberg
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
GroundWork Monitor Open Source

installerpatch_5.2.0.pl doesn't fix GWInstaller::Host::verify_java_config

Created: 13/Apr/08 02:13 PM   Updated: 17/Apr/08 12:16 PM
Component/s: Installation/Upgrade
Affects Version/s: None
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment:
OS: CentOS release 5 (Final)
Java: SUN JDK 5.0 Update 15

JAVA_HOME configured in /etc/profile via /etc/profile.d/java.sh which contains:
export JAVA_HOME=/usr/java/jdk1.5.0_15
export PATH=$PATH:$JAVA_HOME/bin

Java is managed by the alternatives system:

# ls -l /usr/bin/java
lrwxrwxrwx 1 root root 22 Apr 11 18:16 /usr/bin/java -> /etc/alternatives/java
# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 30 Apr 13 22:22 /etc/alternatives/java -> /usr/java/jdk1.5.0_15/bin/java
# ls -l $JAVA_HOME/bin/java
-rwxr-xr-x 1 root root 64280 Feb 9 11:48 /usr/java/jdk1.5.0_15/bin/java


 Description  « Hide
After unpacking the Groundwork Monitor Community Edition 5.2 tarball and applying the patch, the installer still refuses to install because it thinks the java environment is broken.

From the installer.log:
{noformat}
Verifying Java configuration...
        verifying /usr/bin/java link
        verifying /etc/alternatives/java link
        >>broken alternatives<<
        verifying /etc/profile
        verifying /etc/profile.local
        verifying /etc/bash.bashrc.local
        >>broken profile<<
        verifying JAVA_HOME
        >>broken env<<
        3 items to fix
Java configuration is non compliant.
Your java config is not compliant. Shall the installer attempt to repair it? NO
ERROR: You will need to manually repair your Java config before continuing. Please take the following steps:
1) correctly set JAVA_HOME in /etc/profile
2) update /etc/alternatives/java to point to the installed Java SDK
3) update /usr/bin/java link to point to /etc/alternatives/java
4) reload environmental variables from /etc/profile with the command: `source /etc/profile`
Exiting installer.
{noformat}

This is because in *lib/GWInstaller/Host.pm* the /etc/alternatives/java symlink is verified against *$prefs->{java_home} . "/bin/java"*:
{noformat}
    450 #verify /etc/alternatives/java link
    451 if($debug){GWLogger::log("\tverifying /etc/alternatives/java link");}
    452 $altlinkval = readlink("/etc/alternatives/java");
    453 $java_bin = $prefs->{java_home} . "/bin/java";
    454 #GWLogger::log("alt: $altlinkval bin: $java_bin");
    455 unless($altlinkval eq $java_bin){
    456 if($debug){GWLogger::log("\t>>broken alternatives<<");}
    457 push(@to_fix,"alternatives");
    458 }
{noformat}

I found that in *lib/GWInstaller/Prefs.pm* java_home is set to */usr/java/jdk1.5.0_06* by init_prefs() through get_java_home() which contains:
{noformat}
     80 sub get_java_home{
     81 $home = "/usr/java/jdk1.5.0_06";
     82 # $home_cmd = "find / -name ". $self->{'java_rpm'} . " | head -1";
     83 return $home;
     84 }
{noformat}

I changed this to use the JAVA_HOME set in the environment to allow the installer to continue and complete the installation:
{noformat}
sub get_java_home{
        $home = "/usr/java/jdk1.5.0_06";
        $home = $ENV{JAVA_HOME} if($ENV{JAVA_HOME});
# $home_cmd = "find / -name ". $self->{'java_rpm'} . " | head -1";
        return $home;
}
{noformat}


 All   Comments   Work Log   Change History      Sort Order:
Richard Barry-Smith - [14/Apr/08 03:59 PM ]
Bas,

Thank you for update.
I have forward your issue and bug comments on to our developers.


Richard Barry-Smith - [17/Apr/08 12:16 PM ]
We have placed an updated installerpatch_5.2.0 on to the SourceForge site.