Pamac Error: multilib.db GPGME error but pacman works

Pamac output

sudo pamac upgrade
Preparing...
Synchronizing package databases...
Refreshing core.db...                                                           
Refreshing extra.db...                                                          
Refreshing community.db...                                                      
Refreshing multilib.db...                                                       
Error: multilib.db: GPGME error: No data                                        
Error: multilib.db: GPGME error: No data
Error: multilib.db: GPGME error: No data
Error: multilib.db: GPGME error: No data
invalid or corrupted database (PGP signature)
Failed to synchronize databases
Nothing to do.
Transaction successfully finished.

but pacman works

sudo pacman -Syyu
:: Synchronising package databases...
 core                  165.6 KiB  1274 KiB/s 00:00 [######################] 100%
 extra                1955.5 KiB  16.8 MiB/s 00:00 [######################] 100%
 community               7.3 MiB  28.0 MiB/s 00:00 [######################] 100%
 multilib              180.5 KiB  6.78 MiB/s 00:00 [######################] 100%
:: Starting full system upgrade...
 there is nothing to do

Hopefully these are the relevant lines from /etc/pacman.conf

SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
...
[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist


pamac --version
Pamac 10.4.2-1 - libpamac 11.3.1-1

Please search before posting. You’re not the first to encounter an issue like that.

With that being said, it should be an easy fix if it was just the multilib database that somehow got corrupted:

sudo rm -f /var/lib/pacman/sync/multilib.db
sudo pacman -Syu
1 Like

Thanks,
Any idea why it works in pacman but not in pamac, and would the pamac developers be interested in the cause?

Because pacman stores the files in another location.

Thanks
I can find the pacman files at

/var/lib/pacman/sync/

But not the pamac files and there does not seem to be anything in the pamac config to indicate the location of the pamac files if they are different??

What is the location of the pamac files?

It looks like pamac logs into tail -f /var/log/pacman.log but it just says

[2022-10-04T15:53:10+0100] [PAMAC] synchronizing package lists

And does not say why it fails.

Thanks tried that pacman downloaded a new copy of multilib.db which was identical to the previous version and still works ok.
pamac still fails with the same error.

Thanks for posting the link to the guide, it did not come up when I first searched, and I was wondering why pacman and pamac behave differently. Since pacman works with the configuration.

SigLevel    = Required DatabaseOptional

And pamac required the config changed to

SigLevel    = Required DatabaseNever

And the file deleted and pacman to bring it back before it would work.

sudo rm -f /var/lib/pacman/sync/multilib.db
sudo pacman -Syu
1 Like

The general recommendation is to not use sudo with pamac. pamac will ask for authorization if/when needed.

pamac stores its databases in
/var/tmp/pamac/dbs/sync

Thanks,
I can see that pamac copies the files from /var/lib/pacman/sync since there was a multilib.db-old that I created in /var/lib/pacman/sync/ prior to deleting the “corrupt” version which turned out to be identical.

However, it does not delete the files since I deleted the multilib.db-old from /var/lib/pacman/sync/ prior to looking at /var/tmp/pamac/dbs/sync

The difference between them is that /var/tmp/pamac/dbs/sync has .sig files for the databases and /var/lib/pacman/sync/ does not.

Is there somewhere that pamac logs what is going on? All I can see is
tail -f /var/log/pacman.log
And it did not show any errors whilst failing, just that

[PAMAC] synchronizing package lists

which was not helpful.

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