AIX Open Source

 View Only

Planning and Maintaining AIX Toolbox Packages

By Jan Harris posted 16 hours ago

  

Overview

As noted on the AIX Toolbox for Open Source Software site, the team recommends using DNF to install and manage Open Source software packages and dependencies

*** It is important to review your existing open source environment, and AIX Toolbox documentation before installing DNF.

Error Examples

The following scenario is an example of DNF failures when old and non-AIX Toolbox packages exist prior to installing DNF.
1) Install DNF using the install script.
  • https://public.dhe.ibm.com/aix/freeSoftware/aixtoolbox/ezinstall/ppc/dnf_aixtoolbox.sh
# dnf_aixtoolbox.sh -Y
<...>
dnf installed successfully.
Please run 'dnf update' to update packages to the latest level.
 
2) Run the update.
# dnf update
Traceback (most recent call last):
  File "/opt/freeware/bin/dnf", line 57, in <module>
    from dnf.cli import main
  File "/opt/freeware/lib/python3.9/site-packages/dnf/__init__.py", line 32, in <module>
    import dnf.base
  File "/opt/freeware/lib/python3.9/site-packages/dnf/base.py", line 29, in <module>
    import libdnf.transaction
  File "/opt/freeware/lib/python3.9/site-packages/libdnf/__init__.py", line 3, in <module>
    from . import common_types
  File "/opt/freeware/lib/python3.9/site-packages/libdnf/common_types.py", line 13, in <module>
    from . import _common_types
ImportError:    0509-022 Cannot load module /opt/freeware/lib/libdnf.a(libdnf.so.2).
        0509-150   Dependent module /opt/freeware/lib/libcrypto.a(libcrypto.so.1.1) could not be loaded.
        0509-152   Member libcrypto.so.1.1 is not found in archive
        0509-022 Cannot load module /opt/freeware/lib/python3.9/site-packages/libdnf/_common_types.so.
        0509-150   Dependent module /opt/freeware/lib/libdnf.a(libdnf.so.2) could not be loaded.
 
CAUSE: An old, non-AIX openssl package is installed.
# rpm -qa openssl:  openssl-1.0.2s-1.ppc
 
SOLUTION: Remove the openssl package:
# rpm -e openssl
 
3) Try the update again.
# dnf update
Traceback (most recent call last):
  File "/opt/freeware/bin/dnf", line 57, in <module>
    from dnf.cli import main
  File "/opt/freeware/lib/python3.9/site-packages/dnf/__init__.py", line 32, in <module>
    import dnf.base
  File "/opt/freeware/lib/python3.9/site-packages/dnf/base.py", line 29, in <module>
    import libdnf.transaction
  File "/opt/freeware/lib/python3.9/site-packages/libdnf/__init__.py", line 3, in <module>
    from . import common_types
  File "/opt/freeware/lib/python3.9/site-packages/libdnf/common_types.py", line 13, in <module>
    from . import _common_types
ImportError:    0509-130 Symbol resolution failed for /opt/freeware/lib/libstdc++.a(libstdc++.so.6) because:
        0509-136   Symbol _GLOBAL__AIXI_shr_o (number 4) is not exported from
                   dependent module /opt/freeware/lib/pthread/libgcc_s.a(shr.o).
        0509-136   Symbol _GLOBAL__AIXD_shr_o (number 5) is not exported from
                   dependent module /opt/freeware/lib/pthread/libgcc_s.a(shr.o).
        0509-022 Cannot load module /opt/freeware/lib/python3.9/site-packages/libdnf/_common_types.so.
        0509-026 System error: Cannot run a file that does not have a valid format.
        0509-192 Examine .loader section symbols with the
                 'dump -Tv' command.
 
CAUSE: A low level of libgcc is installed.
# rpm -qa libgcc:  libgcc-4.8.5-1.ppc
 
SOLUTION: Remove the libgcc package:
# rpm -e libgcc-4.8.5-1.ppc
 
4) Try the update again.
# dnf update
Traceback (most recent call last):
  File "/opt/freeware/bin/dnf", line 57, in <module>
    from dnf.cli import main
  File "/opt/freeware/lib/python3.9/site-packages/dnf/__init__.py", line 32, in <module>
    import dnf.base
  File "/opt/freeware/lib/python3.9/site-packages/dnf/base.py", line 29, in <module>
    import libdnf.transaction
  File "/opt/freeware/lib/python3.9/site-packages/libdnf/__init__.py", line 3, in <module>
    from . import common_types
  File "/opt/freeware/lib/python3.9/site-packages/libdnf/common_types.py", line 13, in <module>
    from . import _common_types
ImportError:    0509-022 Cannot load module /opt/freeware/lib/python3.9/site-packages/libdnf/_common_types.so.
        0509-150   Dependent module libgcc_s.a(shr.o) could not be loaded.
        0509-022 Cannot load module libgcc_s.a(shr.o).
        0509-026 System error: A file or directory in the path name does not exist.
        0509-022 Cannot load module /opt/freeware/lib/python3.9/site-packages/libdnf/_common_types.so.
        0509-150   Dependent module /opt/freeware/lib/python3.9/site-packages/libdnf/_common_types.so could not be loaded.
 
CAUSE: The DNF install of libdnf did not create  /opt/freeware/libdnfdeps/libgcc_s.a, since libgcc was already installed.
Now the libgcc_s.a was removed, so there is a new libgcc error.
 
SOLUTION:  Force overwrite the libdnf.
 
# rpm -ivh --force  libdnf-0.39.1-32_3.aix7.1.ppc.rpm
5) Try the update again
# dnf update
Last metadata expiration check: 0:02:29 ago on Wed Oct 16 14:22:25 CDT 2024.
Dependencies resolved.
=========================================================================================================
 Package      Architecture       Version                     Repository                      Size
=========================================================================================================
Upgrading:
 ca-certificates        ppc     2024.2.66-1      AIX_Toolbox_local        1.0 M
 libcomps               ppc     0.1.15-101       AIX_Toolbox_local        622 k
 libmodulemd            ppc     1.5.2-100        AIX_Toolbox_local        1.2 M
 librepo                ppc     1.11.0-103       AIX_Toolbox_local        336 k
 libsmartcols           ppc     2.34-101         AIX_Toolbox_local        614 k
 libzstd                ppc     1.5.2-3          AIX_Toolbox_local        1.5 M
 p11-kit                ppc     0.24.1-1         AIX_Toolbox_local        3.7 M
 p11-kit-tools          ppc     0.24.1-1         AIX_Toolbox_local        203 k
 python3                ppc     3.9.20-1         AIX_Toolbox_local        9.0 k
 python3-gpg            ppc     1.13.1-101       AIX_Toolbox_local        7.1 k
 python3-libcomps       ppc     0.1.15-101       AIX_Toolbox_local         15 k
 python3-librepo        ppc     1.11.0-103       AIX_Toolbox_local         13 k
 python3.9              ppc     3.9.20-1         AIX_Toolbox_local         40 M
 python3.9-gpg          ppc     1.13.1-101       AIX_Toolbox_local        1.7 M
 python3.9-libcomps     ppc     0.1.15-101       AIX_Toolbox_local        589 k
 python3.9-librepo      ppc     1.11.0-103       AIX_Toolbox_local        223 k
 zchunk-libs            ppc     1.1.4-103        AIX_Toolbox_local        824 k
 dnf                    ppc     4.2.17-32_51     AIX_Toolbox_72_local      14 k
 dnf-automatic          ppc     4.2.17-32_51     AIX_Toolbox_72_local      12 k
 dnf-data               ppc     4.2.17-32_51     AIX_Toolbox_72_local      24 k
 libdnf                 ppc     0.39.1-32_52     AIX_Toolbox_72_local     2.3 M
 libsolv                ppc     0.7.9-32_53      AIX_Toolbox_72_local     672 k
 python3-dnf            ppc     4.2.17-32_51     AIX_Toolbox_72_local     8.0 k
 python3-hawkey         ppc     0.39.1-32_52     AIX_Toolbox_72_local      23 k
 python3-libdnf         ppc     0.39.1-32_52     AIX_Toolbox_72_local      23 k
 python3.9-dnf          ppc     4.2.17-32_51     AIX_Toolbox_72_local     193 k
 python3.9-hawkey       ppc     0.39.1-32_52     AIX_Toolbox_72_local     409 k
 python3.9-libdnf       ppc     0.39.1-32_52     AIX_Toolbox_72_local     2.2 M
Installing dependencies:
 bash                   ppc     5.2.21-1         AIX_Toolbox_local        3.0 M
 bzip2                  ppc     1.0.8-2          AIX_Toolbox_local        238 k
 check                  ppc     0.13.0-1         AIX_Toolbox_local         93 k
 curl                   ppc     8.9.1-1          AIX_Toolbox_local        2.0 M
 cyrus-sasl             ppc     2.1.28-1         AIX_Toolbox_local        1.2 M
 db                     ppc     1:5.3.28-1       AIX_Toolbox_local         17 M
 expat                  ppc     2.6.3-1          AIX_Toolbox_local        855 k
 gdbm                   ppc     1.23-1           AIX_Toolbox_local        283 k
 gettext                ppc     0.21-2           AIX_Toolbox_local         14 M
 glib2                  ppc     2.81.0-1         AIX_Toolbox_local         16 M
 gmp                    ppc     6.3.0-1          AIX_Toolbox_local        1.0 M
 gnupg2                 ppc     2.4.3-1          AIX_Toolbox_local        9.9 M
 gnutls                 ppc     3.8.2-1          AIX_Toolbox_local        4.4 M
 gpgme                  ppc     1.13.1-101       AIX_Toolbox_local        518 k
 info                   ppc     7.0.2-1          AIX_Toolbox_local        643 k
 json-c                 ppc     0.17-1           AIX_Toolbox_local        381 k
 krb5-libs              ppc     1.21.3-1         AIX_Toolbox_local        7.5 M
 libassuan              ppc     2.5.6-1          AIX_Toolbox_local        332 k
 libffi                 ppc     3.4.4-2          AIX_Toolbox_local         73 k
 libgcrypt              ppc     1.10.3-1         AIX_Toolbox_local        2.7 M
 libgpg-error           ppc     1.49-1           AIX_Toolbox_local        515 k
 libiconv               ppc     1.17-1           AIX_Toolbox_local        1.6 M
 libksba                ppc     1.6.3-1          AIX_Toolbox_local        932 k
 libnghttp2             ppc     1.62.1-1         AIX_Toolbox_local        311 k
 libssh2                ppc     1.11.0-1         AIX_Toolbox_local        975 k
 libtasn1               ppc     4.19.0-1         AIX_Toolbox_local        227 k
 libtextstyle           ppc     0.21-2           AIX_Toolbox_local        1.1 M
 libunistring           ppc     1.1-1            AIX_Toolbox_local        3.0 M
 libxml2                ppc     2.12.9-1         AIX_Toolbox_local        3.1 M
 libyaml                ppc     0.2.5-1          AIX_Toolbox_local        509 k
 ncurses                ppc     6.4-1            AIX_Toolbox_local        3.8 M
 nettle                 ppc     3.9.1-1          AIX_Toolbox_local        3.1 M
 npth                   ppc     1.5-1            AIX_Toolbox_local        220 k
 openldap               ppc     2.5.16-1         AIX_Toolbox_local        4.0 M
 pcre2                  ppc     10.40-1          AIX_Toolbox_local        1.3 M
 readline               ppc     8.2-1            AIX_Toolbox_local        2.3 M
 sqlite                 ppc     3.45.3-1         AIX_Toolbox_local         11 M
 xz-libs                ppc     5.4.3-1          AIX_Toolbox_local        575 k
 zlib                   ppc     1.2.13-1         AIX_Toolbox_local        345 k
 libgcc                 ppc     1:10-2           AIX_Toolbox_72_local      15 k
 libgcc10               ppc     10.3.0-6         AIX_Toolbox_72_local     793 k
 libgomp                ppc     1:10-2           AIX_Toolbox_72_local      14 k
 libgomp10              ppc     10.3.0-6         AIX_Toolbox_72_local     2.0 M
 libstdc++              ppc     1:10-2           AIX_Toolbox_72_local      14 k
 libstdc++10            ppc     10.3.0-6         AIX_Toolbox_72_local      19 M
Installing weak dependencies:
 pinentry               ppc     1.0.0-1          AIX_Toolbox_local        115 k
 
Transaction Summary
=====================================================================================================
Install  46 Packages
Upgrade  28 Packages
 
Total size: 202 M
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Error: Transaction test error:
  file /opt/freeware/lib/libdb-4.8.a from install of db-1:5.3.28-1.ppc conflicts with file from package db4-4.8.30-1.ppc
  file /opt/freeware/lib/libdb-4.8.so from install of db-1:5.3.28-1.ppc conflicts with file from package db4-4.8.30-1.ppc
  file /opt/freeware/lib/libdb.a from install of db-1:5.3.28-1.ppc conflicts with file from package db4-4.8.30-1.ppc
  file /opt/freeware/lib64/libdb-4.8.so from install of db-1:5.3.28-1.ppc conflicts with file from package db4-4.8.30-1.ppc
 
CAUSE:  An old, non-Toolbox db4 package exists. 
# rpm -qa db4
db4-4.8.30-1.ppc
 
SOLUTION: This does not cause issues for DNF, but if this was installed for other non-Toolbox packages, there might be conflicts. The administrator will need to evaluate any pre-DNF or non-AIX packages and remove or force overwrite as needed.
 

Summary

The described errors are only basic examples of the most common issues experienced when packages exist prior to AIX DNF installation, espeically if they are packages that are not provided by IBM, yet provide the same files as a newer package from the Toolbox. These issues highlight the importance of Open Source software maintenance planning.  
Best practices include:
0 comments
4 views

Permalink