跳转至内容

镜像

来自 ArchWiki

本页面是关于选择和配置镜像的指南,并列出了当前可用的镜像。

官方镜像

官方 Arch Linux 镜像列表可通过 pacman-mirrorlist 软件包获得。要获取更及时的镜像列表,请使用 Pacman Mirrorlist Generator 页面。

可以通过访问 Mirror Status 页面来检查镜像状态。建议仅使用最新的镜像,即没有同步延迟的镜像。

如果你希望你的镜像被添加到官方列表中,请参阅 DeveloperWiki:NewMirrors。在此期间,请将其添加到 非官方镜像 页面。

支持 IPv6 的镜像

Pacman Mirrorlist Generator 也可以用来查找当前的 IPv6 镜像列表。

支持 TLS 加密 rsync 的镜像

镜像列表生成页面没有针对支持 TLS 加密 rsync 的镜像的筛选器:它们被列在下方。pkgbuild.com 的镜像由 Arch Linux DevOps 团队管理,而其他镜像则由社区贡献。有关设置详细信息的,请参阅 DeveloperWiki:NewMirrors

  • rsync://berlin.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 德国地理镜像
  • rsync://frankfurt.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 德国地理镜像
  • rsync://singapore.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 新加坡地理镜像
  • rsync://johannesburg.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 南非地理镜像
  • rsync://umea.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 瑞典地理镜像
  • rsync://taipei.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 台湾地理镜像
  • rsync://london.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 英国地理镜像
  • rsync://losangeles.mirror.pkgbuild.com/packages/ — Tier 1 Arch Linux 美国地理镜像
  • rsync://mirror.funami.tech/arch — 位于韩国的 YuruMirror Tier 1 镜像
  • rsync://de.mirror.shibe.party/archlinux/ — 位于德国的 Tier 2 镜像
  • rsync://fr.mirror.shibe.party/archlinux/ — 位于法国的 Tier 2 镜像
  • rsync://ftp.io.kr/arch — 位于韩国的 Tier 2 镜像
  • rsync://mirror.keiminem.com/archlinux - 位于韩国的 Tier 1 镜像
  • rsync://mirror2.keiminem.com/archlinux - 位于韩国的 Tier 1 镜像

启用特定镜像

要启用镜像,请编辑 /etc/pacman.d/mirrorlist 并找到你的地理区域。取消注释你想使用的镜像。

例如:

## Worldwide
#Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch
#Server = http://mirror.rackspace.com/archlinux/$repo/os/$arch
Server = https://mirror.rackspace.com/archlinux/$repo/os/$arch

关于帮助选择镜像的工具,请参阅 #镜像排序

提示 取消注释 5 个最常用的镜像并将它们放在 mirrorlist 文件的顶部。这样很容易找到它们,并且如果列表中的第一个镜像出现问题,可以方便地移动位置。这也使得合并镜像列表更新变得更容易。

也可以在 /etc/pacman.conf 中指定镜像。对于 core 仓库,默认设置是

[core]
Include = /etc/pacman.d/mirrorlist

要将 kernel.org 镜像用作默认镜像,请将其添加到 Include 行之前

[core]
Server = https://mirrors.kernel.org/archlinux/$repo/os/$arch
Include = /etc/pacman.d/mirrorlist

pacman 现在将首先尝试连接到此镜像。如果适用,请对 core-testing, extra, 和 extra-testing 执行同样的操作。

警告 如果直接在 pacman.conf 中声明了镜像,请记得所有仓库都使用同一个镜像。否则,这会导致 部分升级,因为可能会安装彼此不兼容的软件包,例如来自 corelinux 和来自 extra 的较旧内核模块。

强制 pacman 刷新软件包列表

镜像可能会出现不同步的情况,旧镜像的软件包列表可能与新镜像的软件包列表不一致,即使列表的日期表明它们是一致的。

创建/编辑 /etc/pacman.d/mirrorlist 后,请执行以下命令

# pacman -Syyu

传递两个 --refresh/-y 标志会强制 pacman 刷新所有软件包列表,即使它们被认为是 up-to-date 的。

注意 在大多数情况下,执行 pacman -Syyu 是不必要的带宽浪费,但在从损坏的镜像切换到正常的镜像时,有时可以解决问题。另请参阅 Is -Syy safe?
警告 在大多数情况下,如果你强制刷新 pacman 数据库,你可能需要强制降级任何可能过新的软件包,以使其与新镜像提供的版本相对应。这可以防止软件包升级不一致导致的部分更新问题。
# pacman -Syyuu

在使用 成功同步的镜像 或检查镜像 lastsync 文件的 timestamp 以确保软件包列表是最新的时,这是不必要的。

镜像排序

在下载软件包时,pacman 按照 /etc/pacman.d/mirrorlist 中列出的顺序使用镜像,即服务器在列表中的顺序决定了其优先级。如果软件包下载失败(例如:文件未找到、连接超时),则使用列表中的下一个条目。

仅根据速度对镜像进行排序并非最佳方案,因为最快的服务器可能未同步。相反,请先创建一个按 速度 排序的镜像列表,然后根据其 状态 从列表中删除那些未同步的镜像。

建议定期重复此过程以保持镜像列表的最新状态。

按速度列表

对现有镜像列表进行排序

pacman-contrib 软件包提供了一个 Bash 脚本 /usr/bin/rankmirrors,可用于根据镜像的连接和打开速度对其进行排序,以利用最快的本地镜像。

备份现有的 /etc/pacman.d/mirrorlist

# cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.backup

为了准备 mirrorlist.backup 以使用 rankmirrors 进行排序,可以执行以下操作

  • 编辑 mirrorlist.backup 并取消注释要测试的服务器
  • 如果文件中的服务器是按国家分组的,可以使用以下命令提取特定国家的所有服务器
    $ awk '/^## Country Name$/{f=1; next}f==0{next}/^$/{exit}{print substr($0, 1);}' /etc/pacman.d/mirrorlist.backup
  • 要取消注释每个镜像,请运行以下 sed
    # sed -i 's/^#Server/Server/' /etc/pacman.d/mirrorlist.backup
  • 最后,对镜像进行排序,此处使用参数 -n 6 以仅输出 6 个最快的镜像
    # rankmirrors -n 6 /etc/pacman.d/mirrorlist.backup > /etc/pacman.d/mirrorlist

获取并对实时镜像列表进行排序

为了从一些国家的最新镜像短名单开始并将其传递给 rankmirrors,可以从 Pacman Mirrorlist Generator 获取列表。下面的命令拉取 法国英国 中支持 https 协议的最新镜像,取消列表中服务器的注释,然后对其进行排序并输出最快的 5 个。

$ curl -s "https://archlinux.org.cn/mirrorlist/?country=FR&country=GB&protocol=https&use_mirror_status=on" | sed -e 's/^#Server/Server/' -e '/^#/d' | rankmirrors -n 5 -
提示 此过程可以通过使用任何文本浏览器(例如 elinks(1))访问 https://archlinux.org.cn/mirrorlist 来交互式完成。

服务端排序

官方的 Pacman Mirrorlist Generator 提供了一种获取已排序镜像列表的便捷方式。由于所有排序都在一台考虑了多种因素的服务器上完成,因此与在每个客户端上单独排序相比,镜像和客户端的负载显著降低。

客户端排序

  • ghostmirror — 与其他镜像软件不同,GhostMirror 会检查镜像是否同步,除了简单的 ping 测试外还执行实际的下载速度测试,通过 systemd 自动化所有操作,且如果配置得当,可以让您告别手动镜像管理。
https://github.com/vbextreme/ghostmirror || ghostmirrorAUR
  • mirro-rs — 一个带有 TUI(文本用户界面)的 Arch Linux 镜像列表管理器。
https://github.com/rtkay123/mirro-rs || mirro-rs
  • rate-mirrors — 一个快速的镜像排序工具,可为您的 Linux 发行版寻找最佳镜像。它利用海缆和互联网交换数据,在国家之间智能跳转,在约 30 秒内发现快速镜像。
https://github.com/westandskif/rate-mirrors || rate-mirrors
  • Reflector — 从 MirrorStatus 页面检索最新的镜像列表,按速度过滤和排序,并覆盖 /etc/pacman.d/mirrorlist。通过 systemd 服务和定时器提供自动化。
https://xyne.dev/projects/reflector/ || reflector
  • shiny-mirrors — 用 Rust 编写的 reflector 替代方案。
https://gitlab.com/Arisa_Snowbell/shiny-mirrors || shiny-mirrorsAUR
注意 请谨慎运行排序工具,以避免不必要的服务器带宽和资源占用(例如,不要超过每 1-2 周一次)。

故障排除

缺失镜像列表 (mirrorlist)

如果你遇到以下错误

error: config file /etc/pacman.d/mirrorlist could not be read: No such file or directory

直接从网站获取镜像列表

# curl -o /etc/pacman.d/mirrorlist https://archlinux.org.cn/mirrorlist/all/

请确保按照 #启用特定镜像 中所述,取消注释一个首选镜像。

或者,使用 #镜像排序 中列出的生成镜像列表的方法之一。

异常镜像

如果你确定某个镜像运行不正常,且 镜像状态页面 没有反映出这一点,请更换镜像并考虑 提交 Bug 报告。对于镜像问题,应在 Arch Linux GitLab 的 arch-mirrors 项目 中提交。你也可以发送邮件至 mirrors@archlinux.org

Pacman 无法从 HTTP 镜像检索软件包

请先参阅 Pacman#Packages cannot be retrieved on installation。如果没用,请使用 HTTPS 镜像。

Pacman 无法通过 HTTPS 检索数据

如果 pacman 因 TLS 相关错误而无法检索文件,请首先确保你的 系统时间 正确。如果本地时间在证书有效期之外,TLS 证书将被拒绝。NTP 是推荐的,但不是必须的 —— 尤其是在修复更紧迫的问题时。

许多镜像接受纯 HTTP 连接,尽管这在 /etc/pacman.d/mirrorlist 中没有体现。访问 官方镜像列表生成器 来查找支持该连接的服务器。

参见

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.