dimanche 6 juin 2010

GPG error : keyserver.ubuntu.com down


Dépôt Lanchpad PPA : Que faire lorsque le keyserver ne répond pas ?

Depuis Ubuntu Karmic Koala, il est possible d'ajouter en même temps le dépôt PPA et la clef GPG associée, à l'aide d'une commande unique:

sudo add-apt-repository ppa:PPA_NAME 


Mais de temps en temps le serveur de clef : keyserver.ubuntu.com n'est pas accessible :  gpg: keyserver receive failed: keyserver error

Il existe un script que vous trouverez ICI qui permet un update à postériori des clef du launchpad. Ce qui n'est déjà pas si mal. Mais il faut attendre que le keyserver.ubuntu.com soit de nouveau accessible ...

Bien sur il existe des dépôts de clef miroir, mais réaliser les différentes opérations à la main se révèle trop fastidieux à mon goût...

Je vous propose donc un petit script qui permet de réaliser un update des clefs du Launchpad en toute circonstance.

Quelques explications préalables.

Le script récupère sur le site http://www.sks-keyservers.net/ une liste de serveur de clefs et va tester ceux qui sont actifs.
Puis en utilisant le script mis à disposition par Web8 , les clefs sont rapatriées sur le système.

Le script peut être lancé de n'importe où, mais le mettre sous /home/$USER/.gnome2/nautilus-scripts le rendra plus accessible.

Lancer gedit
Recopier les lignes de code un peu plus loin ci-dessous
Enregistrer le par exemple sous launchpad-key-update.sh
puis faites dans un terminal sudo chmod +x NOM_DU_SCRIPT
chmod +x launchpad-key-update.sh
Il vous suffit de lancer le script en Root.

 #! /bin/bash
# recup_clef inspiré par blackgr sur Ubuntuforums
#
function keyserver_actif {
# liste des keyserver
clear # Clear the screen.
echo "Constitution de la liste des Keyservers"
echo "Please Wait.."
wget -q --no-check-certificate "http://www.sks-keyservers.net/status/" -O- | grep "http://" | cut -d":" -f4 | grep "//" | cut -d"/" -f3 >> keyserver_list
#test connection des serveur de clefs
echo "*"
echo "test de connection des serveurs de clef"
for k in `cat keyserver_list `; do
if ping -q -c 1 -w 1 "$k"
then
serveur2="$k:11371"
recup_clef
fi
done
}
#
function recup_clef {
RELEASE=`lsb_release -cs`
echo $serveur2 "Validé"
echo "Release:" $RELEASE
echo "Recherche des PPA enregistrés dans le système"
echo "Please Wait..."
for q in `find /etc/apt/ -name *.list`; do
cat $q | grep -v "#" | grep "deb http" | grep "ppa.launchpad" | grep $RELEASE | cut -d/ -f4 >> ppa_soureceslist
done
cat ppa_soureceslist
#
echo "Recherche des clefs pour les PPA enregistrés dans le système"
echo "Please Wait..."
#
for i in `cat ppa_soureceslist `; do
wget -q --no-check-certificate `wget -q --no-check-certificate https://launchpad.net/~$i/+archive -O- | grep "http://keyserver.ubuntu.com:11371/pks/" | cut -d'"' -f2 ` -O- | grep "pub " | cut -d'"' -f2 >> keyss
done
#
echo "Enregistrement des clefs pour les PPA enregistrés dans le système"
echo "Please Wait..."
#
for j in `cat keyss` ; do
echo "$serveur2$j"
wget -q --no-check-certificate "$serveur2$j" -O- | grep -B 999999 END |grep -A 999999 BEGIN > keyss2
sudo apt-key add keyss2
rm keyss2
done
rm ppa_soureceslist
rm keyss
rm keyserver_list
echo "Fin du script - Bye"
exit
}
#
clear # Clear the screen.
if [ "`whoami`" != "root" ];
then
echo "Please run with SUDO"
exit 1
fi
serveur2="pas de serveur actif !! Etrange !? Etes-vous connecté ?"
keyserver_actif
if $serveur2="pas de serveur actif !! Etrange !? Etes-vous connecté ?"
then
echo $serveur2
fi
exit


Aucun commentaire:

Enregistrer un commentaire