Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

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

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]


Les articles du moment