«invalid or corrupted package (PGP signature)»
Ogni pacchetto distribuito da Ditana è firmato, e pacman si rifiuta di installare un pacchetto la cui firma non è in grado di verificare. Questo significa che il meccanismo funziona. Ma significa anche che un portachiavi non aggiornato vi preclude proprio gli aggiornamenti che lo sistemerebbero.
Vedrete uno di questi messaggi, a seconda che la chiave di firma manchi dal vostro portachiavi oppure sia presente ma non considerata fidata:
error: ditana-mirrorlist: key "3EC223A811077C09" is unknown:: Import PGP key 3EC223A811077C09? [Y/n]error: 'ditana-mirrorlist-1.12-1-any.pkg.tar.zst': invalid or corrupted package (PGP signature)error: ditana-mirrorlist: signature from "Stefan Zipproth <[email protected]>" is unknown trusterror: failed to commit transaction (invalid or corrupted package (PGP signature))La riparazione
Sezione intitolata «La riparazione»Per un pacchetto di Ditana:
sudo pacman -Sy ditana-keyringPer un pacchetto di Arch (stesso problema, stessa forma – questo caso è frequente su sistemi rimasti offline per mesi):
sudo pacman -Sy archlinux-keyringQuesta è l’eccezione alla regola «mai -Sy per un singolo pacchetto» enunciata in L’aggiornamento non è facoltativo, e vale la pena capire perché è sicura, anziché trattarla come una formula magica. Nella transazione c’è un solo pacchetto, quindi non si verifica alcun aggiornamento parziale di un grafo di dipendenze. Quel pacchetto è piccolo e non contiene eseguibili. E la sua firma è verificabile con una chiave che la vostra installazione possiede già, per cui non si accorda fiducia a nulla che non fosse già considerato fidato – installarlo esegue pacman-key --populate, che aggiunge al vostro portachiavi l’insieme attuale delle chiavi di Ditana. Dopodiché eseguite come di consueto un aggiornamento completo.
Se preferite farlo a mano, ecco esattamente ciò che esegue lo script di installazione del pacchetto:
sudo pacman-key --populate ditanaVerificare personalmente le chiavi
Sezione intitolata «Verificare personalmente le chiavi»I pacchetti di Ditana sono firmati con questa chiave:
pub rsa4096 3F80 54C3 FF75 5E55 44E6 8516 BC33 3E9A E877 D45Auid Stefan Zipproth <[email protected]>uid Stefan Zipproth <[email protected]>Contiene una sottochiave di firma dedicata, ed è questa sottochiave a firmare il database del repository e ogni pacchetto compilato da agosto 2026:
sub rsa4096 068E EA2A 490B 0C63 AEAA 3BCD 3EC2 23A8 1107 7C09L’impronta digitale con cui fate la verifica resta quella indicata sopra: una sottochiave può essere sostituita senza che l’impronta cambi. Un portachiavi anteriore a ditana-keyring 20260809 non conosce affatto la sottochiave, ed è esattamente la situazione a cui rimedia la riparazione descritta sopra.
Verificate di che cosa si fida il vostro sistema con:
pacman-key --list-sigs ditanagpg --show-keys --with-subkey-fingerprint /usr/share/pacman/keyrings/ditana.gpgQui deliberatamente non offriamo uno script di riparazione da scaricare ed eseguire. La situazione in cui vi trovate è «la mia verifica delle firme non riesce»; rispondere con «scaricate questo ed eseguitelo come root» è formalmente la stessa operazione che le firme esistono per impedire, e nemmeno lo script potrebbe essere firmato in modo sensato – è proprio la verifica della firma a essere guasta. Un comando che potete leggere è meglio di una scatola nera.
Altre cause dello stesso messaggio
Sezione intitolata «Altre cause dello stesso messaggio»- L’orologio è sbagliato. Una firma non è valida prima del momento in cui è stata creata. Se l’orologio di sistema è molto indietro nel tempo – una batteria CMOS scarica, una VM appena creata, una configurazione a doppio avvio con Windows che scrive l’ora locale nell’RTC – ogni firma sembra provenire dal futuro. Verificate con
timedatectle attivate NTP consudo timedatectl set-ntp true. - Un mirror ha fornito un file troncato. In questo caso il messaggio menziona una somma di controllo anziché una firma PGP.
sudo pacman -Sccsvuota la cache dei download, e il prossimo aggiornamento scarica di nuovo il file.
Questa traduzione è stata realizzata automaticamente. I lettori la migliorano su Weblate.