Artix Linux Forum

Artix Linux => Package management => Topic started by: 0xAA55 on 08 December 2022, 04:25:38

Title: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf
Post by: 0xAA55 on 08 December 2022, 04:25:38
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
Title: Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf
Post by: rayburn on 09 December 2022, 14:47:46
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.

 :)
Title: Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf
Post by: Dudemanguy on 09 December 2022, 15:10:55
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.
Title: Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf
Post by: 0xAA55 on 11 December 2022, 04:54:07
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:

Title: Re: unable to satisfy dependency 'libelf=0.187' required by lib32-libelf
Post by: 0xAA55 on 11 December 2022, 05:00:15
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