Josephus Miller Ich denke es liegt an der nicht aktualisierbaren Vertrauensdatenbank
Ja,
Normalerweise durch Löschen des gesamten /etc/pacman.d/gnupg Verzeichnisses (das ist ein MUSS!) und anschließendem pacman-key --init/--populate. Aber das hast du ja wohl schon mehrmals gemacht...
Ich bin momentan auch etwas ratlos ob der Ursache, habe aber noch Ideen... <g>
Ich würde gerne mal sehen, wie du auf deinem Rechner einen neuen Keyring erstellst. Und diesen zum Test auch mal nutzen.
Dafür würde ich gerne:
In /tmp/gnupg einen Keyring anlegen und ein paar Sachen testen. Und Logs mitschreiben lassen. Diese Logfiles postest du dann bitte mal, in Code-Blöcken am besten jeweils mit dem Dateinamen des Logs versehen. Folgendes bitte alles als root ausführen!
pacman -Qo /usr/share/pacman/keyrings/archlinux.gpg
stat /usr/share/pacman/keyrings/archlinux.gpg
Die Ausgaben der beiden Befehle normal posten.
Nun erstellen wir in /tmp/gnupg einen frischen Keyring und ein Log-Dir (das Löschen der beiden Verzeichnisse mittels rm ist dazu da, falls du das mehrmals machen willst/mußt):
rm -rf /tmp/keylog
mkdir /tmp/keylog
rm -rf /tmp/gnupg
pacman-key --gpgdir /tmp/gnupg --init 2>&1 | tee /tmp/keylog/key_init.log
pacman-key --gpgdir /tmp/gnupg --populate archlinux 2>&1 | tee /tmp/keylog/key_populate.log
Durch das Pipen mittels tee siehst du zum einen die Ausgaben und diese werden zusätzlich in Logfiles geschrieben.
Ein paar Tests mit diesem neuen Keyring:
pacman-key --gpgdir /tmp/gnupg --list-keys Hesse 2>&1 | tee /tmp/keylog/key_hesse.log
Sollte den Vertrauens-Status "vollständig" enthalten.
pacman-key --gpgdir /tmp/gnupg --verify /var/cache/pacman/pkg/archlinux-keyring-20220118-1-any.pkg.tar.zst.sig 2>&1 | tee /tmp/keylog/key_sigtest1.log
Dieses Sig-File sollte gegen die korrekte Signatur von C. Hesse aufgelöst werden.
Du kannst gerne zusätzlich noch ein anderes Paket - was bei dir bisher immer "korrupt" war - so testen (das *-zst.sig File des Paketes). Dann bitte das Log als sigtest2.log abpeichern lassen.
Wenn dein pacman Cache nicht /var/cache/pacman/pkg ist, dann den Pfad anpassen.
pacman --debug --gpgdir /tmp/gnupg -S archlinux-keyring 2>&1 | tee /tmp/keylog/key_pacmanS.log
Hier lassen wir pacman das archlinux-keyring-Paket nochmal installieren, aber mit dem neuen Keyring.
pacman --debug --gpgdir /tmp/gnupg -Syu 2>&1 | tee /tmp/keylog/key_pacmanSyu.log
Nun ein komplettes Systemupdate mit dem neuen Keyring. Das scheiterte ja bei dir bisher immer.
Das würde - wenn es richtig funktioniert - wohl ein sehr langes Logfile werden. Das mußt du dann nicht posten. Wenn es aber relativ früh wieder zu Fehlern bzw. den üblichen korruptes-Paket-Meldungen kommt, dann brich den pacman-Lauf am besten ab - und dann wäre dieses Log auch interessant.
Die Logs liegen in /tmp/keylog, wie gesagt diese bitte alle jeweils im Kontext mit dem Dateinamen posten.
Ich würde halt gerne mal sehen, was bei dir ggf. anders als bei mir (bei anderen) ist wenn du (ja schon mehrmals) einen neuen Keyring erzeugt hast und dessen Schlüssel alle/größtenteils nicht mit dem notwendigen Vertrauen versehen werden.