Ajouter les clés gpg des dépôts PPA automatiquement

par Korben ✨ -

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

[Source et photo]