Open Source Development

 View Only

 Another dnf update issue. Python version maybe??

Toby Buck's profile image
Toby Buck posted Wed October 22, 2025 09:04 AM

$ oslevel -s
7200-05-03-2148

I've been slowly trying to get dnf all updated but now I seem to have broken it...   After slowly fixing one thing or another, I got to the point where a dnf update said it would remove dnf.

$ sudo /opt/freeware/bin/dnf update -y      
AIX generic repository                                                                                                                                    13 kB/s | 2.7 kB     00:00    
AIX noarch repository                                                                                                                                    7.3 kB/s | 2.6 kB     00:00    
AIX 7.2 specific repository                                                                                                                               13 kB/s | 2.7 kB     00:00    
Error: 
 Problem: The operation would result in removing the following protected packages: dnf
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

From another thread here, the solution was to update rpm.rte.  I upgraded from 

$ lslpp -Lc | grep rpm.rte
rpm.rte:rpm.rte:4.15.1.3: : :C: :RPM Package Manager: : : : : : :1:0:/:

to 

$ lslpp -Lc | grep rpm.rte             
rpm.rte:rpm.rte:4.15.1.1017: : :C: :RPM Package Manager: : : : : : :0:0:/:

Now dnf doesn't work at all.  No matter if I'm trying to do an update or just list installed, I get:  

# dnf list installed
Traceback (most recent call last):
  File "dnf", line 57, in <module>
    from dnf.cli import main
  File "/opt/freeware/lib/python3.7/site-packages/dnf/__init__.py", line 32, in <module>
    import dnf.base
  File "/opt/freeware/lib/python3.7/site-packages/dnf/base.py", line 29, in <module>
    import libdnf.transaction
  File "/opt/freeware/lib/python3.7/site-packages/libdnf/__init__.py", line 3, in <module>
    from . import common_types
  File "/opt/freeware/lib/python3.7/site-packages/libdnf/common_types.py", line 13, in <module>
    from . import _common_types
ImportError: rtld: 0712-001 Symbol lua_newuserdata was referenced
      from module /usr/opt/rpm/lib/librpmio.so(), but a runtime definition
      of the symbol was not found.
root /># 

Looking in /opt/freeware/bin I only see python 3.7

>$ ls -l /opt/freeware/bin/python*
lrwxrwxrwx    1 root     system           10 Jan 25 2022  /opt/freeware/bin/python3 -> python3_64
lrwxrwxrwx    1 root     system           12 Jan 25 2022  /opt/freeware/bin/python3.7 -> python3.7_64
lrwxrwxrwx    1 root     system           13 Jan 25 2022  /opt/freeware/bin/python3.7_32 -> python3.7m_32
lrwxrwxrwx    1 root     system           13 Jan 25 2022  /opt/freeware/bin/python3.7_64 -> python3.7m_64
lrwxrwxrwx    1 root     system           13 Jan 25 2022  /opt/freeware/bin/python3.7m -> python3.7m_64
-rwxr-xr-x    1 root     system       477917 Dec 15 2021  /opt/freeware/bin/python3.7m_32
-rwxr-xr-x    1 root     system       493079 Dec 15 2021  /opt/freeware/bin/python3.7m_64
lrwxrwxrwx    1 root     system           12 Jan 25 2022  /opt/freeware/bin/python3_32 -> python3.7_32
lrwxrwxrwx    1 root     system           12 Jan 25 2022  /opt/freeware/bin/python3_64 -> python3.7_64

I think 3.9 is required, but how was it working before I upgraded rpm.rte and more importantly, how to I update python without dnf?   I see a lot of python rpms in the AIXToolbox, but not sure which one(s) I need and if installing it via rpm will mess up dnf.  

Any help is greatly appreciated.   Thank you.

Steve Munday's profile image
Steve Munday IBM Champion

Toby,

Hi, have you tried forcing rpm.rte "back" to 4.15.1.3 so that "dnf" (sort of) works?  Once back there you could then look to explicitly install the python3.9 packages (i.e. not a blanket "dnf -y update") as a way to move forwards.

Python3.7 went EOS back in ~mid 2023 and later rpm.rte versions will need a newer version to be able to work.  I have a note (to myself) talking about the AIX Toolbox default python3 becoming python3-3.9 from mid-2023 and the need to ensure that dnf was updated BEFORE updating AIX (I appreciate you're not updating AIX).

Other things to try, ensure that both OpenSSL and OpenSSH are at their respective latest and greatest + run the "updtvpkg" command, too, to sync things up.

Hope that might be of some help/use.

All the best, Steve