Reflector (Русский) - ArchWiki

# Reflector (Русский)

Ссылки по теме

- Зеркала
- Pacman (Русский)

Reflector — скрипт, который автоматизирует процесс настройки зеркал, включающий в себя загрузку свежего списка зеркал со страницы Mirror Status, фильтрацию из них наиболее обновленных, сортировку по скорости и сохранение в `/etc/pacman.d/mirrorlist`.

## Установка

Установите reflector, доступный в официальных репозиториях.

## Использование

Важно:

- Обязательно сделайте резервную копию файла `/etc/pacman.d/mirrorlist`:

    # cp -vf /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

- После обновления `/etc/pacman.d/mirrorlist`, взгляните на содержимое файла и убедитесь, что он не содержит подозрительных зеркал перед тем, как выполнять синхронизацию базы данных пакетов pacman.

Чтобы увидеть список всех доступных опций, наберите

    # reflector --help

### Примеры

#### Пример 1

Следующая команда отфильтрует пять зеркал, отсортирует их по скорости и обновит файл mirrorlist:

    # reflector --verbose -l 5 --sort rate --save /etc/pacman.d/mirrorlist

#### Пример 2

Эта команда подробно выведет список 200 наиболее недавно обновленных HTTP-зеркал, отсортирует их по скорости загрузки и обновит mirrorlist:

    # reflector --verbose -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist

#### Пример 3

То же, что и в предыдущем примере, но будут взяты только зеркала, расположенные в Соединенных Штатах:

    # reflector --verbose --country 'United States' -l 200 -p http --sort rate --save /etc/pacman.d/mirrorlist

#### Служба systemd

    /etc/systemd/system/reflector.service

    [Unit]
    Description=Pacman mirrorlist update

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/reflector --protocol http --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist

Теперь запуск `# systemctl start reflector` разово обновит ваш mirrorlist.

Для обновления списка зеркал при каждой загрузке системы, используйте следующий файл юнита:

    /etc/systemd/system/reflector.service

    [Unit]
    Description=Pacman mirrorlist update
    Requires=network.target
    After=network.target

    [Service]
    Type=oneshot
    ExecStart=/usr/bin/reflector --protocol http --latest 30 --number 20 --sort rate --save /etc/pacman.d/mirrorlist

    [Install]
    RequiredBy=network.target

И включите службу `reflector.service`.

Для того, чтобы она работала, цель `network.target` должна правильно означать, что установлено интернет-соединение.

#### Таймер systemd

Если вы хотите запускать `reflector.service`, скажем, раз в неделю:

    /etc/systemd/system/reflector.timer

    [Unit]
    Description=Run reflector weekly

    [Timer]
    OnCalendar=weekly
    AccuracySec=12h
    Persistent=true

    [Install]
    WantedBy=timers.target

Сохраните файл и включите таймер:

    # systemctl enable reflector.timer

Categories:

- Package management (Русский)
- Русский