Unmet dependencies prevent system update

Hi!
Recently a system update on my desktop machine failed because of unmet dependencies.
Two packages on my system have this requirement: “java-runtime=21”
Feeling pressured by the xz “event” i chose to do the very one thing that you are always warned about: i edited my pacman.conf to ignore “jdk-openjdk” from being updated. And i feel shitty about it.

Ok, i guess openjdk is not a crucial system library. Still i dont’t feel happy about this.

What is the preferred procedure in a situation like mine?

I also thought about manipulating the dependencies of the two packages to “java-runtime=22”. But i wouldn’t know how (where?) to do this. And it still would feel wrong.

I remember i’ve had the same problem with the exact same packages before and i chose to deinstall and (much) later reinstall those packages. However, this approach obviously feels inconvenient.

Can you share the full output from the update so we can see the exact situation causing it?

This is a new output without any ignored packages in the pacman.conf.
The part about the error seems identical to the original output.

yay -Syu

Can’t open history
:: Paketdatenbanken werden synchronisiert …
core ist aktuell
extra 8,1 MiB 4,73 MiB/s 00:02 [########################################################] 100%
multilib ist aktuell
:: Durchsuche AUR nach Updates…
:: Durchsuche Datenbanken nach Updates…
→ Pakete nicht im AUR: arc-gtk-theme-eos endeavouros-keyring endeavouros-mirrorlist endeavouros-theming eos-apps-info eos-bash-shared eos-hooks eos-lightdm-slick-theme eos-log-tool eos-packagelist eos-qogir-icons eos-quickstart eos-rankmirrors eos-settings-cinnamon eos-translations eos-update-notifier js78 nvidia-hook nvidia-inst nvidia-installer-common welcome
→ Fehlende AUR Debug-Pakete: poker-odds-git-debug
→ Verwaiste (nicht gepflegte) AUR-Pakete: kjs
→ reflector-simple: lokales (2023-2) ist neuer als das AUR (3.3-1)
:: 13 Pakete zu upgraden/installieren.
13 core/hwdata 0.380-1 → 0.381-1
12 core/libnghttp2 1.60.0-1 → 1.61.0-1
11 core/linux 6.8.2.arch2-1 → 6.8.4.arch1-1
10 core/linux-headers 6.8.2.arch2-1 → 6.8.4.arch1-1
9 core/linux-lts 6.6.24-1 → 6.6.25-1
8 core/man-db 2.12.0-1 → 2.12.1-1
7 extra/geoip-database 20240309-1 → 20240406-1
6 extra/jdk-openjdk 21.0.2.u13-3 → 22.u36-1
5 extra/libunwind 1.8.1-1 → 1.8.1-2
4 extra/libx11 1.8.8-3 → 1.8.9-1
3 extra/libxmlb 0.3.16-1 → 0.3.17-1
2 extra/soundtouch 2.3.2-1 → 2.3.3-1
1 multilib/lib32-libnghttp2 1.60.0-1 → 1.61.0-1
==> Pakete zum Ausschließen: (z.B. “1 2 3”, “1-3”, “^4” oder Repo-Name)
→ Das Ausschließen von Paketen kann zu teilweisen Aktualisierungen führen und Systeme beschädigen.
==>
Sync Explicit (5): man-db-2.12.1-1, linux-6.8.4.arch1-1, jdk-openjdk-22.u36-1, linux-headers-6.8.4.arch1-1, linux-lts-6.6.25-1
Sync Dependency (8): libunwind-1.8.1-2, hwdata-0.381-1, geoip-database-20240406-1, lib32-libnghttp2-1.61.0-1, soundtouch-2.3.3-1, libx11-1.8.9-1, libnghttp2-1.61.0-1, libxmlb-0.3.17-1
:: Paketdatenbanken werden synchronisiert …
core ist aktuell
extra ist aktuell
multilib ist aktuell
:: Vollständige Systemaktualisierung wird gestartet …
Abhängigkeiten werden aufgelöst …
Nach in Konflikt stehenden Paketen wird gesucht …
Fehler: Vorgang konnte nicht vorbereitet werden (Kann Abhängigkeiten nicht erfüllen)
:: Installation von jdk-openjdk (22.u36-1) verletzt Abhängigkeit »java-runtime=21«, benötigt von mediathekview
:: Installation von jdk-openjdk (22.u36-1) verletzt Abhängigkeit »java-runtime=21«, benötigt von pdfsam
→ error installing repo packages

What happens if you do this:

sudo pacman -Syu jre21-openjdk

That should install the new package that solves that dependency at the same time as the update to Java occurs.

1 Like

I have a hard time understanding how and why, but your solution worked. :slightly_smiling_face:

Thanks!

1 Like

It looks like you have an additional problem.
Can you please post your pacman.conf. The error comes from the missing entry of the EndeavourOS repo

Oh, i admit i have somehow gotten used to this error.
And i don’t know when i first got aware of it nor do i know what changes i might have done to cause this.

pacman.conf

/etc/pacman.conf

See the pacman.conf(5) manpage for option and repository directives

GENERAL OPTIONS

[options]

The following paths are commented out with their default values listed.

If you wish to use different paths, uncomment and update the paths.

#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto

Pacman won’t upgrade packages listed in IgnorePkg and members of IgnoreGroup

#IgnorePkg =
#IgnoreGroup =

#NoUpgrade =
#NoExtract =

Misc options

#UseSyslog
#Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
#ParallelDownloads = 5

By default, pacman accepts packages signed by keys that its local keyring

trusts (see pacman-key and its man page), as well as unsigned packages.

SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

NOTE: You must run pacman-key --init before first using pacman; the local

keyring can then be populated with the keys of all official Arch Linux

packagers with pacman-key --populate archlinux.

REPOSITORIES

- can be defined here or included from another file

- pacman will search repositories in the order defined here

- local/custom mirrors can be added here or in separate files

- repositories listed first will take precedence when packages

have identical names, regardless of version number

- URLs will have $repo replaced by the name of the current repo

- URLs will have $arch replaced by the name of the architecture

Repository entries are of the format:

[repo-name]

Server = ServerName

Include = IncludePath

The header [repo-name] is crucial - it must be present and

uncommented to enable the repo.

The testing repositories are disabled by default. To enable, uncomment the

repo name header and Include lines. You can add preferred servers immediately

after the header, and they will be used before the default mirrors.

#[core-testing]
#Include = /etc/pacman.d/mirrorlist

[core]
Include = /etc/pacman.d/mirrorlist

#[extra-testing]
#Include = /etc/pacman.d/mirrorlist

[extra]
Include = /etc/pacman.d/mirrorlist

If you want to run 32 bit applications on your x86_64 system,

enable the multilib repositories as required here.

#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist

[multilib]
Include = /etc/pacman.d/mirrorlist

An example of a custom package repository. See the pacman manpage for

tips on creating your own repositories.

#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

It looks like you overwrote your EndeavourOS pacman.conf with an Arch one. You have to be careful when merging pacnew files.

You can fix it by overwriting it again with this command:

curl https://raw.githubusercontent.com/endeavouros-team/EndeavourOS-ISO/main/airootfs/etc/pacman.conf | sudo tee /etc/pacman.conf

That will replace it with the EOS version.

Embarrassing. :face_with_open_eyes_and_hand_over_mouth:
I generally don’t mess with package management, because it’s beyond my knowledge and it’s too easy to break things.
I have foggy memories of a tenacious problem, where i obviously went to an extreme solution.

Much thanks to both of you. :slightly_smiling_face:

2 Likes

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