IBM i issues with 5733SC1, libssl.a, libz.a, libcrypto.a, or others

Follow

Issue

The 5733SC1 IBM Licensed Programs are required for Zend Server for IBM i, and the installed version must match the installed version of the operating system.

Environment

Any version of Zend Server for IBM i running on any version of IBM i.

Details

Problems with the 5733SC1 Licensed Programs can arise for a number of reasons:

  1. The 5733SC1 Licensed Programs are not installed.
  2. The IBM i operating system was upgraded, but the 5733SC1 Licensed Programs were not.
  3. The 5733SC1 Licensed Programs are damaged.
  4. The customer has installed open source AIX programs that conflict with the 5733SC1 Licensed Programs OpenSSL, OpenSSH, and ZLib.

If Zend Server is currently installed on the IBM i, 5733SC1 issues can prevent the PHP engine or some Zend Server components from starting.  An error message similar to one of these may be seen in the logs:

Dependent module libz.a(libz.so.1) could not be loaded.
Dependent module libcrypto.a(libcrypto.so.0) could not be loaded.
Dependent module libssl.a(libssl.so.0) could not be loaded.

If Zend Server is not currently installed, the installation may fail with a message similar to this in the job log:

Product:5733SC1 Release:V7R1M0 option:0001 information can not be
retrieved

Resolution

To check whether the 5733SC1 licensed programs are installed and are at the correct version, please go to a 5250 command line, and enter this command:

GO LICPGM

On the "Work with Licensed Programs" menu, use option 10 "Display installed licensed programs". Scroll up until you see the 5733SC1 products. Use F11 to display the release level. You should see these:

5733SC1 V7R1M0 IBM Portable Utilities for i
5733SC1 V7R1M0 OpenSSH, OpenSSL, zlib

The release level must match the release of the operating system.  The above example is correct if the IBM i is currently running 7.1.

If the release shows the wrong version, or if the programs are not found, the 5733SC1 licensed programs can be installed from the IBM i software installation disks. These programs are found on the installation disks, but they do not display in option 11 of the GO LICPGM menu for versions prior to 7.1.

For 7.1 or higher, use option "11. Install licensed programs" from the "Work with Licensed Programs" menu. Find 5733SC1 options *BASE and 1, and install them using option 1:

1 5733SC1 *BASE IBM Portable Utilities for i
1 5733SC1 1 OpenSSH, OpenSSL, zlib

For V6R1 or earlier, you can enter them manually:

1. From a command line: GO LICPGM
2. Use Option 11 "Install licensed programs".
3. Notice that the top entry has no data.
4. Enter the following:
Option 1
Licensed Program 5733SC1
Product Option *BASE
5. Press <ENTER>.
6. Enter the following:
Option 1
Licensed Program 5733SC1
Product Option 1
7. Continue with the installation as normal.

If you need additional assistance installing the 5733SC1 products, IBM Support or your IBM software vendor should be able to assist you.


If the 5733SC1 product is installed and is at the right level, please check to see if the file mentioned in the "Dependent module" error exists in some other directory.

Note: In the following example, we research a problem with libz.a.  If your problem is with another file, please substitute that file name in the commands shown.  You can see more example results in the Appendix below.

From the 5250 command line:

CALL QP2TERM

This brings up the PASE terminal. Notice the '$' or '#' at the top left of the screen. In the PASE terminal, enter this:

find / -name libz.a

This command will run for a long time. It is searching for all occurrences of this file in the IFS. In the PASE terminal, while one command runs, you can enter another one, so don't do that. Wait for the 'find' command to finish. When it is done, it will display another '$' or '#'.

If the 5733SC1 Licensed Program is installed, the 'find' command should find these two files:

/QOpenSys/QIBM/ProdData/SC1/zlib/zlib-1.1.4/lib/libz.a
/QOpenSys/usr/lib/libz.a

(The part of the path /zlib-1.1.4/ is a version and may be different on your machine. For example, a recently viewed V7R1 machine shows this folder as /zlib-1.2.3/ .)

The first is the actual file, and the second is a symlink that points to it. If either of these is missing, please reinstall the 5733SC1 Licensed Program.

If MySQL is also installed, you can also see the file in the /lib subdirectory of the MySQL installation. For example, if MySQL 5.1.43 is installed, this can appear:

/usr/local/mysql-5.1.43-i5os-power-64bit/lib/libz.a

There is another symlink occurrence of libz.a in /usr/lib, which is a symlink to /QOpenSys/usr/lib. Please verify that this file exists and is a symlink. Still in the PASE shell:

ls -l /usr/lib

This should return:

lrwxrwxrwx 1 qsys 0 34 Aug 19 2007 /usr/lib -> /QOpenSys/usr/lib
$

Then:

ls -l /usr/lib/libz.a

This should return:

lrwxrwxrwx 1 qsys 0 100 Nov 20 2007 /usr/lib/libz.a -> ../../QIBM/ProdData/SC1/zlib/zlib-1.1.4/lib/libz.a
$

If /usr/lib is not a symlink linked to the file installed with 5733SC1, then this can indicate a problem. It may be an older manual installation of the libz.a file, that does not have all of the needed modules provided by the version in 5733SC1.

If libz.a appears in any other directories, please verify that it is a symlink to the 5733SC1 version of the file ( /QOpenSys/QIBM/ProdData/SC1/zlib/zlib-1.1.4/lib/libz.a ). If not, the linked file may not be complete. If it is in the path used by Zend products, it may be responsible for errors indicating libz.a does not contain the libz.so.1 module. 

This issue can usually be resolved by first uninstalling 5733SC1, which will remove the symlinks that link to the older file.  Then, reinstall 5733SC1 using the instructions mentioned in the first section of this article.

Appendix

This is an example PASE shell session showing the expected results for libz.a, libssl.a and libcrypto.a when 5733SC1 is installed correctly and there are no problems with other versions of the files.  This example was run on IBM i 7.1.  MySQL 5.1.59 was installed on the machine.

 

                            /QOpenSys/usr/bin/-sh                   
                                                                    
  $
> find / -name libz.a
  /QOpenSys/QIBM/ProdData/SC1/zlib/zlib-1.2.3/lib/libz.a
  /QOpenSys/usr/lib/libz.a
  /usr/local/mysql-5.1.59-i5os-power-64bit/lib/libz.a
  $
> find / -name libssl.a
  /QOpenSys/QIBM/ProdData/SC1/OpenSSL/openssl-0.9.8j/lib/libssl.a
  /QOpenSys/usr/lib/libssl.a
  $
> find / -name libcrypto.a
  /QOpenSys/QIBM/ProdData/SC1/OpenSSL/openssl-0.9.8j/lib/libcrypto.a
  /QOpenSys/usr/lib/libcrypto.a
  $
> ls -l /usr/lib
  lrwxrwxrwx    1 qsys     0                34 Jan 13 2012  /usr/lib -> /QOpenS
  ys/usr/lib
  $
> ls -l /usr/lib/libz.a
  lrwxrwxrwx    1 qsys     0               100 Jan 27 2012  /usr/lib/libz.a ->
  ../../QIBM/ProdData/SC1/zlib/zlib-1.2.3/lib/libz.a
  $
> ls -l /usr/lib/libssl.a
  lrwxrwxrwx    1 qsys     0               118 Jan 27 2012  /usr/lib/libssl.a -
  > ../../QIBM/ProdData/SC1/OpenSSL/openssl-0.9.8j/lib/libssl.a
  $
> ls -l /usr/lib/libcrypto.a
  lrwxrwxrwx    1 qsys     0               124 Jan 27 2012  /usr/lib/libcrypto.
  a -> ../../QIBM/ProdData/SC1/OpenSSL/openssl-0.9.8j/lib/libcrypto.a
  $
Have more questions? Submit a request

Comments

Powered by Zendesk