UPDATE as of 04/26/2026
Per Google "The standard order" for CachyOS or any Arch-based system is:
Initialize: sudo pacman-key --init
(This sets up the GPG environment if it's broken or missing.)
Populate: sudo pacman-key --populate archlinux cachyos
(This imports the trusted keys into your system.)
Update Keyrings: sudo pacman -Sy archlinux-keyring cachyos-keyring
(This ensures you actually have the newest versions of those keys.)
Final Sync: sudo pacman -Syu
(This applies the updates to the rest of your system now that the signatures are verified.)
=====================================
"Why the order sometimes swaps"
=====================================
The "Chicken and Egg" Problem:
If your system's local archlinux-keyring is too old, it won't recognize the signatures on any new packages you try to download.
If you try to populate (Command 2) using an old keyring, it may not have the new master keys needed for current packages.
In this case, you must force-update the keyring package first (Command 3) so that the local database has the new keys to "populate" from.
Cosmic vs. KDE: Cosmic is a newer, more "experimental" DE in the CachyOS ecosystem. If you were pulling Cosmic packages from a very recent repository update, your system was more likely to demand the absolute latest keys immediately to verify those specific files.
Mirror Sync: Sometimes a mirror is slightly out of sync. Updating the keyring package first (3) manually pulls the latest security certificates from the server, which can "unstick" a populate command (2) that was failing because it was looking for keys that didn't exist in your old local files yet.
UPDATE as of 12/14/2025
To avoid failure when running `sudo ./cachy-repo.sh` on fresh installation following below update is required
$ diff ./NEW/cachyos-repo.sh ./OLD/cachyos-repo.sh
165c165
< "${mirror_url}/pacman-7.1.0.r7.gb9f7d4a-3-x86_64.pkg.tar.zst"
---
> "${mirror_url}/pacman-7.0.0.r7.g1f38429-2-x86_64.pkg.tar.zst"
END UPDATE
UPDATE as of 11/27/2025
Would you experience any issues with cachyos-rate-mirrors, just remind that cachyos-rate-mirrors is a wrapper script for the rate-mirrors tool, specifically configured to rank and update both Arch Linux and CachyOS mirrors for the user's mirror list file. It automatically tests available mirrors based on speed and synchronization status to ensure pacman downloads are optimized. It's a wrapper: It is not a replacement for rate-mirrors but rather a specific version or a script that uses rate-mirrors's underlying functionality. See man pages for rate-mirrors.
END UPDATE
Following below is procedure which allows to install on Arch Linux CachyOS v3 repositories along with pacman fork belongs to CachyOS. Proceed as advised in post on Arch Linux KVM Guest deployed via F43/42 KVM Hypervisor . Upgraded Arch Instances have successfully passed via `sudo pacman -Syyu` multiple times during several recent days. Re-sync of v3 repos and core && extra works pretty stable ( u,u^interrupted,sudo pacman -Syyu ) - the same commands as described in post after first reboot Arch VM into CachyOS kernel. I also have to confirm that Re-sync might be randomly required. The hack step below is scp cachyos-rate-mirrors script from remote native CachyOS Instance to the target one.
$ sudo pacman-key --init
$ sudo pacman-key --populate
$ sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
$ sudo pacman-key --lsign-key F3B607488DB35A47
Either run as script
$ cat reSignCachyos1.sh
sudo rm -rf /etc/pacman.d/gnupg/
sudo pacman-key --init
sudo pacman-key --populate
sudo pacman-key --recv-keys F3B607488DB35A47 --keyserver keyserver.ubuntu.com
sudo pacman-key --lsign-key F3B607488DB35A47
sudo rm -R /var/lib/pacman/sync
Next Step
$ curl https://mirror.cachyos.org/cachyos-repo.tar.xz -o cachyos-repo.tar.xz
$ tar xvf cachyos-repo.tar.xz && cd cachyos-repo
The step in particular installs pacman's fork belongs to CachyOS
$ sudo ./cachyos-repo.sh
$ cd
Scp binary cachyos-rate-mirrors from native CachyOS box to target one
$ vim .bashrc
Add at bottom of .bashrc function u() :-
u() {
# Check if pacman is locked by another process
if [ -f /var/lib/pacman/db.lck ]; then
echo "Pacman is locked. Attempting to remove stale lock file..."
sudo rm /var/lib/pacman/db.lck
fi
# 1. Refresh mirrors and update system via yay
sudo cachyos-rate-mirrors && yay --noconfirm
# 2. Clear pacman cache (keep only the last 3 versions of each package)
# Using 'yes' to automate the prompt safely
yes | sudo paccache -rk3
# 3. Remove orphaned packages (unused dependencies)
# The 'if' check prevents errors if no orphans are found
ORPHANS=$(pacman -Qtdq)
if [ -n "$ORPHANS" ]; then
sudo pacman -Rns $ORPHANS --noconfirm
else
echo "No orphaned packages to remove."
fi
}
:wq
$ u
Failure to succeed with u() completion might force you to run
❯ cat reSyncLatest.sh
# See the most recent Update related with transfer Cosmic from CachyOS repos to ArchLinux
sudo rm -rf /etc/pacman.d/gnupg/
sudo pacman-key --init
# start with populate
sudo pacman-key --populate archlinux cachyos
sudo pacman -Sy archlinux-keyring cachyos-keyring
Final draft proposed :-
#!/bin/bash
# A script to fix PGP signature errors on Arch/CachyOS
echo "--- Syncing system clock (Required for GPG) ---"
sudo timedatectl set-ntp true
echo "--- Clearing old keyring data ---"
sudo rm -rf /etc/pacman.d/gnupg
echo "--- Initializing new keyring ---"
sudo pacman-key --init
echo "--- Populating Arch and CachyOS keys ---"
sudo pacman-key --populate archlinux cachyos
echo "--- Force-updating keyring packages ---"
sudo pacman -Sy archlinux-keyring cachyos-keyring --noconfirm
echo "--- Success! You can now run 'sudo pacman -Syu' ---"
If you still cannot to fix the problem, then attempt to run :
$ rate-mirrors cachyos && yay
$ u # which is supposed to invoke cachyos-rate-mirrors
Right after successful u() completion install Cachyos kernel and reboot Arch Linux VM into CachyOS kernel
$ sudo pacman -S linux-cachyos linux-cachyos-headers
$ sudo grub-mkconfig -o /boot/grub/grub.cfg
$ sudo reboot
On Arch VM rebooted into Cachyos kernel
$ u
Attempt to run `sudo pacman -Syyu` is supposed to perform final repositories synchronization .
Next step is running `yay -S pamac-aur` and perform another one preferences/refresh sync v3 repos, extra, core and AUR using Add/Remove programs interface.
Now make sure that pacman been installed on Arch Linux instance was a CachyOS pacman fork.
ssh boris@192.168.0.16
boris@192.168.0.16's password:
Permission denied, please try again.
boris@192.168.0.16's password:
╭───────────╮
/\ │ user │ boris
/ \ │ hname │ ArchTestify
/ \ │ uptime │ 53 mins
/ \ │ distro │ Arch Linux x86_64
/ ,, \ │ kernel │ Linux 6.17.5-2-cachyos
/ | | \ | wm │ KWin (Wayland)
/_-'' ''-_\ | desktop │ KDE Plasma 6.5.1
│ term │ /dev/pts/2
│ shell │ bash 5.3.3
│ cpu │ 8 x Intel(R) Xeon(R) E5-2690 v3 (8) @ 2.59 GHz
│ disk │ 13.47 GiB / 56.91 GiB (24%) - ext4
│ memory │ 3.23 GiB / 15.24 GiB (21%)
├───────────┤
│ colors │ ● ● ● ● ● ● ● ●
╰───────────╯
~
❯ sudo pacman -Syyu
[sudo] password for boris:
:: Synchronizing package databases...
cachyos-v3 136.4 KiB 300 KiB/s 00:00 [##################################################] 100%
cachyos-core-v3 101.1 KiB 88.2 KiB/s 00:01 [##################################################] 100%
cachyos-extra-v3 4.2 MiB 3.96 MiB/s 00:01 [##################################################] 100%
cachyos 506.8 KiB 810 KiB/s 00:01 [##################################################] 100%
core 117.4 KiB 284 KiB/s 00:00 [##################################################] 100%
extra 8.0 MiB 5.67 MiB/s 00:01 [##################################################] 100%
:: Starting full system upgrade...
warning: archlinux-keyring: local (20251027-3) is newer than cachyos (20251027-2)
there is nothing to do
~
❯ pacman -Qi pacman
Installed From : None
Name : pacman
Version : 7.0.0.r7.g1f38429-2
Description : A library-based package manager with dependency support. CachyOS fork.
Architecture : x86_64
URL : https://www.archlinux.org/pacman/
Licenses : GPL-2.0-or-later
Groups : None
Provides : libalpm.so=15-64
Depends On : bash coreutils curl libcurl.so=4-64 gawk gettext glibc gnupg gpgme libgpgme.so=45-64 grep libarchive
libarchive.so=13-64 openssl libcrypto.so=3-64 pacman-mirrorlist systemd
Optional Deps : base-devel: required to use makepkg [installed]
perl-locale-gettext: translation support in makepkg-template
Required By : appstream-glib archlinux-keyring base base-devel libpamac-aur pacman-contrib
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 10.04 MiB
Packager : CachyOS <admin@cachyos.org>
Build Date : Sun 19 Oct 2025 12:10:57 PM UTC
Install Date : Fri 31 Oct 2025 11:13:32 AM UTC
Install Reason : Installed as a dependency for another package
Install Script : No
Validated By : Signature
Thus KVM Hypervisor's packages would be installed from CachyOS *_v3 repositories as well as Hyprland with ML4W Dotfiles 2.9.9.3 packages installed via Dotfiles Installer 0.10.0. Both procedures were verified on Arch Linux upgraded virtual instances
$ sudo pacman -S cachyos-kernel-manager
$ pacman -Qqn | sudo pacman -S -


No comments:
Post a Comment