Power

 View Only
  • 1.  DNF update breaks dnf AIX 7.3.1.2

    Posted Wed September 27, 2023 01:03 PM
    Edited by Kolin Vance Wed October 04, 2023 04:21 PM

    After removing all rpms doing an "updtvpkg" then running "dnf_aixtoolbox.sh -y"  

    dnf is running but python3 is broken:

    # python3
    Could not load program python3.9:
    rtld: 0712-002 fatal error: exiting.

    Tried installing a later package "dnf install python3-3.9.16-2" a version that is working on other systems.  Same error.

    If I run "dnf update" or "dnf update python3"

    and unset LIBPATH

    python3 begins working.

    But dnf is now broken:

     # dnf repolist
    Traceback (most recent call last):
      File "/opt/freeware/bin/dnf", line 58, in <module>
        from dnf.cli import main
      File "/opt/freeware/lib/python3.9/site-packages/dnf/__init__.py", line 30, 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/lib64/python3.9/site-packages/libdnf/__init__.py", line 3, in <module>
        from . import common_types
      File "/opt/freeware/lib64/python3.9/site-packages/libdnf/common_types.py", line 13, in <module>
        from . import _common_types
    ImportError: Could not load module /opt/freeware/lib64/librepo.a(librepo.so.0).
            Dependent module /opt/freeware/lib/libcrypto.a(libcrypto.so.1.1) could not be loaded.
            Member libcrypto.so.1.1 is not found in archive

    exporting LIBPATH=/usr/lib and running dnf repolist

    # dnf repolist
    Could not load program /opt/freeware/bin/python3.9:
    Symbol resolution failed for /opt/freeware/lib64/libpython3.9.a[libpython3.9.so] because:
            Symbol _GLOBAL__AIXI_libintl_so (number 284) is not exported from dependent
              module /usr/opt/rpm/lib/libintl.a[libintl.so.8].
            Symbol _GLOBAL__AIXD_libintl_so (number 285) is not exported from dependent
              module /usr/opt/rpm/lib/libintl.a[libintl.so.8].
    Examine .loader section symbols with the 'dump -Tv' command.

    Installed rpms:

     # rpm -qa
    libgcc-10-2.ppc
    zlib-1.2.13-1.ppc
    gmp-6.2.1-1.ppc
    ncurses-6.4-1.ppc
    libgomp10-10.3.0-6.ppc
    libffi-3.4.2-1.ppc
    xz-libs-5.4.3-1.ppc
    info-7.0.2-1.ppc
    libunistring-0.9.10-1.ppc
    libiconv-1.17-1.ppc
    sed-4.8-1.ppc
    gcc10-10.3.0-6.ppc
    gcc-10-2.ppc
    libgpg-error-1.45-1.ppc
    libassuan-2.5.5-1.ppc
    readline-8.2-1.ppc
    libtasn1-4.19.0-1.ppc
    expat-2.5.0-1.ppc
    bzip2-1.0.8-2.ppc
    libgcrypt-1.10.2-1.ppc
    cyrus-sasl-2.1.28-1.ppc
    krb5-libs-1.20.1-1.ppc
    p11-kit-tools-0.24.1-1.ppc
    libcomps-0.1.15-101.ppc
    dnf-data-4.2.17-64_53.ppc
    nettle-3.7.3-1.ppc
    libyaml-0.2.5-1.ppc
    libssh2-1.10.0-2.ppc
    curl-8.2.1-1.ppc
    libsolv-0.7.9-64_52.ppc
    gpgme-1.13.1-101.ppc
    libdnf-0.39.1-64_52.ppc
    python3.9-3.9.17-1.ppc
    python3.9-libdnf-0.39.1-64_52.ppc
    python3.9-gpg-1.13.1-101.ppc
    python3.9-dnf-4.2.17-64_53.ppc
    dnf-4.2.17-64_53.ppc
    python3-librepo-1.11.0-102.ppc
    python3-libcomps-0.1.15-101.ppc
    python3-hawkey-0.39.1-64_52.ppc
    AIX-rpm-7.3.1.3-1.ppc
    rpm-python3.9-4.15.1-64_4.ppc
    rpm-python3-4.15.1-64_4.ppc
    libgcc10-10.3.0-6.ppc
    libstdc++10-10.3.0-6.ppc
    libstdc++-10-2.ppc
    mpfr-4.1.0-1.ppc
    libmpc-1.2.1-1.ppc
    libgomp-10-2.ppc
    pcre2-10.40-1.ppc
    glib2-2.76.3-1.ppc
    libtextstyle-0.21-2.ppc
    libxml2-2.10.4-1.ppc
    gettext-0.21-2.ppc
    gcc10-cpp-10.3.0-6.ppc
    gcc-cpp-10-2.ppc
    libzstd-1.5.2-2.ppc
    libsmartcols-2.34-101.ppc
    sqlite-3.41.2-1.ppc
    json-c-0.15-2.ppc
    check-0.13.0-1.ppc
    p11-kit-0.24.1-1.ppc
    db-5.3.28-1.ppc
    openldap-2.5.16-1.ppc
    libksba-1.6.3-1.ppc

    ca-certificates-2023.2.60-2.ppc

    pinentry-1.0.0-1.ppc
    npth-1.5-1.ppc
    gnutls-3.7.9-1.ppc
    libmodulemd-1.5.2-100.ppc
    libnghttp2-1.46.0-1.ppc
    zchunk-libs-1.1.4-103.ppc
    gnupg2-2.2.35-1.ppc
    librepo-1.11.0-102.ppc
    gdbm-1.23-1.ppc
    python3-3.9.17-1.ppc
    python3.9-hawkey-0.39.1-64_52.ppc
    python3.9-libcomps-0.1.15-101.ppc
    python3-dnf-4.2.17-64_53.ppc
    python3.9-librepo-1.11.0-102.ppc
    dnf-automatic-4.2.17-64_53.ppc
    python3-gpg-1.13.1-101.ppc
    python3-libdnf-0.39.1-64_52.ppc

    I found that the dnf install is not linking in the libraries from "/opt/freeware/libdnfdeps"  check the required libraries and manually link them to /opt/freeware/lib/pthread/ library ie:

    ln -s /opt/freeware/libdnfdeps/<required library> /opt/freeware/lib/pthread/<required library>


    ------------------------------
    Kolin Vance
    ------------------------------



  • 2.  RE: DNF update breaks dnf AIX 7.3.1.2

    Posted Wed January 17, 2024 12:05 PM

    Hello Kolin

    I had a problem with createrepo because of libiconv library. I did also a "dnf update dnf" and now all "dnf-commands" lead to similar errors.

    Before the update all dnf taks were successfull.

    # dnf history
    Traceback (most recent call last):
      File "/opt/freeware/bin/dnf", line 58, in <module>
        from dnf.cli import main
      File "/opt/freeware/lib/python3.9/site-packages/dnf/__init__.py", line 30, 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/lib64/python3.9/site-packages/libdnf/__init__.py", line 3, in <module>
        from . import common_types
      File "/opt/freeware/lib64/python3.9/site-packages/libdnf/common_types.py", line 13, in <module>
        from . import _common_types
    ImportError:    0509-022 Cannot load module /opt/freeware/lib64/python3.9/site-packages/libdnf/_common_types.so.
            0509-150   Dependent module /usr/lib/libiconv.a(libiconv.so.2) could not be loaded.
            0509-152   Member libiconv.so.2 is not found in archive

    I do not get your hint to link the new libraries. I do now have the directory /opt/freeware/libdnfdeps.

    May you have more details?

    # oslevel -s
    7300-01-01-2246

    # rpm -qa|grep dnf
    python3.9-dnf-plugins-core-4.0.16-64_52.ppc
    libdnf-0.39.1-64_52.ppc
    python3-dnf-4.2.17-64_53.ppc
    dnf-automatic-4.2.17-64_53.ppc
    python3-dnf-plugins-core-4.0.16-64_52.ppc
    dnf-data-4.2.17-64_53.ppc
    python3.9-libdnf-0.39.1-64_52.ppc
    python3.9-dnf-4.2.17-64_53.ppc
    dnf-4.2.17-64_53.ppc
    python3-libdnf-0.39.1-64_52.ppc

    Any help would be appreciated 



    ------------------------------
    Stefan Koller
    ------------------------------



  • 3.  RE: DNF update breaks dnf AIX 7.3.1.2

    Posted Wed January 17, 2024 04:53 PM
    Edited by Kolin Vance Wed January 17, 2024 04:55 PM

    Stefan:

       Start with the lowest error on the list first, "/usr/lib/libiconv.a(libiconv.so.2)" 

          Do an ls -l on /usr/lib/libiconv.a then ar -tv on the same file.  This will verify the "libiconv.so.2" is not contained in that archive file.

    Next

          Do a find in /opt and look for libiconv.a also do an ls -l when you find it (make sure its not linked) then do the ar -tv <on the libiconv.a in /opt>  it should contain the  "libiconv.so.2" you're looking for.

    Next

          Move the /usr/lib/libiconv.a to some other file name, and do ln -s <on the libiconv.a in /opt> /usr/lib/libiconv.a

    This will give you the libiconv.so.2 that dnf needs.  If you get another error, do a rinse and repeat on checking and moving the incorrect files out of /usr/lib and link the correct archives to /usr/lib.

    -Kolin



    ------------------------------
    Kolin Vance
    ------------------------------



  • 4.  RE: DNF update breaks dnf AIX 7.3.1.2

    Posted Thu January 18, 2024 01:40 AM
    Edited by Stefan Koller Fri February 02, 2024 02:40 AM

    Hi Kolin

    Thanks for the hint - I got it run again. 
    Here my procedure for the rest of the community.

    ar -tv /usr/lib/libiconv.a
    find /opt -type f -name libiconv.a
    ar -tv /opt/freeware/lib/libiconv.a
    mv /usr/lib/libiconv.a /usr/lib/libiconv.a.old
    ln -s /opt/freeware/lib/libiconv.a /usr/lib/libiconv.a

    After this I got some "0509-130 Symbol resolution failed for /opt/freeware/lib/libglib-2.0.a[libglib-2.0.so.0]" errors

    This I could fix with adapting my LIBPATH

    before: export LIBPATH=/usr/lib:/opt/freeware/lib:/usr/local/lib

    CAVEAT: After making the changes above my system did not boot anymore correctly.

    It seems /usr/lib/libiconv.a is neede during boot before /opt is mounted. Because this file is a link into /opt/freeware the system behaved very strange. Filesystems got not mounted, sshd not started beacause of missing random-link, other VGs stayed offline.

    I set back /usr/lib/libiconv.a to the original file. I unset LIBPATH. Afterwards the system booted without problems and dnf was working. It seems the original problem was only caused because we had set LIBPATH for root.


    now:     export LIBPATH=/opt/freeware/lib:/usr/lib:/usr/local/lib

    Now dnf work again.

    Regards Stefan



    ------------------------------
    Stefan Koller
    ------------------------------