Descarga desde los mirrors más rápidos en Arch Linux con Reflector

A la hora de descargar paquetes desde los repositorios de nuestra distribución GNU/Linux, es importante configurar los mirrors más veloces a fin de que la descarga se realice en el menor tiempo posible. Usualmente se recomienda seleccionar para este fin los mirrors más cercanos a nuestra ubicación, aunque en la práctica esto no siempre es lo más adecuado, puesto que influye más la velocidad de respuesta del mismo servidor donde se aloja el mirror.

En el caso de Arch Linux, en la página de Mirror Status los desarrolladores han colgado una tabla con todos los mirrors conocidos y que se actualiza automáticamente mostrando el estado de los mismos y su velocidad de respuesta. Si quisiéramos podríamos tomar de ahí aquéllos que nos agraden e introducirlos manualmente en nuestro mirrorlist, aunque para ayudarnos a hacer esta tarea más fácil existe Reflector.

Reflector es un script que se encarga de consultar los datos proporcionados por Mirror Status y nos permite trabajar con ellos de diferentes formas mediante comandos en la consola. Ahora vamos a ver cómo utilizarlo para que nos configure automáticamente los mirrors más veloces antes de cada actualización.

Instrucciones

Vamos a comenzar instalando el paquete de Reflector desde los repositorios:

# pacman -S reflector

Para ver todas las opciones disponibles podemos echar un vistazo a su manual de ayuda:

$ reflector --help

Un uso básico sería este:

# reflector --sort rate -l 5 --save /etc/pacman.d/mirrorlist

Explicación:

  • –sort: Le indica a Reflector qué parámetro debe usar para ordenar los mirrors. Las opciones disponibles son rate (velocidad de descarga), score (puntuación en Mirror Status), country (país de ubicación), age (antigüedad de la última sincronización) y delay (tiempo de retraso). En este caso le estamos diciendo que nos los ordene según su mejor velocidad de descarga.
  • -l: Limita el número de resultados a la cantidad de mirrors que le indiquemos, tomando en cuenta su fecha de última sincronización. Aquí le decimos que nos proporcione los 5 mirrors más recientes.
  • –save: Establece el archivo en donde imprimirá esos 5 mirrors más veloces y más recientes que encontró. El archivo donde los necesitamos es obviamente nuestro mirrorlist. Es muy importante hacer antes un respaldo del mirrorlist original. Durante la instalación, Arch Linux crea uno automáticamente en /etc/pacman.d/mirrorlist.original, pero no está de más asegurarse de que esté ahí o crear uno si no existe.

De esta manera, para descargar desde los mejores mirrors bastaría con hacer un respaldo de nuestro mirrorlist original y después llamar a Reflector con el comando ya mencionado. Sin embargo, evidentemente se trata de un comando muy largo que seguramente nos sea difícil de recordar o nos de pereza escribir. Una buena alternativa sería entonces crear un alias para invocarlo con un comando más sencillo.

En una instalación común con Bash solo tenemos que abrir el archivo ~/.bashrc con un editor de texto y meter al final una línea como esta:

alias nombre_del_alias='comandos a ejecutar'

Aplicar los cambios:

$ . .bashrc

Y con eso ya podremos ejecutar las órdenes que queramos con un comando personalizado. Por ejemplo, para Reflector yo uso esto:

alias update='sudo reflector --sort rate -l 5 --save /etc/pacman.d/mirrorlist && yaourt -Syyu --aur --devel'

Gracias a ese alias, cuando quiero actualizar el sistema lo único que tengo que hacer es escribir update en la terminal, lo que hace que Reflector imprima en el mirrorlist los 5 mirrors más veloces y más recientemente sincronizados, y seguidamente se ejecute Yaourt para efectuar una actualización completa tanto de los paquetes de los repositorios oficiales como los de AUR y devel.

Ahora resta a cada quien personalizar el alias acorde a sus necesidades. Tal vez quieran usar el mismo que yo o prefieran crear uno solo para Reflector, o sustituir a Yaourt por Packer o simplemente Pacman. Las posibilidades son infinitas.

Para terminar, cabe señalar que usar Reflector antes de cada actualización hará que inicialmente demore un poco más de lo normal en lo que realiza la consulta a Mirror Status, aunque se compensará con la mayor velocidad que proveerá al descargar los paquetes.


11 comentarios

  1.   illukki dijo

    Yo hace varios meses tengo problemas con los mirrors. A pesar de usar reflector, cada una o dos semanas, me da error con ellos al actualizar; como si estuviesen caídos y eso que uso generalmente los europeos (antes usaba los brasileros). Así que los tengo que cambiar continuamente.
    Cuando tenga tiempo me voy a dedicar a averiguar cual es el problema.
    Buen post, saludos.

    1.    Manuel de la Fuente dijo

      Me pasaba lo mismo, precisamente fue por eso que hice el alias para llamar a Reflector antes de cada actualización, ya que de lo contrario, si un mirror me funcionaba bien en una actualización, para la siguiente era posible que ya no estuviera respondiendo.

    2.    You Buntu dijo

      Yo he experimentado problemas con las decargas no sólo en Ubuntu, sino con la instalación de Arch, Debian, Suse…en dónde, repentinamente, la velocidad de descarga, principalmente de archivos mayores como kernel, libreoffice o linux firmware, baja de 640 Kb/s a 22 Kb/s, y se hace una eternidad, pero…hay un bug, ¡Dios lo bendiga!, que me permite acelerar la descarga:

      Cuándo ocurre esa desavenencia, lo que suelo hacer es lanzar el navegador Firefox, y la descarga sube a 1200 Kb/s durante unos 10 segundos y comienza a bajar nuevamente, por lo que lo sigo abriendo y cerrando, o abriendo y cerrando páginas, cuánto más tiempo tarden en cargar más largo será el impulso, hasta finalizar la descarga de archivos.

      El hecho de que suba a 1200 kb/s creo que se debe al contrato adsl hasta 10 Mb aunque habitualmente sólo llegan 5, si acaso.

      Espero que a alguien le ayude, ¡ah!, y también se puede utilizar durante la instalación, anoche estuve instalando Chromixium en VirtualBox para testearlo y luego instalarlo en un portatil de alguien que necesita migrar de Güindous, aunque al final le instale Antix, y lanzando el Chrome se aceleró enormemente el tiempo de descarga.

      Saludos.

  2.   mat1986 dijo

    Menciono como detalle de que Bridge Linux -basada en Arch- incorpora Reflector por defecto, así el proceso era solamente aplicar “sudo pacman -Syyu” y Reflector trabajaba de manera automática.

    1.    Manuel de la Fuente dijo

      ¿De casualidad sabes qué parámetros utiliza el Reflector de esa distro?

      1.    mat1986 dijo

        El siguiente paste es parte del script post-instalación de Bridge Linux: http://paste.desdelinux.net/5059

        Más info acá:
        http://millertechnologies.net/forum/index.php?topic=829.msg4300#msg4300

        1.    Manuel de la Fuente dijo

          Ya veo, lo tienen configurado para tomar los mirrors sincronizados en las últimas 10 horas y usan el parámetro -f en vez de –sort rate para listar los 5 mirrors más rápidos. La verdad nunca he entendido por qué Reflector tiene esas opciones duplicadas; así como tiene también –sort country y –country. Sería cuestión de investigar qué ventajas tiene una sobre la otra. Gracias por el aporte. 🙂

  3.   babel dijo

    Maravillosa entrada. Gracias por el dato, ni siquiera había reparado en que alias podría servir en este sentido. Lo voy a aplicar en mis dos computadoras con Arch.

  4.   Abaddon dijo

    Un inconveniente es que los mirrors más rápidos no siempre estan sincronizados con los últimos paquetes.

    En varias ocaciones he revisado que en la página principal de Arch muestra la actualización de X paquete pero ni con -Syyu me aparece tal actualización. Por ello prefiero “–sort score” sobre “–sort rate”.

  5.   bitl0rd dijo

    Tambien podemos utilizar un script desde aur lo podemos descargar “armrr-git”

  6.   jose dijo

    Hola, yo despues de hacer esto yaourt me lanza el siguiente error:
    AUR error : Invalid query arguments
    error: base de datos no encontrada: aur

    He modificado el bashrc dejandolo de origen, he desinstalado reflector, he puesto el mirrorlist de origen y he reinstalado yaourt, pero no encuentra la base de datos aur, en pacman.conf si esta el repo archlinuxfr, pero no se por donde tirar
    Un saludo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.