Getting a dclient debug log when the iManager 3 installation fails: No Java virtual machine could be found

  • 7024430
  • 12-Feb-2020
  • 16-Aug-2021

Environment

iManager 3.2

Situation

Error during installation:
No Java virtual machine could be found from your PATH environment variable.  You must install a VM prior to running this program.

The following Java environment variables were noted:
JAVA_ROOT=/usr/java/latest
JAVA_HOME=/usr/java/latest
JRE_HOME=/usr/java/latest
JAVA_BINDIR=/usr/java/latest/bin

For additional messages and confirmation, the iManager installation can be run in dclient debug mode.  To start the installation in debug mode perform the following steps while changing them to match your environment if needed.
 
 1) Create a directory /var/opt/novell/novlwww/dclient
 2) Create a file named dclient.log in this directory: /var/opt/novell/novlwww/dclient.
 3) Assign novlwww owner permissions to dclient folder and to the dclient.log file.
 4) In the script /opt/novell/tomcat9/bin/dtomcat9 add the environment variable DCLIENTDEBUG which will point to a file inside the directory created with the first step.




Example for step 4 is below:
   
    TOMCAT_CFG="/etc/opt/novell/tomcat9/tomcat9.conf"
    JAVADIR="/opt/netiq/common/jre"   
    Add the Dclient variable as shown below after the above statements.
    export DCLIENTDEBUG="/var/opt/novell/novlwww/dclient/dclient.log"

 5) Restart tomcat.

Once the debug file has been created while trying to hit the error two fatal installation warnings are seen:

Status: FATAL ERROR Additional Notes: FATAL ERROR - /bin/rpm -Uvh --nodeps --noscripts  /code/iManager/installs/linux/packages/imanager/rpms/novell-imanager*.rpm

Status: FATAL ERROR Additional Notes: FATAL ERROR - /bin/rpm -Uvh --nodeps --noscripts  /code/iManager/installs/linux/packages/imanager/rpms/novell-plugin-base*.rpm

Resolution

To get additional debug output of an error being thrown from the iManager installation run the command “export LAX_DEBUG=true”
before executing “./iManagerInstall.bin”. LAX_DEBUG will provide a debug log of the InstallAnywhere installation to help narrow down the issue.

iManager includes its own Java version for the installation.  The installer will extract this java to /tmp before executing it from there.  If /tmp is mounted as noexec the installer cannot run its own Java binary.  It will then try to run the system's JAVA executable from the $PATH environment variable should it exist.

There are two conditions that are most likely to lead to this:
    
1.  No java executable in the $PATH
    
2. /tmp is mounted with the noexec flag
 
To verify if the noexec flag is set on a mount you can use the following command:
mount | grep -i noexec

SOLUTION:
If the /tmp file system is mounted with the noexec flag you can set a IATEMPDIR environment variable to use an alternate temporary location, depending on the system configuration the /var/temp directory or other system temporary directory could be affected as well.  You can also install the agent without modifying the mount point: 
 
In the example commands below the /path_to_installer is the location of the setup.sh script to run the agent and the alternate tmp is a temporary subdirectory.  If you chose a different location, verify if files can be executed on this file system:
mkdir /root/temp
export IATEMPDIR=/root/temp
cd /path_to_installer
    
Then the iManagerInstallLinux.bin executable can be run and it will use the IATEMPDIR path instead of the /tmp path for the temporary location of the installer.