Zypper always fails on the first update

zypper 1.14.98

For the past 3 weeks zypper has failed to update the OS. The failure is below.

How do I fix it?

$ zypper --non-interactive --ignore-unknown --no-cd dup --auto-agree-with-licenses
... bunch o stuff ...

Checking for file conflicts: [.........done]
( 1/57) Removing: glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64 [..
/var/tmp/rpm-tmp.2MPyae: line 1: /usr/sbin/iconvconfig-32: cannot execute binary file: Exec format error
error: %preun(glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64) scriptlet failed, exit status 126
error: glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64: erase failed
error]
Abort, retry, ignore? [a/r/i] (a): a
-I-return value [0]

First, make sure your rpmdb is OK: sudo rpm --rebuilddb. Try again.
If it still fails, make sure you’re working with a clean cache and fresh metadata:
sudo zypper clean -a
sudo zypper ref -f
Try again

1 Like

Still fails with the same error message plus a bonus comment.

( 1/57) Removing: glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64 [..
/var/tmp/rpm-tmp.z9g88a: line 1: /usr/sbin/iconvconfig-32: cannot execute binary file: Exec format error
error: %preun(glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64) scriptlet failed, exit status 126
error: glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64: erase failed
error]
Abort, retry, ignore? [a/r/i] (a): a
Removal of (52541)glibc-gconv-modules-extra-32bit-2.40-160000.5.1.x86_64(@System) failed:
Error: Subprocess failed. Error: RPM failed: Command exited with status 1.
Problem occurred during or after installation or removal of packages:
Installation has been aborted as directed.
Please see the above error message for a hint.
-I-return value [0]

https://bugzilla.suse.com/show_bug.cgi?id=1246497

This looks very much like this tries to execute a 32 bit binary on a system that doesn’t have 32 bit support properly installed.

IIRC Leap 16.0 doesn’t support 32 bit binaries out of the box. Searching the web tells me that this is a bit more involved than just installing some packages:

AI Overview

In openSUSE Leap 16.0, native 32-bit hardware architecture (x86) is no longer supported. The distribution is strictly 64-bit and requires a processor supporting the x86-64-v2 microarchitecture. [1, 2]

While native 32-bit ISO installations are dropped, the system does offer limited runtime compatibility for 32-bit applications (like older games or legacy software) via IA-32 emulation: [1, 2, 3, 4, 5]

  • Enabling 32-bit Support: You can manually enable 32-bit execution by installing the grub2-compat-ia32 package and passing the kernel parameter ia32_emulation=1.

  • Gaming (Steam/Wine): Running 32-bit Windows apps or older games via Wine WOW64 requires this compatibility layer, along with relaxed SELinux security policies.

  • Software Compilation: openSUSE Leap does not support building new 32-bit applications; it provides runtime support only.

Is it possible that you just installed 32 bit support packages, e.g. like this:

% sudo zypper in glibc-gconv-modules-extra-32bit

The following recommended package was automatically selected:
  glibc-gconv-modules-extra-32bit

The following 4 NEW packages are going to be installed:
  glibc-32bit glibc-gconv-modules-extra-32bit nss-mdns-32bit samba-client-32bit

4 new packages to install.

Package download size:     3.1 MiB

Package install size change:
              |      12.4 MiB  required by packages that will be installed
    12.4 MiB  |  -      0 B    released by packages that will be removed

^C

This will probably not be enough without the additional steps mentioned above.

What is your use case for those 32 bit packages? Are you sure you need it?

I do not have a case for 32bit apps. It must be something left over from LEAP 15.6.

I have not installed anything specifically to use 32bit in at least 10 years.

Ah! Yes, this provided a solution.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.