Mirrors (Русский)

Ссылки по теме
Неофициальные зеркала
pacman (Русский)
Состояние перевода:
На этой странице представлен перевод статьи
Mirrors
. Дата последней синхронизации: 31 января 2021. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
На этой странице представлено руководство по выбору и настройке зеркал, а также список зеркал, доступных в настоящее время.
Официальные зеркала
Список официальных зеркал предоставляется пакетом
pacman-mirrorlist
. Наиболее свежий список зеркал доступен на странице
Pacman Mirrorlist Generator
.
Проверить статус зеркал Arch возможно на странице
Mirror Status
. Рекомендуется использовать только актуальные (синхронизированные) зеркала.
Если вы хотите добавить своё зеркало в официальный список, см.
DeveloperWiki:NewMirrors
. Тем временем добавьте его в статью
Неофициальные зеркала
.
IPv6-зеркала
Pacman Mirrorlist Generator
можно также использовать для получения списка доступных IPv6-зеркал.
Включение определённого зеркала
Чтобы включить зеркала, откройте файл
/etc/pacman.d/mirrorlist
и найдите ваш географический регион, после чего раскомментируйте необходимые зеркала.
Например:
## Worldwide
#Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch
#Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch
См.
#Сортировка зеркал
для получения информации об утилитах по выбору зеркал.
Совет
Раскомментируйте 5 наиболее подходящих зеркал и поместите их наверху файла mirrorlist. Таким образом, их можно легко найти и поменять приоритет в случае возникновения проблем с первым зеркалом в списке. Это также упрощает слияние файлов mirrorlist при обновлении.
HTTP-зеркала быстрее FTP-зеркал из-за
постоянного HTTP-соединения
— в случае с FTP, необходимо устанавливать новое соединение с сервером при каждом запросе
pacman
на скачивание, что приводит к небольшим задержкам.
Также можно указать зеркала в
/etc/pacman.conf
. В случае с репозиторием
core
, по умолчанию это выглядит следующим образом:
[core]
Include = /etc/pacman.d/mirrorlist
Чтобы использовать зеркало
kernel.org
как зеркало по умолчанию, добавьте зеркало перед строкой
Include
:
[core]
Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
Include = /etc/pacman.d/mirrorlist
Теперь pacman будет первым делом пытаться соединиться с этим зеркалом. Аналогично можно сделать и для остальных репозиториев:
core-testing
,
extra
,  и
extra-testing
.
Важно
Если вы указываете зеркала напрямую в
pacman.conf
, следует использовать одно и то же зеркало для всех репозиториев. В противном случае это приведет к
частичному обновлению
, поскольку могут быть установлены пакеты, несовместимые друг с другом, например
linux
из
core
и более старый модуль ядра из
extra
.
Принудительное обновление списка пакетов pacman
Зеркала могут быть рассинхронизированы, из-за чего список пакетов на старом зеркале не будет соответствовать списку на новом зеркале, несмотря на дату, указанную в обоих списках.
После создания файла
/etc/pacman.d/mirrorlist
или его изменения выполните следующую команду:
# pacman -Syyu
Примечание
Указание двух аргументов
--refresh
/
-y
заставляет pacman обновить списки пакетов, даже если они уже считаются актуальными. Запуск
pacman -Syyu
— излишняя трата ресурсов в большинстве случае, но иногда позволяет исправить проблемы, возникающие при смене неисправного зеркала на исправное. См. также
Is -Syy safe?
.
Важно
В большинстве случаев при принудительном обновлении базы данных pacman необходимо принудительно обновить все потенциально "слишком новые пакеты", чтобы они соответствовали версиям, предлагаемым новым зеркалом. Это предотвратит проблемы, когда пакеты обновляются непоследовательно, что приводит к неполному обновлению.
# pacman -Syyuu
Это не обязательно при использовании
успешно синхронизированных зеркал
или проверке временной метки файла
lastsync
чтобы убедиться в актуальности списков пакетов.
Сортировка зеркал
При загрузке пакетов pacman использует зеркала в том порядке, в котором они перечислены в
/etc/pacman.d/mirrorlist
. Порядок серверов в списке задаёт их приоритет.
Сортировать зеркала только по скорости — не самый оптимальный вариант, так как самые быстрые сервера могут быть рассинхронизированы. Рекомендуется сначала отсортировать зеркала по
скорости
, после чего, в соответствии с их
статусом
, убрать из списка рассинхронизированые зеркала.
Также рекомендуется повторять данную процедуру перед каждым обновлением системы для поддержания списка зеркал в актуальном состоянии.
Сортировка по скорости
Ранжирование существующего списка зеркал
Пакет
pacman-contrib
предоставляет Bash-скрипт
/usr/bin/rankmirrors
, который можно использовать для ранжирования зеркал в соответствии со скоростями подключения и нахождения наиболее быстрых местных зеркал.
Создайте резервную копию текущего файла
/etc/pacman.d/mirrorlist
:
# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup
Необходимо выполнить следующие действия, чтобы подготовить файл
mirrorlist.backup
к к ранжированию с помощью
rankmirrors
:
Отредактируйте
mirrorlist.backup
, раскомментировав сервера, которые необходимо протестировать
Если сервера в файле сгруппированы по странам, возможно извлечь все сервера определённой страны следующим образом:
$ awk '/^##
Название страны
$/{f=1; next}f==0{next}/^$/{exit}{print substr($0, 1);}' /etc/pacman.d/mirrorlist.backup
Выполните следующую команду
sed
, чтобы раскомментировать все зеркала:
# sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup
И наконец, отсортируйте сервера. В данном случае,
-n 6
выводит только 6 наиболее быстрых зеркал:
# rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist
Получение и ранжирование свежего списка зеркал
Воспользуйтесь
Pacman Mirrorlist Generator
, чтобы получить список актуальных зеркал определённых стран и отсортировать его с помощью
rankmirrors
. Команда ниже скачивает актуальный список зеркал во Франции и Великобритании, использующих протокол
https
, после чего удаляет комментарии, ранжирует сервера и выводит 5 наиболее быстрых из них.
$ curl -s "
https://archlinux.org/mirrorlist/?country=FR&country=GB&protocol=https&use_mirror_status=on
" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 -
Совет
Данные действия можно также выполнить интерактивно на странице
https://archlinux.org/mirrorlist
с помощью любого текстового браузера, например,
elinks(1)
.
Существующие инструменты:
Rate Mirrors
— извлекает список зеркал, исключает устаревшие или находящиеся в процессе обновления, после чего выбирает страну с наиболее "быстрыми" зеркалами на основе информации о местонахождении подводных кабелей и узлов обмена трафиком. Работает в том числе и с произвольным списком зеркал, поданным на стандартный поток ввода. Приложение довольно быстрое, поэтому можно запускать его перед каждым обновлением системы.
https://github.com/westandskif/rate-mirrors
||
rate-mirrors
,
rate-mirrors-bin
AUR
Ранжирование на стороне сервера
Официальный
Pacman Mirrorlist Generator
предоставляет возможность легко получить ранжированный список зеркал. Весь процесс сортировки происходит на одном сервере с учётом различных факторов, что значительно снижает нагрузку на зеркала и клиентов в сравнении с ранжированием с каждого отдельного клиента.
Другие популярные альтернативы:
Reflector
— получает последний список зеркал со страницы
MirrorStatus
, фильтрует их, сортирует по скорости и перезаписывает
/etc/pacman.d/mirrorlist
. Обеспечивает автоматизацию обновления списка зеркал при помощи демона systemd и таймера.
https://xyne.dev/projects/reflector/
||
reflector
mirro-rs
— Менеджер зеркал Arch Linux с текстовым интерфейсом.
https://github.com/rtkay123/mirro-rs
||
mirro-rs
rate-mirrors
— Удобный для повседневного использования инструмент ранжирования зеркал на стороне клиента с поддержкой географических карт.
https://github.com/westandskif/rate-mirrors
||
rate-mirrors
shiny-mirrors
— Альтернатива reflector, написанная на Rust.
https://gitlab.com/Arisa_Snowbell/shiny-mirrors
||
shiny-mirrors
AUR
Решение проблем
Отсутствие зеркал
Если вы столкнулись со следующей ошибкой:
error: config file /etc/pacman.d/mirrorlist could not be read: No such file or directory
Загрузите список зеркал напрямую с сайта:
# curl -o /etc/pacman.d/mirrorlist https://archlinux.org/mirrorlist/all/
Раскомментируйте предпочитаемые зеркала, как описано в
#Включение определённого зеркала
, после чего выполните следующую команду:
# pacman -Syu pacman-mirrorlist
Проблемы с зеркалами
Если вы уверены, что зеркало работает неправильно и это не отражается на
странице статуса зеркал
, смените зеркало и
создайте багрепорт
. Для зеркал багрепорт следует открыть в
проекте arch-mirrors Arch Linux GitLab
. Вы также можете отправить письмо по адресу
mirrors@archlinux.org
.
Смотрите также
mirrorlist.py
— исходный код генератора списка зеркал Archweb