Reflector (简体中文)

From ArchWiki
翻译状态:本文是 Reflector翻译。上次翻译日期:2022-08-17。如果英文版本有所更改,则您可以帮助同步翻译。

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

参考