Reflector (文言文) - ArchWiki

Jump to content

This article or section is a candidate for moving to User:VINDOBONA POETICA/Reflector (文言文).

Notes: Visibly copied from Reflector (正體中文), not up to date with the English page. (Discuss in Talk:Reflector (文言文))
翻譯狀態：本文章是 Reflector 的翻譯版本。最近一次的翻譯時間：2020-05-27。點擊本連結查看英文頁面之後的變更。

相關文章

- Mirrors
- Pacman

夫Reflector 者，一腳本程式也，可得至新之鏡像列表於 MirrorStatus 頁面，濾其至新者，次以速而覆 `/etc/pacman.d/mirrorlist` 文件。

## 所裝

安裝 reflector 軟體包。

## 法

警告：

- `/etc/pacman.d/mirrorlist` 將為覆書於下例。行前當先行備份。
- 同步或新 Pacman 前，保無子少信之條目生於 `/etc/pacman.d/mirrorlist` 。

行下令以俱覽可行之令：

    # reflector --help

### 例

次近同步之五鏡像以下載速，而覆 `/etc/pacman.d/mirrorlist` 文件：

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

擇同步之近200 HTTP 或 HTTPS 鏡像，次以下載速，而覆 `/etc/pacman.d/mirrorlist` 文件：

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

擇12時內同步之 HTTPS 於法、德二國者，次以下載速，而覆 `/etc/pacman.d/mirrorlist` 文件：

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

## 自動化

### Pacman hook

子可立一 pacman hook 行 reflector ，每刪所立之 .pacnew 文件於 pacman-mirrorlist 升級時。

    /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"

當替 reflector以子所須之參數 。

### Systemd service

下例，行 reflector 後乎服務單元網路連線者也 ：

    /etc/systemd/system/reflector.service

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

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

    [Install]
    RequiredBy=multi-user.target

啟動 `reflector.service` 則新鏡像之表。若欲每新鏡像之表於開機時，當 啟用 此服務。

註記: 欲知其詳，見 Systemd#Running services after the network is up 。

### Systemd timer

若欲週行 `reflector.service` ，當立一所關之 .timer 。如下例：

    /etc/systemd/system/reflector.timer

    [Unit]
    Description=Run reflector weekly

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

    [Install]
    WantedBy=timers.target

而後徑行 啟動 `reflector.timer` 。

Category:

- 文言文

Hidden category:

- Pages or sections flagged with Template:Move