Reflector (文言文)

From ArchWiki

Tango-go-next.pngThis article or section is a candidate for moving to User:VINDOBONA POETICA/Reflector (文言文).Tango-go-next.png

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

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 hookreflector ,每刪所立之 .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 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