Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по работе с reflector (в основном для собственного пользования) на Arch Linux с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности.
Reflector это полезный скрипт на языке Python для Arch Linux, который автоматически определяет самые быстрые и актуальные (синхронизированные) зеркала (серверы) из списка Arch Linux Mirror Status и обновляет файл /etc/pacman.d/mirrorlist.
Reflector используется для поиска быстрых и актуальных зеркал критически важно для ускорения загрузки пакетов при установке и обновлении системы с помощью менеджера пакетов pacman. Если в вашем списке зеркал находятся медленные или устаревшие серверы, обновления могут занимать много времени или даже прерываться.
Для начала установим одноименный пакет из официальных репозиториев Arch Linux выполнив следующую команду:
sudo pacman -S reflector
Перед тем как использовать на всякий случай сделаем резервную копированию текущего списка зеркал, приступим
sudo cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak
Давайте детально разберем основные параметры:
--save [путь_к_файлу] : Обязательный параметр, если вы хотите сохранить результат в файл (например, /etc/pacman.d/mirrorlist). Если его не указать, результат просто выведется в консоль.
--country [название_страны] : Фильтрует зеркала по указанной стране. Можно указать несколько стран, используя запятую (например, --country Russia --country Germany или --country 'France,Germany,', чтобы добавить всемирные зеркала).
--latest [число]: Использует только те зеркала, которые были синхронизированы не более чем указанное количество раз (например, --latest 20 выберет серверы из последних 20 успешно синхронизированных зеркал).
--age [часы]: Выбирает только те зеркала, которые были синхронизированы в течение последних N часов (например, --age 12 найдет зеркала, обновленные за последние 12 часов).
--protocol [протокол]: Фильтрует зеркала по протоколу (например, http, https, ftp, rsync). Рекомендуется использовать --protocol https.
Параметры сортировки
--sort [метод]: Сортирует полученный список зеркал. Доступные методы:rate: По скорости загрузки (рекомендуется для получения самых быстрых зеркал). принимает следующие значения:
age: По времени последней синхронизации (от самых свежих к старым).
country: По названию страны.
score: По "оценке" MirrorStatus.
delay: По задержке ответа (ping).
Другие параметры
- --threads [число]: Использует N потоков для проверки скорости зеркал. Ускоряет процесс, но может давать менее точные результаты, если ваш канал перегружен.
- --verbose или -v: Выводит дополнительную информацию о процессе на стандартный вывод ошибок (STDERR), что полезно для отладки.
- --url [URL]: Использует другой URL для получения списка статусов зеркал (по умолчанию используется https://archlinux.org/mirrors/status/json/).
- --cache-timeout [секунды]: Время кэширования данных, полученных от API Mirror Status (по умолчанию 300 секунд).
- --list-countries: Выводит список всех доступных стран для использования с параметром --country.
Приступим к обновлению списка зеркал. Reflector имеет множество опций для фильтрации и сортировки зеркал.
Например найти 20 самых быстрых и актуальных зеркал, использующих HTTPS, и сохранить их в файл:
sudo reflector --latest 20 --protocol https --sort rate --save /etc/pacman.d/mirrorlist
разберем по параметрам
--latest 20: Выбирает 20 зеркал, синхронизированных недавно.
--protocol https: Использует только зеркала, доступные по протоколу HTTPS (рекомендуется).
--sort rate: Сортирует по скорости загрузки (rate).
--save /etc/pacman.d/mirrorlist: Перезаписывает файл списка зеркал.
Или выбрать 5 самых быстрых зеркал из России, использующих HTTPS:
sudo reflector --country Russia --protocol https --sort rate --latest 5 --save /etc/pacman.d/mirrorlist
--country Russia выбор репозиториев России
ради любопытства можно глянуть что в файл записано
Либо вывести в терминал результат работы утилиты с выбором 10 самых быстрых зеркал:
reflector --latest 10 --sort rate 2>>null
Для некоторых вероятно будет не понятна конструкция 2>>null, этим параметром я перенаправил ошибки в null дабы не отображать их в терминале.
После выполнения команды, и сохранением более быстрых репозиториев обновите базу данных пакетов pacman:
sudo pacman -Syyu
Да сегодня я еще не обновлял систему, попробую.
Можно автоматизировать процесс с помощью systemd но это уже совсем другая история.
За основу взята информация c Arch wiki, а так же информация с форумов по данной тематике, информация других пользователей размещенная на просторах всемирной паутины и собственный опыт использования утилиты.
За сим откланиваюсь...