Выбор зеркала репозиториев пакетов в Arch Linux возлагается на пользователя. Сам пользователь должен определиться, какое зеркало или список зеркал будет использоваться для установки и обновления пакетов программ.
В дистрибутивах Arch Linux по умолчанию не предусмотрено инструментов для автоматического измерения скорости и качества зеркал. Полный список зеркал размещён в файле /etc/pacman.d/mirrorlist, по умолчанию все записи закомментированы, то есть неактивны.
Смотрите также: Обновление списка зеркал pacman в Arch Linux
Если вы используетесь более чем одним дистрибутивом Arch Linux, то вы можете обратить внимание, что в одно и то же время на разных системах доступны разные списки пакетов для обновлений — это связано с тем, что выбраны разные зеркала, которые имеют различную скорость синхронизации.
Вы также можете столкнуться с ситуацией, когда обновление Arch Linux происходит очень долго из-за того, что долго скачиваются файлы новых пакетов. В этом случае вам поможет выбор более быстрого зеркала.
Нужно выбирать самое качественное зеркало, которое необязательно будет самым быстрым
Кроме скорости, зеркала также характеризуются:
- Completion % — процент успешных проверок зеркала, если он менее 100, то зеркало может быть ненадёжным
- μ Delay — задержка от выхода обновлений пакетов до их появления на зеркале. Любые значения менее 1 часа должны расцениваться как идеальные
- μ Duration — длительность соединения во время которого с зеркала скачивается файл lastsync. Обратите внимания, что данная величина вычисляется не от вашего компьютера, а от проверяющего сервера Arch Linux
- σ Duration — стандартное отклонение времени подключения и поиска. Высокое стандартное отклонение может указывать на нестабильное или перегруженное зеркало.
- Mirror Score — очень грубый расчёт для ранжирования зеркал. В настоящее время он рассчитывается как (задержка обновлений пакетов + средняя продолжительность соединения + стандартное отклонение) / процент завершения. Чем ниже величина, тем лучше.
Список зеркал и их характеристик вы найдёте на странице https://archlinux.org/mirrors/status/
Возможно, вы уже перешли к списку зеркал Arch Linux и начали выбирать зеркало на основе важных вам критериев, но обратите внимание, что вначале этой страницы размещены «Out of Sync Mirrors», то есть зеркала, которые функционируют неправильно! Зеркала, с которыми всё в порядке, находятся ниже в разделе «Successfully Syncing Mirrors». Я не знаю, зачем авторы этой страницы так сделали.
Данный список регулярно обновляется и рейтинг выстраивается заново.
Итак, прежде чем перейти к выбору самого быстрого зеркала, отберите несколько самых качественных зеркал, желательно, географически близкие к вам.
К примеру, на момент написания данной заметки самыми лучшими были следующие зеркала:
Server = https://mirror.osbeck.com/archlinux/$repo/os/$arch Server = http://arch.jensgutermuth.de/$repo/os/$arch Server = http://mirror.cyberbits.eu/archlinux/$repo/os/$arch Server = http://mirror.lty.me/archlinux/$repo/os/$arch Server = http://ftp.myrveln.se/pub/linux/archlinux/$repo/os/$arch Server = http://arch.mirror.constant.com/$repo/os/$arch Server = https://mirror.f4st.host/archlinux/$repo/os/$arch Server = https://archlinux.thaller.ws/$repo/os/$arch Server = http://ftp.halifax.rwth-aachen.de/archlinux/$repo/os/$arch Server = https://mirror.erickochen.nl/archlinux/$repo/os/$arch
Все они размещены в таких странах как Швеция, США, Германия, Франция, Нидерланды.
Теперь, когда вы составили список самых лучших зеркал, поместите их в файл /etc/pacman.d/mirrorlist.
Для проверки их скорости можно использовать утилиту rankmirrors из пакета pacman-contrib, установим этот пакет:
sudo pacman -S pacman-contrib
Запустим утилиту rankmirrors указав путь до файла со списком зеркал:
rankmirrors -t /etc/pacman.d/mirrorlist
Вы увидите список зеркал, отсортированных по скорости от вашего компьютера до зеркала.
Для того, чтобы получить пригодный для вставки в /etc/pacman.d/mirrorlist список зеркал, отсортированных по скорости, запустите rankmirrors без опций:
rankmirrors /etc/pacman.d/mirrorlist
Обратите внимание, что в данном случае rankmirrors выведет всё содержимое файла /etc/pacman.d/mirrorlist, включая закомментированные строки, в самом конце будет список активных зеркал, отсортированных по скорости.
Если вы не хотите устанавливать сторонние инструменты, то грубо оценить скорость зеркала можно по скорости синхронизации пакетов. Для этого вы можете удвоить опцию -y что приведёт к тому, что список пакетов будет скачиваться заново, даже если он является актуальным:
sudo pacman -Syyu
Поиск зеркал из определённых стран, проверка их качества и скорости
С помощью скрипта reflector можно автоматизировать процесс поиска и анализа зеркал. Установка скрипта:
sudo pacman -S reflector
Если запустить скрипт без опций, то он выведет список всех доступных зеркал:
reflector
Для того, чтобы вывести список стран и количество зеркал в каждой из них, выполните следующую команду:
reflector --list-countries
С помощью опции --country ИМЯ_СТРАНЫ_ИЛИ_КОД (короткая версия -c ИМЯ_СТРАНЫ_ИЛИ_КОД) вы можете ограничить использование зеркал выбранными странами. Страны могут быть указаны по названию или по коду страны, либо по их сочетанию. Регистр букв игнорируется. Можно указать сразу несколько стран, перечислив их через запятые (например, --country France,Germany) или передав эту опцию несколько раз (например, «-c fr -c de»). Используйте опцию «--list-countries», чтобы отобразить таблицу доступных стран вместе с их кодами. При сортировке по странам эту опцию также можно использовать для сортировки в предпочтительном порядке, а не в алфавитном порядке. Например, чтобы выбрать зеркала из Швеции, Норвегии, Дании и Финляндии в указанном порядке, используйте опции «--country se,no,dk,fi --sort country», чтобы установить предпочтительный порядок сортировки по странам без фильтрации по странам. Эта опция также распознает подстановочный знак «*», который будет соответствовать любой стране. Например, чтобы гарантировать, что любые зеркала из Швеции находятся в верхней части списка, а любые зеркала из Дании находятся внизу, с любыми другими странами между ними, используйте «--country 'se,*,dk' --sort country». Однако важно отметить, что когда «*» указывается вместе с другими критериями фильтрации, нет гарантии, что определённые страны будут включены в результаты. Например, с параметрами «--country 'se,*,dk' --sort country --latest 10» все последние 10 зеркал могут быть из США. Наличие подстановочного знака только гарантирует, что если в результаты включены определённые страны, они будут отсортированы в запрошенном порядке.
С помощью опции --fastest ЧИСЛО (короткая запись -f ЧИСЛО) можно указать максимальное количество выводимых зеркал, отсортированных по их скорости. Следующая команда выведет 10 самых быстрых зеркал из стран Франция и Германия:
reflector --country 'France,Germany' -f 10
Если вас интересуют зеркала с наиболее высоким значением рейтинга, то используйте опцию --score ЧИСЛО. В качестве числа укажите максимальное количество выводимых зеркал. Например, эта команда выведет три зеркала из России с самым высоким рейтингом:
reflector --country ru --score 3
Если вас интересуют сервера с лучшей скоростью синхронизации, то используйте опцию --latest ЧИСЛО (-l ЧИСЛО). Следующая команда выведет 3 зеркала из Таиланда, которые были синхронизированы самое короткое время назад:
reflector --country th -l 3
С помощью опции --protocol (короткое написание -p) вы можете указать протокол зеркала, например:
- https
- http
- rsync
- ftp
Несколько протоколов можно указать через запятую, либо используя эту опцию несколько раз.
Вы можете вывести только те зеркала, Completion % (процент успешных проверок зеркала, если он менее 100, то зеркало может быть ненадёжным) которых не менее указанной величины. Для этого используйте опцию --completion-percent [0-100]. Значением по умолчанию является 100.0. То есть если вы хотите, чтобы тестировались и выводились зеркала только со 100 надёжностью, то эту опцию можно не использовать — она подразумевается по умолчанию.
Опциями --ipv4 и --ipv6 можно ограничить зеркала, поддерживающие только IPv4 и IPv6 соответственно.
По умолчанию список зеркал выводится в стандартный вывод, с помощью опции --save вы можете указать путь для сохранения файла со списком зеркал.
Опция --info приведёт к тому, что вместо списка зеркал будет выведена информация о них (укажите опции с фильтрами).
Вы можете автоматизировать актуализацию списка зеркал. Для этого имеется служба reflector.service, перед её запуском и добавления в автозагрузку, изучите и отредактируйте файл /etc/xdg/reflector/reflector.conf:
--save /etc/pacman.d/mirrorlist --country France,Germany --protocol https --latest 5
Обновление списка зеркал будет выполнятся при запуске службы (то есть при каждом включении компьютера, если служба добавлена в автозагрузку (enable), или при её ручном запуске (start)).
Reflector имеет systemd таймер reflector.timer, который запускает обновление списка зеркал по расписанию. Вы можете включить reflector.timer для еженедельного обновления. Вы также можете отредактировать reflector.timer чтобы изменить расписание обновлений.
Как найти самые быстрые зеркала BlackArch
Начните с обновления списка зеркал BlackArch, текущий список зеркал содержится в файле /etc/pacman.d/blackarch-mirrorlist, а обновлённый список в файле /etc/pacman.d/blackarch-mirrorlist.pacnew.
К сожалению, для BlackArch отсутствует рейтинг зеркал. Поэтому вам придётся вручную отредактировать файл /etc/pacman.d/blackarch-mirrorlist, раскомментировав наиболее качественные, по вашему мнению, зеркала.
Затем с помощью rankmirrors запустите проверку скорости зеркал, причём вам обязательно нужно указать опцию -r с именем репозитория, иначе вы получите ошибку «unreachable»:
rankmirrors -t /etc/pacman.d/blackarch-mirrorlist -r blackarch
Чтобы получить пригодный для копирования и вставки список, не используйте опцию -t:
rankmirrors /etc/pacman.d/blackarch-mirrorlist -r blackarch
Заключение
Итак, важно не просто выбрать самое быстрое зеркало, важно также выбрать качественное зеркало, иначе вместо задержки от скачивания, которая может составлять несколько минут, вы можете получить задержку в несколько часов из-за того, что сервер долго не синхронизирует новые пакеты.
Как правило, местные, локальные зеркала, расположенные в той же стране, что и обновляемая система, оказываются быстрее, но это правило действует далеко не всегда. Точнее говоря, правильнее сказать так: какое-то из локальных зеркал может оказаться быстрее, чем расположенные далеко. Не нужно слепо полагаться на тот факт, что зеркало является местным — оно может быть медленным и/или иметь устаревшие пакеты из-за проблем с синхронизацией.
Выбрав качественные зеркала, вы не столкнётесь с ситуацией, когда обновления на определённых системах задерживаются на часы или даже на дни.
Близкие статьи
- Ошибка pacman «warning: failed to retrieve some files» (РЕШЕНО) (75.8%)
- Ошибка «не удалось завершить транзакцию (неверный или поврежденный пакет)» (РЕШЕНО) (57.5%)
- Ошибка «error: blackarch: signature from "Levon 'noptrix' Kayan (BlackArch Developer)
" is invalid» (РЕШЕНО) (57.5%) - Ошибки «Incorrect definition of table mysql.event: expected column 'definer' at position 3 to have type varchar(, found type char(141)» и «Event Scheduler: An error occurred when initializing system tables. Disabling the Event Scheduler» (РЕШЕНО) (56.1%)
- Pacman: работа с пакетами в BlackArch (перевод справки и мануала) (51.5%)
- Обновление списка зеркал pacman в Arch Linux (RANDOM - 31.8%)