martedì 7 agosto 2007

Apt: gpg error NO_PUBKEY

Ogni volta che aggiungo o modifico un repository di pacchetti deb su Debian o Ubuntu compare regolarmente un avviso del genere:

W: GPG error: http://apt.schmidtke-hb.de feisty Release: Le seguenti firme non sono state verificate perchè la chiave pubblica non è disponibile: NO_PUBKEY 5B638EFECEAE2DE7
W: È consigliabile eseguire apt-get update per correggere questi problemi


E ogni volta mi devo andare a ricercare i comandi per importare la chiave pubblica. Basta. Qua ho trovato una semplice e funzionale soluzione. Basta creare uno script fatto in questo modo:

#!/bin/bash
until [ -z "$1" ]
do
gpg --keyserver pgpkeys.mit.edu --recv-key $1
gpg --keyserver wwwkeys.eu.pgp.net --recv-key $1
gpg -a --export $1 | sudo apt-key add -
shift
done


salvarlo con un nome appropriato (es. get_keys.sh), dargli i permessi di esecuzione (chmod +x get_keys.sh) e lanciarlo (come root o con sudo) in questo modo:

./get_geys.sh 5B638EFECEAE2DE7

e si otterrà:

gpg: richiesta della chiave CEAE2DE7 dal server hkp pgpkeys.mit.edu
gpg: chiave CEAE2DE7: chiave pubblica «Oliver Schmidtke Apt-Repository (Repository Signing Key) » importata
gpg: Numero totale esaminato: 1
gpg: importate: 1
OK


Finito, semplice e funzionale.