Поиск по сайту:

Получить последний список зеркал с помощью отражателя в 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

Статьи по данной тематике