Mantener actualizada la lista de espejos en su Arch Linux brinda algunos beneficios importantes. Si usa la lista de espejos actualizada, puede evitar fácilmente la velocidad de descarga lenta y los mensajes de error de tiempo de espera agotado al instalar y actualizar paquetes. Este tutorial explica qué es Reflector y cómo recuperar la última lista de espejos en Arch Linux usando Reflector.
¿Qué es Reflector?
Reflector es un sencillo módulo y secuencia de comandos de Python 3 que comprueba y recupera la lista de espejos más actualizada ordenada por velocidad de Mirror Status y las guarda en /etc/pacman.d/mirrorlist
archivo en su sistema Arch Linux.
Generalmente el /etc/pacman.d/mirrorlist
El archivo contendrá un servidor espejo por país. Sin embargo, debe haber más de un servidor por país, pero el archivo de la lista de espejos normalmente tendrá solo uno.
Entonces, ¿cómo agrega o recupera la lista de espejos más reciente y actualizada de su elección en Arch Linux? Aquí es donde Reflector viene en ayuda.
Reflector recuperará y filtrará una lista de los espejos de Arch Linux más recientes y más rápidos en función de la velocidad, el país y la antigüedad (última sincronización del servidor).
Reflector es una secuencia de comandos de Python gratuita y de código abierto, que funciona bien en Arch Linux y sus derivados, como EndeavourOS y Manjaro Linux.
1. Instale Reflector en Arch Linux, EndeavourOS, Manjaro
Para instalar Reflector en Arch Linux y sus variantes como EndeavourOS y Manjaro, ejecuta el siguiente comando desde tu Terminal:
$ sudo pacman -S reflector rsync curl
El comando anterior instalará Reflector junto con sus paquetes de dependencias rsync y curl.
2. Recuperar la última lista de espejos usando Reflector en Arch Linux
Antes de ejecutar Reflector, debe hacer una copia de seguridad de su archivo de lista de espejos predeterminado. Porque Reflector lo sobrescribirá y reemplazará la lista de réplicas existente por una nueva.
Para hacer una copia de seguridad de la lista de réplicas actual, ejecute:
$ sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
Recuperemos los 20 espejos más recientes y clasifiquemos la lista de espejos por su tasa de descarga, y guárdelos en /etc/pacman.d/mirrorlist
archivo usando el comando:
$ sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Tenga en cuenta que esto reemplazará los espejos existentes con espejos nuevos.
Analicemos el comando anterior y veamos qué hace cada opción.
--latest 20
- recuperar los servidores sincronizados más recientemente--protocol https
- recuperarhttps
espejos habilitados--sort rate
- ordenar la lista de espejos según la tasa de descarga--save /etc/pacman.d/mirrorlist
-
Puede verificarlo enumerando el contenido de /etc/pacman.d/mirrorlist
archivo.
$ cat /etc/pacman.d/mirrorlist
Salida de muestra:
##################################################################### ########### Arch Linux mirrorlist generated by Reflector ########### ##################################################################### With: reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist When: 2021-06-10 09:51:51 UTC From: https://www.archlinux.org/mirrors/status/json/ Retrieved: 2021-06-10 09:49:34 UTC Last Check: 2021-06-10 09:15:02 UTC Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch Server = https://asia.mirror.pkgbuild.com/$repo/os/$arch Server = https://archlinux.thaller.ws/$repo/os/$arch Server = https://arch.mirror.constant.com/$repo/os/$arch Server = https://mirror.f4st.host/archlinux/$repo/os/$arch Server = https://phinau.de/arch/$repo/os/$arch Server = https://mirrors.neusoft.edu.cn/archlinux/$repo/os/$arch Server = https://mirror.pseudoform.org/$repo/os/$arch Server = https://arch.mirror.square-r00t.net/$repo/os/$arch Server = https://mirror.pkgbuild.com/$repo/os/$arch Server = https://archlinux.uk.mirror.allworldit.com/archlinux/$repo/os/$arch Server = https://archlinux.za.mirror.allworldit.com/archlinux/$repo/os/$arch Server = https://mirror.telepoint.bg/archlinux/$repo/os/$arch Server = https://mirror.lty.me/archlinux/$repo/os/$arch Server = https://mirror.chaoticum.net/arch/$repo/os/$arch Server = https://mirror.efect.ro/archlinux/$repo/os/$arch Server = https://archmirror.it/repos/$repo/os/$arch Server = https://archlinux.mailtunnel.eu/$repo/os/$arch Server = https://archlinux.qontinuum.space:4443/$repo/os/$arch Server = https://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch
Ahora, puede instalar, actualizar y actualizar paquetes desde los espejos más actualizados hasta la fecha.
$ sudo pacman -Syu
$ sudo pacman -S <package_name>
Para recuperar los espejos superiores y ordenarlos por su antigüedad, es decir, la última sincronización del servidor, ejecute:
$ sudo reflector --latest 20 --protocol https --sort age --save /etc/pacman.d/mirrorlist
También puede restringir los espejos a países seleccionados. Por ejemplo, si vive en la India, es posible que desee actualizar la lista de espejos con los servidores solo de la India.
Para enumerar todos los espejos de Arch Linux disponibles en todo el mundo, ejecute:
$ reflector --list-countries
Salida de muestra:
Country Code Count ---------------------- ---- ----- Australia AU 19 Austria AT 6 Bangladesh BD 1 Belarus BY 4 Belgium BE 3 Bosnia and Herzegovina BA 2 Brazil BR 11 Bulgaria BG 11 Canada CA 20 Chile CL 8 [...]
Como puede ver en el resultado anterior, reflector enumera los espejos disponibles en el mundo junto con el código de país y la cantidad de espejos en cada país.
Al momento de escribir esta guía, la mayor cantidad de réplicas de Arch Linux se encuentran en EE. UU. (134 espejos), Alemania (114) y Países Bajos (51).
Para recuperar un espejo de un país específico, puede usar el nombre del país o el código del país, o una combinación de ambos.
El siguiente comando recuperará los 5 espejos principales de India , ordénelos por la tasa de descarga y guárdelos en el archivo de la lista de espejos.
$ sudo reflector --verbose --country 'India' -l 5 --sort rate --save /etc/pacman.d/mirrorlist
El siguiente es un breve resumen de lo que harán estas banderas en el comando anterior.
--verbose
- imprime más información de lo normal.--country India
- mi ubicación de espejo preferida.--l 5
- recupera los cinco mejores espejos de la India.--sort rate
- ordena por tasa de descarga.--save
- guarde la lista de espejos descargada en/etc/pacman-d/mirrorlist
.
Verifiquemos la lista de réplicas actualizada usando el comando:
$ cat /etc/pacman.d/mirrorlist
Salida de muestra:
################################################################################ ################# Arch Linux mirrorlist generated by Reflector ######################### ################################################################################ # With: reflector --verbose --country India -l 5 --sort rate --save /etc/pacman.d/mirrorlist # When: 2021-06-10 10:27:06 UTC # From: https://www.archlinux.org/mirrors/status/json/ # Retrieved: 2021-06-10 10:26:49 UTC # Last Check: 2021-06-10 09:15:02 UTC Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch
Desafortunadamente, solo hay tres réplicas de Arch Linux disponibles en India.
También puede especificar varios países separados por comas como se muestra a continuación.
$ sudo reflector --country 'United States,India' -l 10 --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Este comando seleccionará los mejores 10 espejos HTTPS sincronizado en las últimas 12 horas y ubicado en Estados Unidos o India , ordenarlos por velocidad de descarga y sobrescribir el archivo /etc/pacman.d/mirrorlist
archivo.
Para obtener toda la lista ordenada por países, ejecute el siguiente comando:
$ sudo curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
Después de recuperar los espejos ordenados por país, edite su /etc/pacman.d/mirrorlist
archivo:
$ sudo nano /etc/pacman.d/mirrorlist
Descomente la URL reflejada de su elección para habilitarla.
Por ejemplo, habilité los espejos de India. Por lo tanto, eliminé el símbolo (#) delante de cada URL.
[...] India Server = http://mirror.cse.iitk.ac.in/archlinux/$repo/os/$arch Server = http://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch Server = https://mirrors.piconets.webwerks.in/archlinux-mirror/$repo/os/$arch [...]
Guarde y cierre el archivo. Actualice las listas de repositorios usando el comando:
$ sudo pacman -Syu
Reflector puede recuperar un espejo más rápido para su Arch Linux.
El siguiente comando recupera los 5 10 espejos HTTPS más rápidos ubicado en Estados Unidos , los ordena por velocidad de descarga y sobrescribe el archivo /etc/pacman.d/mirrorlist
archivo.
$ sudo reflector -f 5 --country 'United States' --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Puede seleccionar los espejos actualizados que admiten un tipo específico de protocolo, por ejemplo, https
, http
, ftp
etc.
Por ejemplo, este comando seleccionará 5 espejos más actualizados de Estados Unidos que soportan HTTP
y anular /etc/pacman.d/mirrorlist
archivo:
$ sudo reflector --latest 5 --protocol http --country 'United States' --save /etc/pacman.d/mirrorlist
Las otras opciones admitidas son --isos
que solo devolverá espejos que alojan ISO, --ipv4
que solo devolverá réplicas compatibles con IPv4 y --ipv6
solo devuelve espejos compatibles con IPv6.
3. Actualice la lista de réplicas de Arch Linux automáticamente al arrancar
Reflector incluye systemd
unidades de servicio y temporizador que se pueden usar para actualizar automáticamente la lista de espejos de Pacman.
A partir de la versión 2020.8, Reflector se envía con reflector.service
. Para actualizar su lista de espejos de Arch Linux automáticamente en cada reinicio, simplemente habilite e inicie este servicio usando los comandos:
$ sudo systemctl enable reflector.service
$ sudo systemctl start reflector.service
El reflector.service ejecutará reflector con los parámetros especificados en /etc/xdg/reflector/reflector.conf
expediente.
La configuración predeterminada es suficiente para la mayor parte del tiempo. Aquí está el contenido de reflector.conf
archivo:
$ cat /etc/xdg/reflector/reflector.conf
Salida de muestra:
# # Empty lines and lines beginning with "#" are ignored. All other lines should # contain valid reflector command-line arguments. The lines are parsed with # Python's shlex modules so standard shell syntax should work. All arguments are # collected into a single argument list. # # See "reflector --help" for details. # Recommended Options # Set the output path where the mirrorlist will be saved (--save). --save /etc/pacman.d/mirrorlist # Select the transfer protocol (--protocol). --protocol https # Select the country (--country). # Consult the list of available countries with "reflector --list-countries" and # select the countries nearest to you or the ones that you trust. For example: # --country France,Germany # Use only the most recently synchronized mirrors (--latest). --latest 5 # Sort the mirrors by synchronization time (--sort). --sort age
También puede editar este archivo y cambiar los parámetros según sus requisitos. Este archivo acepta todos los argumentos de la línea de comandos del reflector.
Puede agrupar los argumentos en una sola línea o dividirlos en muchas líneas, con líneas en blanco opcionales y líneas de comentarios que comienzan con #
.
Reflector envía otra unidad systemd llamada reflector.timer
, que inicia el reflector.service
semanal.
Para habilitarlo e iniciarlo automáticamente al iniciar el sistema, ejecute los siguientes comandos uno por uno:
$ sudo systemctl enable reflector.timer
$ sudo systemctl start reflector.timer
De forma predeterminada, iniciará reflector.service
una vez a la semana. Si no desea esperar la hora programada, puede iniciar reflector.service para actualizar inmediatamente la lista de espejos de pacman:
$ sudo systemctl start reflector.service
Conclusión
En esta guía, aprendimos qué es Reflector, cómo recuperar la lista actualizada de espejos de Pacman para su sistema Arch Linux usando el script Reflector y, finalmente, cómo actualizar la lista de espejos de Arch Linux automáticamente.