# Reflector (Français)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Related articles

- Mirrors
- Pacman

Reflector est un script qui permet de récupérer la liste des miroirs depuis la page MirrorStatus, puis de les filtrer selon diverses règles et de les ordonner dans un certain ordre. Enfin, le résultat peut être sauvé dans `/etc/pacman.d/mirrorlist`.

## Installation

Vous pouvez installer le paquet reflector avec Pacman.

    pacman -Syu reflector

## Usage

Attention:

- Créez une sauvegarde de `/etc/pacman.d/mirrorlist` avant de continuer :

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

- Assurez-vous toujours que `/etc/pacman.d/mirrorlist` ne contienne que des miroirs que vous considérez sûrs avant de lancer pacman pour une opération de synchronisation ou de mise à jour.

Pour obtenir l'ensemble des options supportées par reflector :

    reflector --help

### Exemples

#### Exemple 1

Cette commande filtre les 5 miroirs qui ont été mis à jour tout récemment, les trie par vitesse puis écrase `/etc/pacman.d/mirrorlist` avec ces nouveaux miroirs :

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

#### Exemple 2

Cette commande va trier les 200 miroirs http synchronisés récemment puis les trier par vitesse dans `/etc/pacman.d/mirrorlist` :

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

#### Exemple 3

Cette commande va trier les 5 miroirs http les plus récemment synchronisés en France puis les trier par vitesse et enfin sauvegarder le résultat dans `/etc/pacman.d/mirrorlist` :

    reflector --verbose --country 'France' -l 5 -p http --sort rate --save /etc/pacman.d/mirrorlist

### Avec systemd-timer

On peut lancer `reflector` régulièrement grâce à systemd grâce aux unités suivantes. Voir le wiki anglophone : systemd/cron functionality.

Note: L'unité `reachable-retry@` utilise un biais moche : utiliser `forking` au lieu de `simple`. Il n'y a cependant à la date de rédaction rien d'autre qui permette de faire ce que fait cette unité.

On crée un timer pour reflector.

    /etc/systemd/system/timer-reflector.timer

    [Unit]
    Description=Timer for reflector

    [Timer]
    # OnCalendar prend hourly, daily, weekly, monthly, yearly ou d'autres considération plus précises
    OnCalendar=daily
    Unit=reflector.service

    [Install]
    WantedBy=multi-user.target

On n'oublie pas de l'activer au démarrage :

    systemctl enable timer-reflector.timer

L'unité suivante sera lancée avant reflector et reflector attendra que l'hôte précisé après le '@' soit ping-able.

    /etc/systemd/system/reachable-retry@.service

    [Unit]
    Description=Test if %i is reachable
    # Customize to your own needs, with network.target or whatever works less worse with you
    After=systemd-networkd-wait-online.service

    [Service]
    Type=forking
    ExecStart=/usr/bin/ping -c1 %i
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target

    /etc/systemd/system/reflector.service

    [Unit]
    Description=Update mirorlist
    # Fire up the tester
    Requires=reachable-retry@www.archlinux.org.service
    # Wait for it to return SUCCESS
    After=reachable-retry@www.archlinux.org.service

    [Service]
    # Copied from wiki
    Nice=19
    IOSchedulingClass=2
    IOSchedulingPriority=7
    Type=oneshot
    # Customize to your own needs
    ExecStart=/usr/bin/reflector -i (fr|nl|be). -f 5 --save /etc/pacman.d/mirrorlist

De cette façon, on a un minuteur qui lance reflector régulièrement mais reflector ne se lancera que dès qu'il peut effectivement atteindre la page MirrorStatus : ça évite les soucis d'échec à cause du réseau qui n'est pas disponible lors du lancement de reflector (et donc reflector n'entre pas en Failed State, entraînant avec lui le timer).

## Alternatives

### Script pour télécharger depuis le générateur de mirrorlist

Se baser sur les miroirs les plus rapides uniquement n'est pas une bonne idée, car ils peuvent être incomplets et ne pas être à jour. Utiliser les miroirs triés par vitesse puis par leur statut est une meilleure idée pour mettre à jour un système depuis des miroirs 100% synchros, rapides et à jour.

`armrr` est un script pour sauvegarder le `/etc/pacman.d/mirrorlist` précédent puis installer une version à jour depuis le générateur de mirrorlist Pacman. Le générateur de mirrorlist Pacman (Pacman Mirrorlist Generator) trie les miroirs par pays, disponibilité et vitesse.

Pour l'installer, utilisez le paquet AUR armrr-gitAUR[broken link: package not found], ou téléchargez-le avec `curl -O https://raw.githubusercontent.com/Gen2ly/armrr/master/armrr`. Lancez-le avec `armrr <country code>` (`armrr CA` pour le Canada par exemple) ou simplement `armrr` pour obtenir une liste des code pays dispos. Tapez `armrr -h,--help` pour plus de détails.

Category:

- Package management (Français)

Hidden category:

- Pages with broken package links