Rajouter un dépôt ppa derrière un proxy d'entreprise

Les PPA (personal packages archives) sont des espaces de stockage des paquets d'installation DEB créés par des contributeurs. Les paquets, qui ne sont pas (encore ?) disponibles dans les dépôts officiels, sont parfois utiles, voire nécessaires.

Si, nativement, Ubuntu fournit une commande pour rajouter automatiquement des dépôts PPA (add-apt-repository), celle-ci risque de ne pas aboutir si vous travaillez avec un proxy d'entreprise qui bloque les flux autres que 80 et 443.

La documentation fournie par ubuntu (http://doc.ubuntu-fr.org/ppa) explique une méthode pour pouvoir rajouter son dépôt. Mais il y a des cas où elle ne fonctionne pas, et il faut tout faire en manuel.

Déclarer le dépôt

Éditez le fichier /etc/apt/sources.list, puis rajoutez deux lignes ainsi (la seconde n'est pas toujours nécessaire) :

deb http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu precise main 
deb-src http://ppa.launchpad.net/ubuntugis/ubuntugis-unstable/ubuntu precise main 

Ici, precise correspond à votre version Ubuntu (12.04 dans mon cas). ubuntugis/ubuntugis-unstable/ubuntu correspond au nom du ppa à déclarer.

Configurer apt pour passer le proxy

Éditez le fichier /etc/apt/apt.conf.d/70debconf, et rajoutez la ligne suivante :

Acquire::http::Proxy "http://login:password@adresse_proxy:8080/";

Les commandes apt seront alors capables de franchir le proxy avec le login et le mot de passe indiqué.

Récupérer la clé

Avant de télécharger quoi que ce soit, Ubuntu vérifie la signature des fichiers fournis. Pour que cela fonctionne, vous devez récupérer la clé publique utilisée pour signer les paquets.

En général, vous vous rendez compte que vous avez un problème de ce type quand vous lancez la commande apt-get update, qui vous affichera un message du type :

Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY D6B6DB1226213AA

Repérez les 8 derniers caractères de la clé, ici 226213AA. Connectez-vous maintenant au site http://keyserver.ubuntu.com/.

Dans la zone Search String, indiquez le nom de votre dépôt, ici ubuntugis. Lancez la recherche : vous trouverez une ou plusieurs clés déclarées pour ce dépôt. Recherchez celle qui vous intéresse, et cliquez sur le lien. La clé est alors affichée, par exemple :

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.4
Comment: Hostname: keyserver.ubuntu.com
mI0ESxO9rgEEAN+ixiHm9WUPAFmShdf1HgX/CtzgjRS4ZUChxO/NAB4kG6A1qM4Vaj0babmu
1rV+W3jJpEGdBYZBXDkPtiFmlnpjm+k3ayqBsNpauAZtVwVk0kEJIuCX8IiqjP2cSY1Eq1QH
JsEqMyEk1LiiRv+k2cWptAxpIDTxkTs5wq3GXlYLABEBAAG0E0xhdW5jaHBhZCB1YnVudHVn
aXOItgQTAQIAIAUCSxO9rgIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJELhRVxoiYhOq
YdwEALfK1EnJGyyIXmQrtL0fH0FF494ipKpULfRfVqy7WMUz106iaf4H6w3gWPhg7wIEo3a6
eS8+y1gOI4z0iEdBSE2Y1D3YInLFkU9cwTfTJEwQtaoDlARxsrK4OZCroJrwcNJ9EWU4H6YQ
nkhaobjadwreXeemm8Rd9c3i50NoZBRt
=rK7E
-----END PGP PUBLIC KEY BLOCK-----

Dans votre poste de travail (ou serveur), éditez un fichier cle.txt, et copiez-collez l'ensemble du texte ci-dessus (depuis -----BEGIN jusqu'à BLOCK-----), en respectant les sauts de ligne.

Maintenant, il ne vous reste plus qu'à intégrer votre clé. En root (sudo -s), lancez la commande :

cat cle.txt|apt-key add -

La commande apt-get update devrait maintenant fonctionner normalement.