After a system update, many applications but not all don’t start : konsole, systemsettings, dolphin etc…And it is not possible to logout of the session or restart the system cleanly.
A full system update?
Might as well make sure;
sudo pacman -Syu
Then if you have trouble rebooting from the menu then attempt;
qdbus6 org.kde.Shutdown /Shutdown logoutAndReboot
And if that does not work then;
systemctl reboot
Since I couldn’t open a terminal, I opened a virtual terminal using C^+Alt+F3. I then ran the update using ‘sudo pacman -Syu’ which installed a new kernel version: 6.18.8-2-cachyos. The qdbus6 failed, but the reboot worked perfectly.
Thanks,
Has your ‘wonkiness’ also been resolved?
The problem returned this evening after a second system update performed using Alacritty. The first update went smoothly. The second update seemed to be going well too, but the symptoms described yesterday reappeared (unable to launch many applications, including the console). I used the same method as yesterday, but the system, although running, displayed a black screen. I then rebooted from a snapshot created by timeshift at the time of the update.
I currently have control. I have a few additional observations. During the update, I saw that a new kernel was among the planned updates-(6.18.8-3), but it wasn’t installed and Alacritty didn’t offer a reboot.
With Octopi, i can see that the installed archlinux-keyring package is also outdated (20260131-2 should be installed instead of 20260119-1), and the same goes for the header files (6.18.6-1 is installed instead of 6.18.8-3).
Alacritty can no longer perform updates; it indicates an error: synchronization of all databases failed (database lock failed).
In your opinion, what should I do to return to a clean state ?
By far the simplest would be to reinstall. However, slightly less drastic would be to reinstall all packages, because it sounds moderately hosed (for whatever reason).
Beyond that, your guess is as good as mine.
I tried reinstalling all the packages with Alacritty, but i was immediately stopped because there is a problem with conflicting packages. Expat needs to be updated to revision 2.7.4-1.1, but version 2.7.3, required by lib32-expat, is installed. And there is no lib32-expat 2.7.4 revision available.
:: Synchronizing package databases…
cachyos-znver4 is up to date
cachyos-core-znver4 is up to date
cachyos-extra-znver4 is up to date
cachyos is up to date
core is up to date
extra is up to date
multilib is up to date
:: Starting full system upgrade…
warning: qt5-webchannel: local (5.15.18+kde+r3-1.1) is newer than cachyos (5.15.18+kde+r3-1)
resolving dependencies…
looking for conflicting packages…
error: failed to prepare transaction (could not satisfy dependencies)
:: installing expat (2.7.4-1.1) breaks dependency ‘expat=2.7.3’ required by lib32-expat
This sounds like something that occurred a few other times recently.
It happened because of a misconfigured /etc/pacman.conf with the multilib repository commented out, preventing the update of a lib32 package.
Since lib32-expat can’t be updated, expat can’t be either.
I’d give a look at your /etc/pacman.conf and post the contents here if you’re unsure.
You are right. Here are the lines from the pacman.conf file that concern multilib.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
[multilib]
Include = /etc/pacman.d/mirrorlist
Luckily for me, I don’t have any lib32* package installed. So all I need to do is modify the file pacman.conf by uncommenting multilib, and then update ?
If you posted it as is, it doesn’t look like your multilib was commented out. Only multilib-testing which is supposed to be commented out.
If that’s the case then unfortunately the problem lies elsewhere.
This made it sound like you had a lib32 package installed.
The problem mirrored the one I linked. Since as website states, there is a 2.7.4 version available but for some reason your system update is not delivering it to you. That’s what led me to believe that its repository was somehow unavailable.
‘Errare humanum est’. I have a few, I have to either investigate further to remove all lib32 libraries in use or wait for the lib32-expat update.
Can you post the entirety of your pacman.conf?
Please display it as a code block by putting 3 backticks (these → ` ) before and after the file’s contents.
[cachyos-znver4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist
[cachyos-core-znver4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist
[cachyos-extra-znver4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist
[cachyos]
Include = /etc/pacman.d/cachyos-mirrorlist
#[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
Is an example of a “healthy” pacman.conf. A minor difference could occur depending on your CPU architecture, as the first three repositories listed here are intended only for use by processors that support znver4. It’s okay if yours doesn’t match up to these three identically.
#
# /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
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
ILoveCandy
#NoProgressBar
#CheckSpace
VerbosePkgLists
DisableDownloadTimeout
ParallelDownloads = 10
DownloadUser = alpm
#DisableSandbox
# 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.
#
# cachyos repos
[cachyos-znver4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist
[cachyos-core-znver4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist
[cachyos-extra-znver4]
Include = /etc/pacman.d/cachyos-v4-mirrorlist
[cachyos]
Include = /etc/pacman.d/cachyos-mirrorlist
# 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
(Un)fortunately, that looks perfectly fine. So there must be something else preventing you from getting lib32-expat.
Can you do a
sudo cachyos-rate-mirrors
then attempt another system update
sudo pacman -Syu
If the update is stopped at the same place could you then do
pacman -Qi lib32-expat
The update of cachyos mirrors was successful.
Now I am back to my initial problem which is I need to reboot to a snapshot in keep control.
I’m not sure I understand. You updated mirrors, then ran a full system update, but now it’s broken again and you have to revert to a previous snapshot?
You have understood.
More precisely, when I reboot the system after the upgrade, I get a black screen. I then have to press C^Alt+Suppress once or twice to restart and select the snapshots.
As I successfully reinstalled all Cachyos packages with Alacritty, I now suspect a problem with grub, grub-btrfs and timeshift.
I analyzed the chained list of snapshots and it looked suspicious. I decided to switch to ‘chroot’ mode from Cachyos live to update the installed packages and then reinstall the grub. My system is now up and running again. For information, I give the list of commands to execute.
sudo su -
mount -o subvol=@ /dev/sda2
mount mount /dev/sda1 /mnt/boot/efi
mount -B /dev/ /mnt/dev
mount -B /proc /mnt/proc
mount -B /sys /mnt/sys
mount -B /run /mnt/run
chroot /mnt
pacman -Syu
mount -t efivarfs none /sys/firmware/efi/efivars
grub-install --target=x86_64-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg
Very nice
although I believe cachy-chroot could’ve saved you some of those commands ![]()