跳转至内容

DeveloperWiki:NewMirrors

来自 ArchWiki

添加新镜像

本文档将概述为 Arch 包添加新镜像的流程。

关于私有镜像的说明

  • 带宽并非免费的。镜像提供者必须为他们为您提供的数据付费。
    • 尽管您为您的ISP付费,这一点仍然适用。
    • 一个完整的镜像大小超过 100 GiB。
  • 您将下载许多可能永远不会使用的软件包。
  • 镜像运营商更希望您只下载您需要的软件包。
  • 请务必查看 pacman/Tips and tricks#Network shared pacman cache 中列出的替代方案,然后再设置私有镜像。

2级镜像方案

由于高负载和带宽限制,Arch Linux 使用 2 级镜像方案。

有少数 1 级镜像每小时直接从 archlinux.org 同步。

所有其他镜像应从 1 级镜像同步。不允许从 archlinux.org 同步。

给镜像管理员

2级要求

  • 磁盘空间 >= 100 GiB
  • 从 1 级镜像同步 (参见 https://archlinux.org.cn/mirrors/tier/1/)
  • 同步上游镜像的所有内容 (即,不要只同步某些仓库)
  • 同步频率不得超过每小时一次,但至少应每天同步一次。
  • 在随机分钟同步,这样请求更有可能与其他镜像错开。
  • 使用以下 rsync 选项: -rlptH --safe-links --delete-delay --delay-updates
  • 如果您希望向我们的用户发送停机通知,请使用 arch-mirrors-announce 列表。您无需订阅即可发帖。
  • http 或 https 支持

1级要求

  • 2级要求
  • 带宽 >= 100 Mbit/s
  • rsync 支持
  • 经过验证的可靠性 (作为 2 级镜像一段时间并具有合理的正常运行时间,响应不同步通知等)。

您可以使用 rsync 直接同步,或以 syncrepo-template.sh 脚本作为起点。请注意,该脚本会尝试最大限度地减少负载和带宽使用 (截至 2018-03-01,每次 rsync 运行约 3 MiB 的元数据),以防没有更改。如果您不同步得很频繁,或者您的上游镜像不提供 lastupdate 文件,请随时删除此检查。

通过TLS进行rsync

注意 使用 rsync-ssl(1) 时,只能使用 gnutls 和 openssl SSL 类型进行数字证书的验证。当在 syncrepo-template.sh 文件中启用 tls=1 选项时,默认使用 openssl。

如果您希望通过 TLS 进行 rsync,Arch Linux 正通过 geo mirrors 和 T0 到 T1 镜像提供 支持 TLS 的 rsync 端点 以供同步。您可以使用 rsync-ssl(1),这是一个 rsync(1) 的包装器。端口暴露为 874,这是 rsync-ssl 默认使用的端口。

要为您的镜像设置通过 TLS 的 rsync,您可以遵循 Arch Linux 实现的相同模式,即使用 nginx 和 TLS 来处理 rsync 守护进程。使用由 nginx-mod-stream 支持的 TCP 负载均衡,nginx 连接到 rsync 套接字并转发请求。rsync 需要在其配置中启用 use proxy = on 功能,并且 SSL 证书由 nginx 提供。有关进一步的实现,可以在 Arch Linux GitLab 上查看 Arch Linux 方面所做的更改。另一种实现类似结果的方法是使用 stunnel

创建功能请求

  • 我们不接受新的 ftp 镜像。
  • 如果您正在提交对现有镜像的更改
    • 请使用您最初在 Arch Linux GitLab 上提交镜像的账户提交,或者发送一封包含用于该镜像的联系电子邮件的邮件。
    • 可以选择在此处粘贴被更改镜像的链接: https://archlinux.org.cn/mirrors/

前往 https://gitlab.archlinux.org/archlinux/arch-mirrors/-/issues 创建一个包含以下信息的功能请求:

  • 镜像域名
  • 镜像的地理位置 (国家)
  • 支持的访问方法 (http, https, rsync) 的 URL (无 ftp)
  • 您的镜像可用带宽
  • 一个管理员联系电子邮件 (可选,见下文)
  • 一个备用管理员联系电子邮件 (可选)
  • (1 级镜像) Rsync IP,以便您的服务器可以被允许从 0 级 (rsync.archlinux.org) 同步
  • (2 级镜像) 您正在从中同步的 1 级镜像的名称。您可以在 https://archlinux.org.cn/mirrors/tier/1/ 中找到可用的 1 级镜像。

Arch Linux 工作人员将使用联系电子邮件与镜像管理员联系,如果他们对镜像有疑问或镜像有问题。如果未提供联系电子邮件,镜像列表可能会随时被移除,尤其是在出现问题时,且不事先通知管理员。

如果镜像管理员正在添加或修改现有镜像的 URL,他们可以在请求中指明,并附上现有镜像的链接。

联系信息和邮件列表

欢迎加入 arch-mirrors 邮件列表,该列表可用于讨论我们的镜像。如果您想告知用户您的镜像停机,请使用 arch-mirrors-announce 邮件列表。您无需订阅即可向 arch-mirrors-announce 发帖。

如果您想联系 Arch Linux 工作人员提问,您可以选择使用 arch-mirrors 列表,可以在我们的跟踪器上打开一个 Bug 报告,或者发送邮件至 mirrors@archlinux.org。还有一个用于任何讨论或问题的 #archlinux-mirrors IRC 频道

Arch Linux 方面

  • 将镜像信息添加到 Django 管理站点
  • 使用 gen_rsync.conf.pl 脚本重新生成 rsync 白名单 - 仅适用于 1 级镜像,或在禁用之前未分级的镜像访问时 (也由每小时一次的 cron 作业完成)。
  • 重新生成 pacman-mirrorlist

镜像大小

为了让您对所需的镜像空间有所了解,这里有一些数字 (截至 2023-05-23)

强制

  • pool (所有软件包) - 80 GiB
  • repositories (core, core-testing, extra, extra-testing, gnome-unstable, kde-unstable, multilib, multilib-testing) - 总计约 200 MiB

可选

  • iso - 5 GiB (建议)
  • archive - 15 GiB (永久冻结)
  • other - 18 GiB
  • sources - 114 GiB
  • images - 6 GiB
  • wsl - 500 MiB
  • pool/*-debug - 60 GiB (未来可能会增长)

大多数镜像不同步 archive、other 和 sources 目录,但会同步所有其他内容 (包括临时仓库),因此通常您需要为 Arch Linux 镜像保留大约 70 GiB 的空间。

但是,请注意,当发生大规模重建时,所需空间可能会暂时增加,从而导致许多软件包以不同版本出现两次。请在上述数值基础上再规划 30 GiB 到 50 GiB 的缓冲空间。