CRAN 鏡像指南/常見問答

此頁面說明如何建立一個新的 CRAN 鏡像,這相當簡單。如果您想成為官方 CRAN 鏡像,請務必仔細閱讀並遵循這些說明。您應該取得您的託管公司的同意(如果您自己不是託管公司),並準備好一些相當重要的頻寬使用量。CRAN 的完整大小在 2024 年 2 月 22 日約為 410 GB(而且我們一直在成長)。

我們目前沒有成文的規則,說明我們何時接受新的鏡像進入官方清單。PHP 僅接受每個國家最多兩個鏡像,我們認為可能需要將中國與盧森堡等國家區別對待。因此,請運用常識並自問您的鏡像是否對 R 社群有幫助。我們希望有良好的全球覆蓋率,但也在鏡像網頁或 GUI 中提供簡短清單。此外,維護清單和監控清單需要人力。如果您的國家沒有鏡像,通常會被接受。否則,如有疑問,請先詢問。

我在哪裡可以取得 CRAN 的副本?

位於奧地利維也納 WU 的 CRAN 主站台可以在網址
https://r-cran.dev.org.tw
找到,也可以透過 rsync 存取cran.r-project.org::CRAN

您所要做的就是定期(至少一週兩次,最好每 1-2 天,但一天不要超過兩次)將完整的樹狀結構遞迴鏡像到您的 Web 伺服器。您用於鏡像的軟體取決於伺服器的作業系統,但我們強烈建議您使用 rsync。出於安全性考量,我們進一步建議透過 SSH 隧道進行鏡像。您可能想使用下列參數呼叫 rsync

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

或(可能不安全)

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

對於透過 ssh 的 rsync,請事先將您的公開 SSH 金鑰傳送至 cran-sysadmin@r-project.org(僅考慮來自組織的請求),並且別忘了使用 --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 的版本。您所要做的就是取消對預設組態中這些(或類似)行的註解。

通知我們!

您的鏡像上線並執行後,自動更新運作幾天後,請寄電子郵件至 cran@r-project.org,以便我們將您的網站納入鏡像清單中。請在您的電子郵件中包含下列資訊

感謝您預先為 R 專案提供網路空間!