Jump to content

Reflector

From ArchWiki

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

Install the reflector package.

Alternatively, the reflector-rsAUR package can be used as a drop-in replacement.

Usage

To see all of the available options, run the following command:

$ reflector --help
Note It is typically not a good idea to filter by country; there are only a finite number of mirrors in a single country. Network throughput is only partly determined by geographical distance.

Examples

See reflector(1) § EXAMPLES.

Note Examples overwriting /etc/pacman.d/mirrorlist need to be run as root. Make a backup before proceeding and verify the results afterwards.

Automation

systemd service

Reflector ships with reflector.service, which runs Reflector using the options specified in /etc/xdg/reflector/reflector.conf. The default options in that file provide a good starting point and example.

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.

For changing the default options that reflector.service gets started with, edit the configuration file as described in #systemd service. Then, start and enable reflector.timer.

To refresh the mirrorlist ahead of schedule, start reflector.service.

Note Having both reflector.service and reflector.timer enabled is redundant. With the service enabled, Reflector will run on every boot. To make it only run weekly, as originally designed for the timer, enable only the timer. The service does not to be in the enabled state for the timer to function.

pacman hook

pacman-mirrorlist is not updated regularly, invoking reflector because a mirror in some part of the globe was added or removed is not relevant; use the #systemd timer approach instead. If you do not want mirrorlist.pacnew to be installed at all, use NoExtract in /etc/pacman.conf.

See also