Adobe Experience Manager

Icon

32-bit Linux Libraries Required by AEM FORMS

Jayan Kandathil

First published , last updated

When AEM FORMS (formerly Adobe LiveCycle) is deployed on Linux, you have to ensure that 32-bit versions of a set of shared libraries are installed and available. This is because most of the heavy lifting of AEM FORMS workloads are performed by C++ libraries from the LiveCycle days that Adobe never ported to 64-bit. The required libraries are listed below. The descriptions are from the packages themselves. More here.

From Red Hat Enterprise Linux 6 onwards, the 32-bit edition of a library will have the filename extension .686 while the 64-bit edition will have .x86_64. Example, expat.i686. Prior to RHEL 6, 32-bit editions had the extension .i386. Before installing the 32-bit editions, make sure the latest 64-bit editions are installed. If the 64-bit edition of a library is older than the 32-bit version being installed, you will get an error such as below:
[0mError: Protected multilib versions: libsepol-2.5-10.el7.x86_64 != libsepol-2.5-6.el7.i686 [0mError: Multilib version problems found.

First Time Install

On Red Hat Enterprise Linux, use the YellowDog Update Modifier (YUM) to install, as shown below:

  1. yum install expat.i686
  2. yum install fontconfig.i686
  3. yum install freetype.i686
  4. yum install glibc.i686
  5. yum install libcurl.i686
  6. yum install libICE.i686
  7. yum install libicu.i686
  8. yum install libicu
  9. yum install libSM.i686
  10. yum install libuuid.i686
  11. yum install libX11.i686
  12. yum install libXau.i686
  13. yum install libxcb.i686
  14. yum install libXext.i686
  15. yum install libXinerama.i686
  16. yum install libXrandr.i686
  17. yum install libXrender.i686
  18. yum install nss-softokn-freebl.i686
  19. yum install zlib.i686

Symlinks

Additionally, you need to create libcurl.so, libcrypto.so, and libssl.so symlinks pointing to the latest 32-bit versions of the libcurl, libcrypto, and libssl libraries respectively. You can find the files in /usr/lib/
ln -s /usr/lib/libcurl.so.4.5.0 /usr/lib/libcurl.so
ln -s /usr/lib/libcrypto.so.1.1.1c /usr/lib/libcrypto.so
ln -s /usr/lib/libssl.so.1.1.1c /usr/lib/libssl.so

Updates to Existing System

There can be conflicts between the x86_64 and i686 architectures during updates, such as this:
Error: Transaction check error:
file /lib/ld-2.28.so from install of glibc-2.28-72.el8.i686 conflicts with file from package glibc32-2.28-42.1.el8.x86_64

If you run into this, un-install the offending package first, like in this case:
yum remove glibc32-2.28-42.1.el8.x86_64

All said and done, you want the x86_64 and i686 versions to be exactly the same, as for example from this output to the command:
yum info glibc

Last metadata expiration check: 0:41:33 ago on Sat 18 Jan 2020 11:37:08 AM EST.
Installed Packages
Name : glibc
Version : 2.28
Release : 72.el8
Architecture : i686
Size : 13 M
Source : glibc-2.28-72.el8.src.rpm
Repository : @System
From repo : BaseOS
Summary : The GNU libc libraries
URL : http://www.gnu.org/software/glibc/
License : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL
Description : The glibc package contains standard libraries which are used by : multiple programs on the system. In order to save disk space and : memory, as well as to make upgrading easier, common system code is : kept in one place and shared between programs. This particular package : contains the most important sets of shared libraries: the standard C : library and the standard math library. Without these two libraries, a : Linux system will not function.

Name : glibc
Version : 2.28
Release : 72.el8
Architecture : x86_64
Size : 15 M
Source : glibc-2.28-72.el8.src.rpm
Repository : @System
From repo : BaseOS
Summary : The GNU libc libraries
URL : http://www.gnu.org/software/glibc/
License : LGPLv2+ and LGPLv2+ with exceptions and GPLv2+ and GPLv2+ with exceptions and BSD and Inner-Net and ISC and Public Domain and GFDL
Description : The glibc package contains standard libraries which are used by : multiple programs on the system. In order to save disk space and : memory, as well as to make upgrading easier, common system code is : kept in one place and shared between programs. This particular package : contains the most important sets of shared libraries: the standard C : library and the standard math library. Without these two libraries, a : Linux system will not function.

Useful yum Commands

Commonly used yum commands:

yum list installed
yum search [part_of_package_name]
yum whatprovides [package_name]
yum install [package_name]
yum reinstall [package_name]
yum info [package_name]
yum deplist [package_name]
yum remove [package_name]
yum check-update [package_name]
yum update [package_name]