PDA

Ver la Versión Completa : Reflector: Mejorando el desempeño de los mirrors de pacman



Xripox
10/01/2011, 12:15
[Only registered and activated users can see links]

Los mirrors (espejos) de ArchLinux son servidores replica donde el gestor de actualizaciones se conecta para descargar las ultimas revisiones de software, si han usado Ubuntu o una distro basada en Debian esto es un concepto parecido a los repositorios, solo que los mirros contienen casi todos el mismo software dividio en las 4 categorias principales (core, extra, community y testing) y la lista de software disponible es intimidante.

La lista de servidores replica o mirrolist de donde pacman se conectara para descargar las actualizaciones esta en /etc/pacman.d/mirrorlist la lista esta dividida por paises o zonas y una lista de espejos, generalmente se recomienda descomentar el mirror mas cercano a nuestra locacion para las actualizaciones, pero hay 2 problemas:


Los mirrors cercanos a nuestra locacion no son los mas rapidos y las actualizaciones duran años, o
Los mirrors escogidos se actualizan muy poco o tardan mucho en actualizarze, por ende mi distro tambien tarda.

Hay varias soluciones para esto. Lo primero que hay que hacer es hacer un respaldo del mirrorlist asi como esta y sin cambiar nada


cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

Revisar el status de los Mirrors

Podemos ir a la pagina de mirrorcheck de ArchLinux y revisar cual es el mirror mas actualizado y de menor tiempo de respuesta, despues lo podemos buscar y descomentar manualmente de nuestro mirrorlist.

O podemos hacerlo todo automaticamente utilizando un par de herramientas.

Vamos a necesitar de python:


pacman -S python

Y de un paquete llamado Reflector:


pacman -S reflector

Editamos el mirrorlist para descomentar con todos los mirrors que queremos testear, entre mas mirrors mejor.

O podemos hacer esto para descomentar todos los mirrrors y testearlos todos:


sed '/^#S/ s|#||' -i mirrorlist

Despues ejecutamos reflector:


reflector -l 40 -r -o /etc/pacman.d/mirrorlist

Este acomodara todos los mirrors en orden de velocidad y actualizacion (o estatus) y los pondra en alta prioridad en nuestor mirrorlist, en este caso solo utilizara los top 40 mirrors que cumplan estas condiciones.

Forzamos pacman a actualizar toda su lista de mirrors:


pacman -Syy

Debemos tener una gran mejora en la velocidad de descarga de los paquetes y ademas la ventaja de tener el sistema siempre actualizado.

Restaurar el mirrorlist a su estado original

En caso de que haya salido algo mal y se hayan quedado sin mirrorlist (y no me hicieron caso y no hicieron el backup) todo se puede devolver a la normalidad reinstalando el paquete pacman-mirrorlist, pero supongamos que jodimos el mirrorlist, entonces como se instala, simple:

Descargamos manualmente el ultimo mirrorlist de archlinux.org


wget -O /etc/pacman.d/mirrorlist [Only registered and activated users can see links]$(uname -m)/all/

Esto nos dara un mirrorlist nuevecito, solo falta descomentar los mirrors que vamos a utilizar. Luego forzamos la actualizacion de pacman e instalamos de nuevo el paquete mirrorlist de los repositorios de core:


pacman -Syy

pacman -Sf pacman-mirrorlist



Visto en taringa ([Only registered and activated users can see links])