cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sherter
Level 2

Linux install created by InstallAnywhere 2022 fails with "JRE libraries are missing or not compatible"

Jump to solution

I upgraded from InstallAnywhere 2018 to 2022.  It went fairly smoothly and all the Windows targets are working as expected four our build.  The Linux install fails with the following:

[root@en-eap70l07rh64 VM]# ./install.bin -i console
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...

Launching installer...

JRE libraries are missing or not compatible....
Exiting....

The interesting thing is that we don't package a JRE in the install, it relies on the JRE installed on the target system.  This works fine for the Windows Install.  The "Installer Valid VM List" is set to 1.8+ and the "Install Bundled/Downloaded Virtual Machine" is unchecked on the JVM settings for the Project.

JRE version on the Linux box.

[root@en-eap70l07rh64 VM]# java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)

I am trying to figure out why this is failing for the Linux target but not the Windows target.

0 Kudos
(1) Solution
sherter
Level 2

I found some more information.  I did find that the installer is putting a JRE into the /tmp folder and the problem appears to be that the JRE is 32 bit on a 64 bit system.  When I try to get the version of the java the installer puts down it gives:

[root@en-eap70l07rh64 bin]# ./java -version
bash: ./java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Running readelf to get the setting I get that it is 32 bit:

[root@en-eap70l07rh64 bin]# readelf -a java | grep ELF
ELF Header:
Class: ELF32

This is what the real problem is.

I searched around and on the Build tab I expanded Linux and found that it was bundling a 32 bit VM, it was the same one as with InstallAnywhere 2018.  I changed it to Search for VM and if not found, use bundled VM instead of always use the packaged VM.  If this fixes it I will mark this as resolved.

View solution in original post

0 Kudos
(1) Reply
sherter
Level 2

I found some more information.  I did find that the installer is putting a JRE into the /tmp folder and the problem appears to be that the JRE is 32 bit on a 64 bit system.  When I try to get the version of the java the installer puts down it gives:

[root@en-eap70l07rh64 bin]# ./java -version
bash: ./java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

Running readelf to get the setting I get that it is 32 bit:

[root@en-eap70l07rh64 bin]# readelf -a java | grep ELF
ELF Header:
Class: ELF32

This is what the real problem is.

I searched around and on the Build tab I expanded Linux and found that it was bundling a 32 bit VM, it was the same one as with InstallAnywhere 2018.  I changed it to Search for VM and if not found, use bundled VM instead of always use the packaged VM.  If this fixes it I will mark this as resolved.

0 Kudos