Jump to content
From ArchWiki
Status de tradução: Esse artigo é uma tradução de Reflector. Data da última tradução: 2020-07-03. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Artigos relacionados

- Espelhos
- Pacman

Reflector é um script que pode recuperar a lista de espelhos mais recente da página MirrorStatus, filtrar os espelhos mais atualizados, classificá-los por velocidade e substituir o arquivo `/etc/pacman.d/mirrorlist`.

## Instalação

Instale o pacote reflector.

## Uso

Atenção:

- Nos exemplos a seguir, `/etc/pacman.d/mirrorlist` vai ser sobrescrito. Faça um backup antes de proceder.
- Certifique-se de que o `/etc/pacman.d/mirrorlist` resultante não contenha entradas que você considere não confiáveis antes de sincronizar ou atualizar com pacman.

Para ver todos os comandos disponíveis, execute o seguinte comando:

    # reflector --help

### Exemplos

Classifica e ordena de forma detalhada os cinco espelhos sincronizados mais recentemente pela velocidade do download e sobrescreve o arquivo `/etc/pacman.d/mirrorlist`:

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

Seleciona os 200 espelhos HTTP ou HTTPS sincronizado mais recentemente, ordena-os pela velocidade de download e sobrescreve o arquivo `/etc/pacman.d/mirrorlist`:

    # reflector --latest 200 --protocol http --protocol https --sort rate --save /etc/pacman.d/mirrorlist

Seleciona os espelhos HTTPS sincronizados dentro das últimas 12 horas e localizados na França ou Alemanha, ordena-os pela velocidade de download e sobrescreve o arquivo `/etc/pacman.d/mirrorlist`:

    # reflector --country France --country Germany --age 12 --protocol https --sort rate --save /etc/pacman.d/mirrorlist

## Automação

### Hook do pacman

Você pode criar um hook do pacman que executará reflector e removerá o arquivo .pacnew criado toda vez que pacman-mirrorlist recebe uma atualização.

    /etc/pacman.d/hooks/mirrorupgrade.hook

    [Trigger]
    Operation = Upgrade
    Type = Package
    Target = pacman-mirrorlist

    [Action]
    Description = Updating pacman-mirrorlist with reflector and removing pacnew...
    When = PostTransaction
    Depends = reflector
    Exec = /bin/sh -c "reflector --country 'United States' --latest 200 --age 24 --sort rate --save /etc/pacman.d/mirrorlist; rm -f /etc/pacman.d/mirrorlist.pacnew"

Certifique-se de substituir nos argumentos desejados para o refletor.

### Serviço de systemd

Este é um exemplo de uma unit de serviço que espera que a rede esteja ativa e online antes de executar o refletor:

    /etc/systemd/system/reflector.service

    [Unit]
    Description=Pacman mirrorlist update
    Wants=network-online.target
    After=network-online.target nss-lookup.target

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

    [Install]
    WantedBy=multi-user.target

Ao iniciar `reflector.service`, a lista de espelhos será atualizada. Para atualizar a lista de espelhos sempre que o computador inicializar, habilite o serviço.

Nota: Para obter mais informações sobre a implementação da dependência de rede, consulte systemd (Português)#Executando serviços após a rede estar ativa.

### Timer de systemd

Se você deseja executar `reflector.service` semanalmente, crie um timer associado. Por exemplo:

    /etc/systemd/system/reflector.timer

    [Unit]
    Description=Run reflector weekly

    [Timer]
    OnCalendar=Mon *-*-* 7:00:00
    RandomizedDelaySec=15h
    Persistent=true

    [Install]
    WantedBy=timers.target

E basta iniciar o `reflector.timer`.

### Pacote reflector-timer

Instale reflector-timerAUR[link quebrado: package not found] para executar o reflector semanalmente.

A configuração padrão, que pode ser editada para atender necessidades específicas de cada um, é:

    /usr/share/reflector-timer/reflector.conf

    AGE=6
    COUNTRY=Germany
    LATEST=30
    NUMBER=20
    SORT=rate
    ### remova uma entrada, se você não deseja-o como um protocolo disponível
    PROTOCOL1='-p http'
    PROTOCOL2='-p https'
    PROTOCOL3='-p ftp'

Certifique-se de habilitar o `reflector.timer`.

### Tarefa do cron

Para atualizar o mirrorlist diariamente, considere o seguinte:

    /etc/cron.daily/mirrorlist

    #!/bin/bash

    # Obtém a lista por país
    /usr/bin/reflector -c "India" -p http --sort rate > /etc/pacman.d/mirrorlist

    # Trabalha com as alternativas
    /usr/bin/reflector -p http  --latest 20 -p https -p ftp --sort rate >> /etc/pacman.d/mirrorlist

## Veja também

- Tópico sobre o Reflector no fórum do Arch Linux

Category:

- Package management (Português)

Hidden category:

- Pages with broken package links