Reflector (简体中文) - ArchWiki

Jump to content
翻译状态：本文是 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`。

## 参考

- Arch Linux 论坛上的 Reflector 帖子
- 包含变更日志的上游项目页面

Category:

- Package management (简体中文)