Lorsqu’on ajoute de nouveaux dépôts dans le fichier /etc/apt/sources.list sur Ubuntu, il faut souvent dans le même temps ajouter les clés avec gpg pour avoir l’accès à ce fameux dépôt.
Si on ne le fait pas, on obtient le message d’erreur suivant :
W : GPG error: http://archive.canonical.com lucid Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 40998EAF342D06B5
Du coup, pour les feignasses, il existe un petit script qui vous fera l’économie de quelques lignes de commandes et qui ajoutera automatiquement les bonnes clés de vos nouveaux dépôts sans que vous ayez à chercher et à entrer les lignes de commandes de gpg…
Créez un nouveau fichier .sh mettez ça dedans et rendez le exécutable (chmod +x script.sh) et c’est parti mon kiki !
#! /bin/sh
# Simple script to check for all PPAs refernced in your apt sources and
# to grab any signing keys you are missing from keyserver.ubuntu.com.
# Additionally copes with users on launchpad with multiple PPAs
# (e.g., ~asac)
#
# Author: Dominic Evans https://launchpad.net/~oldman
# License: LGPL v2
for APT in `find /etc/apt/ -name *.list`; do
grep -o "^deb http://ppa.launchpad.net/[a-z0-9-]+/[a-z0-9-]+" $APT | while read ENTRY ; do
# work out the referenced user and their ppa
USER=`echo $ENTRY | cut -d/ -f4`
PPA=`echo $ENTRY | cut -d/ -f5`
# some legacy PPAs say 'ubuntu' when they really mean 'ppa', fix that up
if [ "ubuntu" = "$PPA" ]
then
PPA=ppa
fi
# scrape the ppa page to get the keyid
KEYID=`wget -q --no-check-certificate https://launchpad.net/~$USER/+archive/$PPA -O- | grep -o "1024R/[A-Z0-9]+" | cut -d/ -f2`
sudo apt-key adv --list-keys $KEYID >/dev/null 2>&1
if [ $? != 0 ]
then
echo Grabbing key $KEYID for archive $PPA by ~$USER
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com $KEYID
else
echo Already have key $KEYID for archive $PPA by ~$USER
fi
done
done
echo DONE
puis
sudo ./script.sh