Получить последний список зеркал с помощью отражателя в Arch Linux
Поддержание актуального списка зеркал в Arch Linux дает некоторые важные преимущества. Если вы используете обновленный список зеркал, вы можете легко избежать низкой скорости загрузки и сообщений об ошибках по истечении времени ожидания при установке и обновлении пакетов. В этом руководстве объясняется, что такое Reflector и как получить последний список зеркал в Arch Linux с помощью Reflector.
Что такое Рефлектор?
Reflector - это простой модуль и скрипт Python 3, который проверяет и извлекает самый актуальный список зеркал, отсортированный по скорости, со страницы Состояние зеркала, и сохраняет его в >/etc/pacman.d/mirrorlist
в вашей системе Arch Linux.
Обычно файл /etc/pacman.d/mirrorlist
содержит по одному зеркальному серверу для каждой страны. Однако в каждой стране должно быть более одного сервера, но в файле списка зеркал обычно будет только один.
Итак, как добавить или получить последний и обновляемый список зеркал по вашему выбору в Arch Linux? Здесь на помощь приходит Reflector.
Reflector получит и отфильтрует список последних, а также самых быстрых зеркал Arch Linux на основе скорости, страны и возраста (последняя синхронизация сервера).
Reflector — это бесплатный скрипт Python с открытым исходным кодом, который отлично работает в Arch Linux и его производных, таких как EndeavourOS и Manjaro Linux.
1. Установите Reflector в Arch Linux, EndeavourOS, Manjaro.
Чтобы установить Reflector в Arch Linux и его вариантах, таких как EndeavourOS и Manjaro, выполните следующую команду из своего терминала:
sudo pacman -S reflector rsync curl
Приведенная выше команда установит Reflector вместе с его зависимостями, пакетами rsync и curl.
2. Получите последний список зеркал с помощью Reflector в Arch Linux.
2.1. Резервное копирование текущего списка зеркал
Перед запуском Reflector необходимо создать резервную копию файла списка зеркал по умолчанию. Потому что Reflector перезапишет его и заменит существующий список зеркал новым.
Чтобы сделать резервную копию текущего списка зеркал, запустите:
sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
2.2. Получить N последних зеркал и отсортировать их по скорости загрузки
Давайте получим 20 лучших последних зеркал, отсортируем список зеркал по скорости загрузки и сохраним их в файле /etc/pacman.d/mirrorlist
с помощью команды:
sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Обратите внимание, что при этом существующие зеркала будут заменены новыми.
Давайте разберем приведенную выше команду и посмотрим, что делает каждая опция.
--latest 20
— получить последние синхронизированные серверы--protocol https
— получить зеркала с поддержкойhttps
--sortrate
— сортировка зеркального списка по скорости загрузки--save /etc/pacman.d/mirrorlist
-
Вы можете проверить это, перечислив содержимое файла /etc/pacman.d/mirrorlist
.
cat /etc/pacman.d/mirrorlist
Пример вывода:
#####################################################################
########### 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
Просмотр списка зеркал Pacman в Arch Linux
Теперь вы можете устанавливать, обновлять и обновлять пакеты с самых современных зеркал.
sudo pacman -Syu
sudo pacman -S <package_name>
2.3. Получить N последних зеркал и отсортировать их по возрасту
Чтобы получить верхние зеркала и отсортировать их по возрасту, то есть по последней синхронизации сервера, выполните:
sudo reflector --latest 20 --protocol https --sort age --save /etc/pacman.d/mirrorlist
2.4. Получить список зеркал для конкретной страны
Вы также можете ограничить зеркала выбранными странами. Например, если вы живете в Индии, возможно, вы захотите обновить список зеркал, включив в него серверы только из Индии.
Чтобы просмотреть все доступные зеркала Arch Linux по всему миру, запустите:
reflector --list-countries
Пример вывода:
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
[...]
Как вы видите в приведенном выше выводе, отражатель перечисляет доступные зеркала в мире вместе с кодом страны и количеством зеркал в каждой стране.
На момент написания этого руководства наибольшее количество зеркал Arch Linux расположено в США (134 зеркала), Германии (114) и Нидерландах. (51).
Чтобы получить зеркало из определенной страны, вы можете использовать название страны или код страны или их сочетание.
Следующая команда получит 5 лучших зеркал из Индии, отсортирует их по скорости загрузки и сохранит в файл списка зеркал.
sudo reflector --verbose --country 'India' -l 5 --sort rate --save /etc/pacman.d/mirrorlist
Ниже приводится краткое описание того, что будут делать эти флаги в приведенной выше команде.
--verbose
— печатает больше информации, чем обычно.--страна Индия
- мое любимое местоположение зеркала.--l 5
— извлекает пять лучших зеркал Индии.--скорость сортировки
- сортировка по скорости загрузки.--save
— сохранить загруженный список зеркал в/etc/pacman-d/mirrorlist
.
Давайте проверим обновленный список зеркал с помощью команды:
cat /etc/pacman.d/mirrorlist
Пример вывода:
################################################################################
################# 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
К сожалению, в Индии доступно только три зеркала Arch Linux.
2.5. Получить список зеркал из нескольких стран
Вы также можете указать несколько стран через запятую, как показано ниже.
sudo reflector --country 'United States,India' -l 10 --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
Эта команда выберет лучшие 10 HTTPS-зеркал, синхронизированные за последние 12 часов и расположенные либо в США, либо в Индии. >, отсортируйте их по скорости загрузки и перезапишите файл /etc/pacman.d/mirrorlist
.
2.6. Получить список зеркал, отсортированный по странам
Чтобы получить весь список, отсортированный по странам, выполните следующую команду:
sudo curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
После получения зеркал, отсортированных по странам, отредактируйте файл /etc/pacman.d/mirrorlist
:
sudo nano /etc/pacman.d/mirrorlist
Раскомментируйте URL-адрес зеркала по вашему выбору, чтобы включить его.
Например, я включил зеркала из Индии. Итак, я удалил символ (#) перед каждым 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
[...]
Список зеркал, отсортированный по стране, в Arch Linux
Сохраните и закройте файл. Обновите списки репозиториев с помощью команды:
sudo pacman -Syu
2.7. Выберите самые быстрые зеркала
Reflector может получить самое быстрое зеркало для вашего Arch Linux.
Следующая команда извлекает 5 самых быстрых 10 HTTPS-зеркал, расположенных в США, сортирует их по скорости загрузки и перезаписывает файл /etc/pacman.d/mirrorlist.
файл.
sudo reflector -f 5 --country 'United States' --protocol https --sort rate --save /etc/pacman.d/mirrorlist
2.8. Укажите протокол
Вы можете выбрать актуальные зеркала, поддерживающие определенный тип протокола, например https
, http
, ftp
и т. д.
Например, эта команда выберет 5 самых последних зеркал из США, поддерживающих HTTP
, и переопределит /etc/ файл pacman.d/mirrorlist
:
sudo reflector --latest 5 --protocol http --country 'United States' --save /etc/pacman.d/mirrorlist
Другие поддерживаемые параметры: --isos
, который возвращает только зеркала, на которых размещены ISO, --ipv4
, который возвращает только зеркала, поддерживающие IPv4, и --ipv6.
возвращает только зеркала, поддерживающие IPv6.
3. Автоматическое обновление списка зеркал Arch Linux при загрузке.
Reflector включает в себя службу systemd
и модули таймера, которые можно использовать для автоматического обновления зеркального списка Pacman.
3.1. Включите и запустите службу отражателя systemd
Начиная с версии 2020.8, Reflector поставляется с reflector.service
. Чтобы автоматически обновлять список зеркал Arch Linux при каждой перезагрузке, просто включите и запустите эту службу с помощью команд:
sudo systemctl enable reflector.service
sudo systemctl start reflector.service
Reflector.service запустит отражатель с параметрами, указанными в файле /etc/xdg/reflector/reflector.conf
.
Настройки по умолчанию вполне достаточны в большинстве случаев. Вот содержимое файла reflector.conf
:
cat /etc/xdg/reflector/reflector.conf
Пример вывода:
#
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
Вы также можете отредактировать этот файл и изменить параметры в соответствии с вашими требованиями. Этот файл принимает все аргументы командной строки отражателя.
Вы можете сгруппировать аргументы в одну строку или разделить их на несколько строк, используя необязательные пустые строки и строки комментариев, начинающиеся с #
.
3.2. Включить и запустить системный таймер отражателя
Reflector поставляется с другим модулем systemd с именем reflector.timer
, который запускает reflector.service
еженедельно.
Чтобы включить и запустить его автоматически при загрузке системы, выполните одну за другой следующие команды:
sudo systemctl enable reflector.timer
sudo systemctl start reflector.timer
По умолчанию reflector.service
запускается один раз в неделю. Если вы не хотите ждать запланированного времени, вы можете запустить Reflector.service, чтобы немедленно обновить список зеркал pacman:
sudo systemctl start reflector.service
Заключение
В этом руководстве мы узнали, что такое Reflector, как получить актуальный список зеркал Pacman для вашей системы Arch Linux с помощью сценария Reflector и, наконец, как автоматически обновлять список зеркал Arch Linux.
Ресурс:
- Рефлектор Wiki
Связанное чтение:
- Рекомендуемый способ очистки кэша пакетов в Arch Linux
- Включить параллельную загрузку в Pacman в Arch Linux