CRAN 镜像 HOWTO/FAQ

本页面解释了如何创建新的 CRAN 镜像,这相当简单。如果您想成为官方 CRAN 镜像,请务必仔细阅读并遵循以下说明。您应该获得您的托管公司(如果您不是托管公司本身)的同意,并准备好应对相当大的带宽使用量。CRAN 的完整大小在 2024-02-22 约为 410 GB(并且我们一直在增长)。

我们目前没有关于将新镜像添加到官方列表中的书面规则。 PHP 每个国家只接受最多两个镜像,我们认为可能需要对中国进行不同的处理,例如卢森堡。因此,请使用常识,问问自己您的镜像是否对 R 社区有帮助。我们希望有良好的全球覆盖范围,但也希望在 镜像网页 或 GUI 上有简短的列表。此外,维护列表和 监控 它需要人工时间。如果您的国家/地区没有镜像,通常会接受它。否则,如有疑问,请先询问。

我在哪里可以获得 CRAN 的副本?

位于奥地利维也纳 WU 的 CRAN 主站点可以在以下 URL 找到
https://cran.r-project.org.cn
也可以通过 rsync 访问 cran.r-project.org::CRAN

您所要做的就是定期(至少每周两次,最好每 1-2 天,但每天不要超过两次)将完整的树递归地镜像到您的 Web 服务器上。您用于镜像的软件取决于服务器的操作系统,但我们强烈建议您使用 rsync。出于安全原因,我们还建议通过 SSH 隧道进行镜像。您可能希望使用以下参数调用 rsync

  rsync -e "ssh" -rptlzv --delete [email protected]::CRAN /dir/on/local/disc

或(可能不安全)

  rsync -rptlzv --delete cran.r-project.org::CRAN /dir/on/local/disc

对于通过 ssh 的 rsync,请提前将您的公共 SSH 密钥发送到 [email protected](只考虑来自组织的请求),并且不要忘记 --delete 标志以从镜像中删除不再存在于主服务器上的文件。

CRAN 树使用符号链接,因此 rysnc 可能无法在Windows 服务器上按预期工作。可能需要在上述内容中将 -l 替换-L(对于一些部分镜像,例如,那些不包括 contrib/Archive 区域的镜像,这也将是必要的)。

在开始之前考虑您的文件系统权限/用户模式是一个好习惯,以确保每次同步都能成功,并且之后服务器软件(例如 Apache)能够访问所有必需的文件。根据您的服务器环境,可以通过仔细的规划、调整 rsync 脚本中的权限/所有权,或通过 rsync 本身的附加参数来实现。

服务器配置

CRAN 不包含任何动态页面,因此通常不需要对您的 Web 服务器进行特殊配置。但是,有一些额外的设置和一些需要检查的设置。

最后,当使用 Apache 服务器时,如果 CRAN 目录中的 .htaccess 文件已启用(会降低服务器速度),它应该会自动工作。或者(推荐)将以下内容添加到 Apache 配置中。

<Directory [your CRAN directory]/src>
        Options +Indexes
</Directory>

<Directory [your CRAN directory]/bin>
        Options +Indexes
</Directory>

可选服务器配置

如果您想宣传镜像的托管机构,可以使用环境变量 CRAN_HOST

在这种情况下,您需要启用服务器端包含(不执行)。

如果您有 Apache 2.4+ 服务器,以下是您需要在配置中包含的内容。

  SetEnv CRAN_HOST "This server is hosted by your organization ..."

字符串 "This server ..."(可能包含 HTML 标记)将添加到 CRAN 主页的页脚,请参阅 主服务器 以获取示例。

您还需要

  Options +IncludesNOEXEC

在相应的 <Directory> 部分中,以及

  #
  # To use server-parsed HTML files
  #
  AddType text/html .shtml
  <IfModule mod_include.c>
    AddOutputFilter INCLUDES .shtml
  </IfModule>

在 Apache 配置的 MIME 类型部分中。确切的语法取决于 Apache 的版本。您只需在默认配置中取消注释这些(或类似)行即可。

通知我们!

一旦您的镜像运行起来并且自动更新工作了几天,请发送电子邮件至 [email protected],以便我们将其网站包含在镜像列表中。请在您的电子邮件中包含以下信息

感谢您为 R 项目提供网络空间!