Can't update with pacman and I've tried everything

I last update within the past week without problems.

I’ve been googling my problem and reading lots of threads on this forum all of which tell me to do things that I’ve tried and gave errors. For example if I try sudo pacman -Syyu I get:

error: endeavouros: missing required signature
error: core: missing required signature
error: extra: missing required signature
error: multilib: missing required signature
:: Synchronizing package databases...
 endeavouros            14.3 KiB  14.2 KiB/s 00:01 [----------------------] 100%
 core                  124.6 KiB  83.4 KiB/s 00:01 [----------------------] 100%
 extra                   8.2 MiB  1180 KiB/s 00:07 [----------------------] 100%
 multilib              127.1 KiB  80.8 KiB/s 00:02 [----------------------] 100%
error: failed retrieving file 'endeavouros.db.sig' from mirrors.gigenet.com : The requested URL returned error: 404
error: failed retrieving file 'core.db.sig' from losangeles.mirror.pkgbuild.com : The requested URL returned error: 404
error: failed retrieving file 'multilib.db.sig' from losangeles.mirror.pkgbuild.com : The requested URL returned error: 404
error: failed retrieving file 'extra.db.sig' from losangeles.mirror.pkgbuild.com : The requested URL returned error: 404
warning: too many errors from losangeles.mirror.pkgbuild.com, skipping for the remainder of this transaction
error: failed to synchronize all databases (failed to retrieve some files)

I’ve heard that using sudo pacman -Sy archlinux-keyring endeavouros-keyring is the thing to do, that results in:

error: endeavouros: missing required signature
error: core: missing required signature
error: extra: missing required signature
error: multilib: missing required signature
:: Synchronizing package databases...
 endeavouros            14.3 KiB  27.5 KiB/s 00:01 [----------------------] 100%
 core                  124.6 KiB   134 KiB/s 00:01 [----------------------] 100%
 extra                   8.2 MiB  1955 KiB/s 00:04 [----------------------] 100%
 multilib              127.1 KiB   156 KiB/s 00:01 [----------------------] 100%
error: failed retrieving file 'endeavouros.db.sig' from mirrors.gigenet.com : The requested URL returned error: 404
error: failed retrieving file 'multilib.db.sig' from losangeles.mirror.pkgbuild.com : The requested URL returned error: 404
error: failed retrieving file 'core.db.sig' from losangeles.mirror.pkgbuild.com : The requested URL returned error: 404
error: failed retrieving file 'extra.db.sig' from losangeles.mirror.pkgbuild.com : The requested URL returned error: 404
warning: too many errors from losangeles.mirror.pkgbuild.com, skipping for the remainder of this transaction
error: failed to synchronize all databases (failed to retrieve some files)

Initially this just started with getting timeout errors after running sudo pacman -Syyu and then trying the fixes that I found on this forum and elsewhere.

I’ve also tried:

sudo pacman-key --refresh-keys
sudo mv /etc/pacman.d/gnupg /root/pacman-key.bak
sudo pacman-key --init
sudo pacman-key --populate archlinux endeavouros
sudo pacman -Syy archlinux-keyring endeavouros-keyring

Nuttin. Here is my /etc/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 dracut kernel-install-for-dracut eos-dracut
#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
ILoveCandy
#NoProgressBar
#CheckSpace
VerbosePkgLists
ParallelDownloads = 5
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    = PackageRequired
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.

[endeavouros]
SigLevel = PackageRequired
Include = /etc/pacman.d/endeavouros-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

I’ve also tried using reflector but maybe I made the wrong incantation. Versions I tried were:

sudo reflector -c US --sort rate --save /etc/pacman.d/mirrorlist
sudo reflector --latest 5 --sort rate --save /etc/pacman.d/mirrorlist

It may be relevant that I’d recently installed sublime-text and that involved adding some mirror, and there were errors about sublime-text’s PGP key or whatever being corrupted and I deleted those lines from the config file. Regrettably that is too many terminal lines ago but I remember problems with the error “Unable to update system due to untrusted key manuel@endeavouros.com” and that was the error that first brought me here.

I just wanna update :frowning:

Welcome to the forum :enos_flag: :enos:

Maybe you can try this (copied from the Wiki)

sudo pacman -U /var/cache/pacman/pkg/{archlinux,endeavouros}-keyring*.pkg.tar.zst

I am pretty certain this will be rectified by rating your mirrors, though it could also be connectivty related, or pacman.conf related. We’ll make the assumption you have connectivity and haven’t hosed your pacman.conf.

To rate the mirrors you could use the options on the welcome app.

First, refresh your mirrors as has been mentioned above in the thread, using the welcome app or the following command lines:

rate-mirrors --protocol https arch --max-delay=3000 --completion=1 | sudo tee /etc/pacman.d/mirrorlist
rate-mirrors --protocol https endeavouros | sudo tee /etc/pacman.d/endeavouros-mirrorlist

Now run: sudo pacman -Syyu

If you still get the same error message for some mirrors, edit the mirrorlist files and remove or comment out those mirrors.

If still no go:

sudo rm -rf /var/lib/pacman/sync/*.db.sig

Or

sudo rm -rf /var/lib/pacman/sync/*

And run again: sudo pacman -Syyu

I’m not sure what your location is but it looks like mirror issues.

I tried all of your steps (I don’t have rate-mirrors so I used the welcome app) and still all the same problems. I keep commenting out mirrors in the mirror list files and the very next mirror throws a 404. They can’t all be wrong, the problem has to be local, right?

I don’t know what I did, I was just trying to update like I’ve done thirty times before with EndeavourOS.

I get:

error: endeavouros: missing required signature
error: core: missing required signature
error: extra: missing required signature
error: multilib: missing required signature
error: database 'endeavouros' is not valid (invalid or corrupted database (PGP signature))
error: database 'core' is not valid (invalid or corrupted database (PGP signature))
error: database 'extra' is not valid (invalid or corrupted database (PGP signature))
error: database 'multilib' is not valid (invalid or corrupted database (PGP signature))
loading packages...
warning: downgrading package archlinux-keyring (20260420-1 => 20260323-1)
error: '/var/cache/pacman/pkg/archlinux-keyring-20260409-1-any.pkg.tar.zst': duplicate target
error: '/var/cache/pacman/pkg/archlinux-keyring-20260420-1-any.pkg.tar.zst': duplicate target
warning: endeavouros-keyring-20231222-1 is up to date -- reinstalling

I see no sign of connectivity issues. I have internet access. I posted my pacman.conf, I don’t know how to tell if it’s screwed up.

20231222-1 ??

Your system runs definitely on outdated packages it seems.

How long ago did you exactly update your system for the last time?

Perhaps try updating your keys:

sudo pacman -Sy archlinux-keyring endeavouros-keyring

Then try updating again.


@cactux, that actually looks to be the current version of endeavouros-keyring.

Thanks but it didn’t help.

Like a week. I only started using EndeavourOS in 2025 so I don’t know what that is.

My bad!

I got it mixed up with Arch’s. Sorry about that!

SOLVED (i think)

I simply added SigLevel = Required DatabaseOptional to pacman.conf in the two places SigLevel appeared and ran sudo pacman -Syyu and it worked.

All good, it’s worth checking and it did look old :sweat_smile: We’re too used to the bleeding-edge rolling releases :grinning_face_with_smiling_eyes:

Perhaps you missed adding that in a .pacnew somewhere.

Have to admit I totally missed it but this is how the pacman.conf looks at my end (partly).

SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional

So something must have happened with the ts config file.