Reflector
Reflector is a Python script which can retrieve the latest mirror list from the Arch Linux Mirror Status page, filter the most up-to-date mirrors, sort them by speed and overwrite the file /etc/pacman.d/mirrorlist .
Installation
Usage
- In the following examples, /etc/pacman.d/mirrorlist will be overwritten. Make a backup before proceeding.
- Make sure the resulting /etc/pacman.d/mirrorlist does not contain entries that you consider untrustworthy before syncing or updating with pacman.
To see all of the available options, run the following command:
Examples
See reflector(1) § EXAMPLES . Examples overwriting /etc/pacman.d/mirrorlist need to be run as root.
Tip: To include Worldwide servers, pass an empty string to the country flag. For example, to include France, Germany, and Worldwide mirrors, one should use —country ‘France,Germany,’ .[1]
Automation
systemd service
Reflector ships with a reflector.service . The service will run reflector with the parameters specified in /etc/xdg/reflector/reflector.conf . The default options in this file should serve as a good starting point and example.
For example, to select the 5 most up-to-date mirrors from France and Germany that support HTTPS and overwrite /etc/pacman.d/mirrorlist , use
/etc/xdg/reflector/reflector.conf
--save /etc/pacman.d/mirrorlist --country France,Germany --protocol https --latest 5
Enable reflector.service to run Reflector on boot. To run it immediately, start the service.
Note: reflector.service depends on a network wait service to be configured via network-online.target.
systemd timer
Reflector provides a systemd timer ( reflector.timer ) that starts the #systemd service reflector.service weekly. The schedule can be changed by editing reflector.timer .
First edit the configuration file as described in #systemd service. After you have updated the configuration file, start and enable reflector.timer .
To refresh the mirrorlist ahead of schedule, start reflector.service .
pacman hook
pacman-mirrorlist is not updated regularly, invoking reflector only because some mirror in some part of the globe was added or removed is not relevant. Use instead the timer-based automation. If you do not want mirrorlist.pacnew to be installed at all, use NoExtract in pacman.conf .
See also
Reflector (Русский)
Состояние перевода: На этой странице представлен перевод статьи Reflector. Дата последней синхронизации: 6 декабря 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Reflector — это скрипт на Python, который может получить последний список зеркал со страницы Mirror Status, отфильтровать самые актуальные зеркала, отсортировать их по скорости и перезаписать файл /etc/pacman.d/mirrorlist .
Установка
Использование
- Приведённые примеры перезапишут /etc/pacman.d/mirrorlist . Заранее сделайте его резервную копию.
- После обновления /etc/pacman.d/mirrorlist , взгляните на содержимое файла и убедитесь, что он не содержит подозрительных зеркал перед тем, как выполнять синхронизацию базы данных пакетов pacman.
Чтобы увидеть список всех доступных опций, наберите
Примеры
Смотрите reflector(1) § EXAMPLES . Примеры, перезаписывающие /etc/pacman.d/mirrorlist , нужно запускать от имени root.
Совет: Чтобы включить всемирные (Worldwide) сервера, пропишите пустую строку как код страны. Например, чтобы включить Францию, Германию и всемирные зеркала, используйте —country ‘France,Germany,’ .[1]
Автоматизация
Служба systemd
Reflector поставляется со службой reflector.service . Она запускает reflector с параметрами, указанными в файле /etc/xdg/reflector/reflector.conf . Опции по умолчанию должны быть хорошей отправной точкой.
Например, чтобы выбрать 5 наиболее актуальных (up-to-date) зеркал из Франции и Германии с поддержкой HTTPS и перезаписать /etc/pacman.d/mirrorlist , используйте
/etc/xdg/reflector/reflector.conf
--save /etc/pacman.d/mirrorlist --country France,Germany --protocol https --latest 5
Включите службу reflector.service для запуска Reflector при загрузке системы. Чтобы запустить его прямо сейчас, запустите эту службу.
Таймер systemd
Reflector поставляется с systemd-таймером ( reflector.timer ), который запускает службу reflector.service еженедельно. Расписание можно изменить путём редактирования файла юнита reflector.timer .
Сперва настройте Reflector как описано в разделе #Служба systemd. После обновления настроек запустите и включите reflector.timer .
Чтобы обновить список зеркал прямо сейчас, не дожидаясь расписания, запустите reflector.service .
pacman hook
pacman-mirrorlist обновляется не регулярно, вызов Reflector только потому, что какое-то зеркало в какой-то части земного шара было добавлено или удалено, не актуален. Вместо этого используйте автоматизацию по таймеру. Если вы не хотите, чтобы mirrorlist.pacnew вообще устанавливался, используйте NoExtract в pacman.conf .
Смотрите также
Обновление списка зеркал pacman в Arch Linux
Список зеркал в Arch Linux обновляются как обычный пакет. При таком обновлении появляется запись, что новый список был установлен как mirrorlist.pacnew. Такая кажущаяся простота хранит в себе подвох – новый список зеркал не используется по умолчанию. Во-первых, на него нет ссылки в конфигурационном файле pacman. А, во-вторых, все записи в нём закоментированы.
Поскольку новый список зеркал всегда устанавливается как mirrorlist.pacnew, то правильным было бы не делать ссылку на этот файл (при очередном обновлении файл будет перезаписан), а переименовать этот файл.
Начинаем с удаления старой резервной копии (если она есть, если нет, то пропустите этот шаг):
sudo rm /etc/pacman.d/mirrorlist.old
Сохраняем старый список зеркал в качестве резервной копии:
sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.old
Переименовываем новый список:
sudo mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist
Теперь нам нужно открыть и отредактировать файл /etc/pacman.d/mirrorlist. В графическом интерфейсе:
sudo gedit /etc/pacman.d/mirrorlist
sudo vim /etc/pacman.d/mirrorlist
Как видим, все строки закоментированы. Если бы мы запустили pacman, то он выдал бы сообщения об ошибках. Уберите знак решётки с любой строки (или любого количества строк), начинающихся с #Server. Выберите исходя из вашей страны и ваших предпочтений. При обновлениях, pacman пытается загрузить информацию о пакетах и сами пакеты с первого сервера в списке. Если это не удаётся или скорость слишком медленная, то переходит к следующему и так пока список не кончится. Т.е. чем больше строк раскоментируете, тем меньше шансы, что в какой-то день вы не сможете обновиться из-за недоступности серверов.
После этого попробуйте обновиться: