Skip to main content
Topic solved
This topic has been marked as solved and requires no further attention.
Topic: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf (Read 524 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

unable to satisfy dependency 'libelf=0.187' required by lib32-libelf

I've been trying to update my system today and I'm seeing this error message:

Code: [Select]
$ doas pacman -Syu

...

:: The following package cannot be upgraded due to unresolvable dependencies:
      lib32-mesa

:: Do you want to skip the above package for this upgrade? [y/N] N
error: failed to prepare transaction (could not satisfy dependencies)
:: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf
:: unable to satisfy dependency 'lib32-libelf' required by lib32-mesa

My system is otherwise up to date. I've merged any /etc/**/*.pacnew config files. I've kept my mirrorlists up to date, I've done `pacman-key --refresh-keys` recently. I'm not sure exactly how to resolve these kinds of errors. Searching the internet I've found a few threads but they always answer in a vauge manner like "just enable the testing repo in your mirrors". It doesn't really help me understand what's really wrong and what tools I have to fix it. Can someone help me?

The repos I have in my pacman.conf:
Code: [Select]
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
[testing]
Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
[community-testing]
Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
[multilib-testing]
Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch
[lib32]
Include = /etc/pacman.d/mirrorlist

Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf

Reply #1
I am sorry that I can't help you as to your problem, however, the wiki does say about using 'testing' repos:

Warning! testing is what the name asserts: testing. In Artix, these packages go through the gremlins repositories for a period of time. Only enable these if you are an experienced user and know how to deal with system breakage.

 :)

Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf

Reply #2
You definitely shouldn't have arch's testing repos enabled without also using artix's testing repos. Anyways, for me libelf and lib32-elf are both at 0.188 in the repos so it should be OK now.

Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf

Reply #3
So I had no idea, and it's not notated in the pacman.conf, that the order of the repos was very important. It seems like having the lib32 repo after the arch multilib repo was causing issues. If there are two libraries of the same name, then the order in the pacman.conf seems to be how it resolves which one to use. By testing it seems like its very important to order the repos in the order:

  • Artix gremlins (commented out unless I want to use some beta program)
  • Artix system
  • Artix world
  • Artix gremlins-galaxy (commented out)
  • Artix galaxy
  • Artix lib32-gremlins (commented out)
  • Artix lib32
  • Any Arch repo I want to add following the same order style as above I have:
  • Arch extra
  • Arch community-testing (commented out)
  • Arch community
  • Arch multilib-testing (commented out)
  • Arch multilib

Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf

Reply #4
In case anyone is wondering, the actual conf file goes:

Code: [Select]

# [gremlins]
# Include = /etc/pacman.d/mirrorlist
[system]
Include = /etc/pacman.d/mirrorlist
[world]
Include = /etc/pacman.d/mirrorlist
# [galaxy-gremlins]
# Include = /etc/pacman.d/mirrorlist
[galaxy]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the lib32 repositories as required here.
# [lib32-gremlins]
# Include = /etc/pacman.d/mirrorlist
[lib32]
Include = /etc/pacman.d/mirrorlist

# Arch Repos
# [testing]
# Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
# [community-testing]
# Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
# [multilib-testing]
# Include = /etc/pacman.d/mirrorlist-arch
[multilib]
Include = /etc/pacman.d/mirrorlist-arch