Tags:
create new tag
view all tags

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


Edit | Attach | Watch | Print version | History: r4 < r3 < r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r4 - 2023-03-30 - JoeOrtagus
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback