Running APPX in a 64 bit Linux/Unix environment
This page explains how you can run APPX in a 64 bit Linux/Unix environment. No special set up is required for 64 bit Windows installations, as Windows natively supports running 32 bit applications in a 64 bit environment.
Overview
The basic process is to identify which 32 bit libraries are missing, then install them.
Installing 32 bit APPX on a minimal install of RHEL based distributions
You'll probably need to install glibc.i686 krb5-libs.i686 zlib.i686 libxml2.i686 pam.i686 libstdc++.i686 libgcc.i686 for RHEL 7, and 8
You'll probably need to install glibc.i686 krb5-libs.i686 zlib.i686 libxml2.i686 pam.i686 libstdc++.i686 libgcc.i686
libxcrypt-compat.i686 for RHEL 9+
Identify the missing libraries
You can use the 'ldd' command on the 'appx' executable to determine which libraries it needs and which ones are missing:
[root@localhost jneron]# ldd /appx544/appx
linux-gate.so.1 => (0xf7731000)
libkrb5.so.3 => not found
libdl.so.2 => /lib/libdl.so.2 (0xf7717000)
libm.so.6 => /lib/libm.so.6 (0xf76d5000)
libz.so.1 => not found
libxml2.so.2 => not found
libstdc++.so.6 => /lib/libstdc++.so.6 (0xf75e8000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf75cd000)
libc.so.6 => /lib/libc.so.6 (0xf7410000)
/lib/ld-linux.so.2 (0xf7732000)
libk5crypto.so.3 => not found
In this example, we can see that several libraries are missing (libkrb5.so.3, libz.so.1, libxml2.so.2 and libk5crypto.so.3)
In some cases, ldd might give an error instead of listing the libraries. In that case, you can use the objdump command:
objdump -p /path/to/program | grep NEEDED
Or install 32-bit loader that comes with the 32-bit glibc (without this, ldd will call it a non-executable file and tell you nothing):
yum install glibc.i686
Installing the missing libraries
The next step is to identify which packages contain the missing libraries and to install those packages. The method you use to identify the package depends on the Linux distribution you are using. You can also use
http://rpmfind.net/linux/rpm2html/search.php or other rpm find tools to find the package.
In Centos 7, we can use yum:
[root@localhost jneron]# yum provides libkrb5.so.3
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.netflash.net
* extras: muug.ca
* updates: muug.ca
krb5-libs-1.13.2-10.el7.i686 : The shared libraries used by Kerberos 5
Repo : base
Matched from:
Provides : libkrb5.so.3
krb5-libs-1.13.2-12.el7_2.i686 : The shared libraries used by Kerberos 5
Repo : updates
Matched from:
Provides : libkrb5.so.3
From this, we can see that the package krb5-libs-1.13.2-12.el7_2.i686 includes the missing library, so we use 'yum' to install it:
[root@localhost jneron]# yum install krb5-libs-1.13.2-12.el7_2.i686
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirror.netflash.net
* extras: muug.ca
* updates: muug.ca
Resolving Dependencies
--> Running transaction check
---> Package krb5-libs.i686 0:1.13.2-12.el7_2 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10) for package: krb5-libs-1.13.2-12.el7_2.i686
--> Processing Dependency: libssl.so.10 for package: krb5-libs-1.13.2-12.el7_2.i686
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10) for package: krb5-libs-1.13.2-12.el7_2.i686
--> Processing Dependency: libcrypto.so.10 for package: krb5-libs-1.13.2-12.el7_2.i686
--> Running transaction check
---> Package openssl-libs.i686 1:1.0.1e-51.el7_2.5 will be installed
--> Processing Dependency: libz.so.1 for package: 1:openssl-libs-1.0.1e-51.el7_2.5.i686
--> Running transaction check
---> Package zlib.i686 0:1.2.7-15.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
krb5-libs i686 1.13.2-12.el7_2 updates 838 k
Installing for dependencies:
openssl-libs i686 1:1.0.1e-51.el7_2.5 updates 939 k
zlib i686 1.2.7-15.el7 base 90 k
Transaction Summary
================================================================================
Install 1 Package (+2 Dependent packages)
Total download size: 1.8 M
Installed size: 4.6 M
Is this ok [y/d/N]: y
Notice that because of dependances, yum installed some extra packages. These may have provided other missing libraries, so it's worthwhile to repeat the 'ldd' command to see which libraries are still missing.
APPX Login Manager
The APPX Login Manager (appxLoginMgr) has slightly different dependancies, so you should repeat this procedure for it as well.
Comments