Reflector

出自 Arch Linux 中文维基

Reflector 是一個 Python 腳本;它可以從 Arch Linux Mirror Status 頁面獲取最新的鏡像列表,然後篩選出最新的鏡像並按速度排序,最後將結果寫入到 /etc/pacman.d/mirrorlist 文件。

安裝[編輯 | 編輯原始碼]

安裝 reflector 軟件包。

用法[編輯 | 編輯原始碼]

警告:
  • 在下面的例子中,會覆蓋 /etc/pacman.d/mirrorlist 文件。進行操作前應該進行備份。
  • 在同步或更新 pacman 前,需要確保 /etc/pacman.d/mirrorlist 文件沒有包含你不信任的鏡像。

要查看所有可用選項,運行以下命令:

$ reflector --help

示例[編輯 | 編輯原始碼]

請見 reflector(1) § EXAMPLES。覆蓋 /etc/pacman.d/mirrorlist 的示例需要以 root 用戶運行。

提示:要想包含全球伺服器,向 country 選項傳遞一個空的字符串。舉個例子,要想包含法國,德國和全球鏡像,應該使用 --country 'France,Germany,'[1]

自動處理[編輯 | 編輯原始碼]

systemd service[編輯 | 編輯原始碼]

Reflector 附帶一個 reflector.service。這個服務會用 /etc/xdg/reflector/reflector.conf 中指定的參數運行 Reflector。此文件中的默認選項是一個很好的起點和示例。

例如,從法國和德國的鏡像中篩選出 5 個最新的並且支持 HTTPS 的鏡像,然後將結果覆寫到 /etc/pacman.d/mirrorlist 文件內;使用:

/etc/xdg/reflector/reflector.conf
--save /etc/pacman.d/mirrorlist
--country France,Germany
--protocol https
--latest 5

啟用 reflector.service 服務可以在引導時運行 Reflector 腳本。要立即運行,啟動該服務。

注意: reflector.service 依賴於一個通過 network-online.target 配置的網絡等待服務。

systemd timer[編輯 | 編輯原始碼]

Reflector 提供一個 systemd timer (reflector.timer) 定時器,這樣每周都會調用 reflector.service 服務。可以編輯 reflector.timer 來調整時間表。

首先像服務一節那樣編輯好配置文件。配置文件更新後,啟用啟動 reflector.timer 定時器。

要提前刷新鏡像列表,啟動 reflector.service 服務。

pacman hook[編輯 | 編輯原始碼]

pacman-mirrorlist 不定期更新,只是因為一些地區添加或移除鏡像調用 Reflector 與此無關。改為使用基於時間的自動化。如果你完全不想安裝 mirrorlist.pacnew,在 pacman.conf 使用 NoExtract

參考[編輯 | 編輯原始碼]