====== apt-p2p : Télécharger ses paquets via P2P ======
* Objet : Configurer apt-p2p
* Niveau requis : {{tag>avisé}}
* Commentaires : //Création d'un miroir pair-à-pair de Debian, pour limiter l'engorgement des serveurs. //
* Suivi : {{tag>}}
* Création par [[user>Thuban]]
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=6132| ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
> Vous souhaitez participer au projet Debian (ou Ubuntu) mais vous ne savez pas comment faire ? La lenteur des miroirs de téléchargement, surchargés, vous donne des boutons ? Vous n’avez pas l’âme d’un développeur, mais un peu de bande passante à partager ? Alors Apt-P2P est fait pour vous ! [[http://ilonet.fr/r274-aptpp-le-peertopeer-pour-telecharger-vos-paquets-debian.html|http://ilonet.fr/r274-aptpp-le-peertopeer-pour-telecharger-vos-paquets-debian.html]]
Avec apt-p2p, vous pourrez télécharger les paquets debian via peer 2 peer, et partager ensuite ces paquets avec les autres utilisateurs de debian.
Cela a pour but, à terme, de désengorger les serveurs debian, mais aussi, si beaucoup de personnes l'utilisent, d'accélérer les téléchargements.
Si aucun pair n'a le paquet souhaité, alors il sera téléchargé à partir des serveurs habituels de debian.
Le tout est basé sur DHT, et la somme de contrôle des paquets est vérifiée ce qui assure l'intégrité des paquets téléchargés.
**Attention** : Le cache est par défaut dans ''/var/cache/apt-p2p''. Assurez-vous donc d'avoir suffisamment de place dans ''/var''
===== Installation =====
Pour l'installer, rien de plus simple :
apt-get install apt-p2p
Puis remplacer dans les fichiers /etc/apt/sources.list et /etc/apt/sources.list.d/* vos lignes ressemblant à :
deb http://ftp.fr.debian.org/debian stable main contrib non-free
par des lignes ressemblant à :
deb http://localhost:9977/ftp.fr.debian.org/debian stable main contrib non-free
Il n'y a pas de difficulté dans ces changements.
Enfin, pour prendre les changements en compte, mettez votre liste à jour avec la commande apt-get update
L'update peut prendre un certains temps la première fois.
===== Ouverture des ports =====
Comme dans tous les réseaux pair-à-pair, afin de participer à l'échange de fichier et donc au désengorgement des serveurs, il est nécessaire de rendre accessible apt-p2p depuis l'extérieur. Pour ce faire, il vous faut transférer les ports UDP et TCP 9977 (par défaut) de votre routeur vers votre machine, tout en veillant à ce que votre pare-feu ne les bloque pas.
=== Exemple avec une livebox ===
http://192.168.1.1/
==Authentification : ==
* Identifiant : admin
* Mot de passe : ***** (par défaut : admin)
==Onglet : Configuration==
Réseaux & Services > Livebox > Paramètres avancés
==NAT/PAT==
> Ajouter une nouvelle règle
* Port : 9977
* Protocole : Les deux (TCP et UDP)
* Sélectionner votre équipement (user) et sauvegarder.
Attention cependant, cela rendra la page http://localhost:9977/ accessible par tous. Mais c'est le but…
Un utilisateur extérieur navigant sur votre port 9977 verra vos statistiques de transfert (comme vous). Pour lui bloquer cette vue, changez
REMOTE_STATS = yes
en
REMOTE_STATS = no
dans ''/etc/apt-p2p/apt-p2p.conf'' et relancez le démon avec
service apt-p2p restart
===== Des infos sur le serveur =====
Pour obtenir des statistiques sur votre apt-p2p, allez dans votre navigateur à l'adresse suivante :
[[http://localhost:9977]]
===== Correction de bogue =====
Actuellement, [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=635969|ce vilain bug]] empêche d'utiliser apt-p2p. Bien qu'il soit résolu depuis un moment, le paquet correctif n'est pas encore arrivé. Il est toutefois très rapide de corriger ce bug vous même en attendant : Il suffit en fait de modifier 1 ligne dans le fichier ''/usr/share/pyshared/apt_p2p/AptPackages.py''
En gros, on remplace
from apt import OpProgress
par
from apt.progress.base import OpProgress
Et voilà! (pensez quand même à redémarrer apt-p2p)
service apt-p2p restart
===== Remplir le cache pour partager ensuite =====
Autre chose, pour remplir totalement le cache d' apt-p2p avec tous les paquets installés sur votre machine :
apt-get install --reinstall --download-only $(dpkg --get-selections | awk {'print $1'})
Vous pouvez maintenant partager le tout ;)
====Autre solution :====
Éditer avec votre éditeur de texte le fichier suivant :
vim /etc/apt-p2p/apt-p2p.conf
À la ligne :
# OTHER_DIRS
Remplacer par
OTHER_DIRS = /var/cache/apt/archives
Redémarrer le service
service apt-p2p restart
Astuce indiquée par [[http://debian-facile.org/viewtopic.php?pid=67035#p67035|Thuban]]
===== Voir aussi =====
* [[:doc:reseau:apt-cacher-ng|Apt-cacher, un proxy pour miroirs Debian]] pour une utilisation avec plusieurs machines.