Deseas ayudar a Ubuntu o Debian con su ancho de banda? Deseas contribuir con Ubuntu o Debian pero no eres desarrollador? Cansado de la lentitud de la conexión al momento de actualizar paquetes o a nuevos lanzamientos de versiones? Apt-P2P es para ti.

Después de instalar apt-p2p y hacer unos cambios menores en tu source.list todos los archivos que descargues con apt (synaptic, aptitude, gnome-apt, etc) serán compartidos con otros usuarios y viceversa. Como sea, si el paquete que deseas descargar no lo tiene otro usuario, apt-p2p se encargará de bajarlo de los repositorios que tengas definido.

Como funciona

Apt-p2p es una aplicación (demonio) que corre “de fondo”, respondiendo a cualquier consulta de apt para descargar y compartir cualquier archivo con otros usuarios. Se comparte usando el protocolo HTTP, así este funciona de dos formas, como servidor para compartir tus archivos y como cliente para descargar de otros usuarios y mirrors. Así, si tu revisas http://localhost:9977 en tu navegador y tienes apt-p2p instalado y ejecutándose podrás ver las estadísticas y ver que está pasando.

La operación principal de Apt-P2P es el de mantener de un DHT (Tablas de Hash Distribuido) usado para buscar y almacenar pares para descargar cada archivo. Cualquier archivo que tu descargues, apt-p2p comparará el SHA1 hash en el archivo de el DHT. Si encuentra a un cliente, comenzará la descarga de este (si solo hay 1 o 2 clientes, se usará el mirror para acelerar la descarga). Si no se encuentra a ningún cliente se descargará directamente desde el mirror. Una vez que el paquete se haya descargado, se creará una nueva entrada en DHT usando el SHA1 hash del archivo como la llave, e incluirá tu información de contacto para que otros clientes te puedan encontrar y descargar el paquete desde tu máquina.

Así es más o menos como funciona apt-p2p, si quieres más información puedes acceder a http://www.camrdale.org/apt-p2p/

Comparación con otros programas P2P

Comparando Apt-p2p con DebTorrent, Apt-p2p:

  • Es más rápido en las descargas desde los mirrors.
  • Usa mucho menos memoria y un poquito menos de CPU.
  • Puedes descargar casi todos los paquetes (códigos fuentes, bz2, etc) desde los clientes y no solo los .deb
  • Funciona solo con la información de apt y no con otros archivos.
  • No requiere un nuevo transporte apt para comunicarse con apt.
  • Es más modular y más fácil de entender y está basado en tecnologías existentes (twisted).

Instalación

Apt-p2p está disponible en Debian (lenny, sid) y estará disponible en Ubuntu (Intrepid Ibex). Este puede ser instalado de la siguiente forma:

  • Desde Ubuntu 8.10 vía Sistema -> Administración -> Gestor de Paquetes Synaptic.
  • Desde Debian (lenny, sid) presionar Alt+F2 y escribimos su -c ‘apt-get install apt-p2p’ y seleccionamos Ejecutar en una terminal.

Es muy importante, si estás detrás de un firewall o router/NAT setear el puerto de forwarding. El puerto que necesitas es el 9977 tanto para UDP como para TCP. Para más información para determinar esto la puedes encontrar aquí.

Configurar apt para usar apt-p2p es muy fácil, simplemente agrega localhost:9977/ delante de las entradas de tu sources.list

Para editar tu sources.list haces lo siguiente:

  • Para los usuarios Ubuntu 8.10 presionar Alt+F2 y escribir: sudo gedit /etc/apt/sources.list
  • Para los usuarios Debian (lenny, sid) presionar Alt+F2 y escribir: su -c ‘gedit /etc/apt/sources.list’ y seleccionamos Ejecutar en una terminal.

Por ejemplo, si tu sources.list luce de esta forma:

# Official
deb http://ftp.us.debian.org/debian etch main contrib non-free
deb-src http://ftp.us.debian.org/debian etch main contrib non-free

# Security Updates
deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

# Unofficial
deb http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted
deb-src http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted

# Backports
deb http://www.backports.org/debian etch-backports main contrib non-free
deb-src http://www.backports.org/debian etch-backports main contrib non-free

este debería quedar:

# Official
deb http://localhost:9977/ftp.us.debian.org/debian etch main contrib non-free
deb-src http://localhost:9977/ftp.us.debian.org/debian etch main contrib non-free

# Security Updates
deb http://security.debian.org/ etch/updates main contrib non-free
deb-src http://security.debian.org/ etch/updates main contrib non-free

# Unofficial
deb http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted
deb-src http://ftp.debian-unofficial.org/debian etch main contrib non-free restricted

# Backports
deb http://localhost:9977/www.backports.org/debian etch-backports main contrib non-free
deb-src http://localhost:9977/www.backports.org/debian etch-backports main contrib non-free

Entonces luego actualizas tus repositorios y comienzas a instalar paquetes.

La información fue sacada desde http://debaday.debian.net