此頁面說明如何建立一個新的 CRAN 鏡像,這相當簡單。如果您想成為官方 CRAN 鏡像,請務必仔細閱讀並遵循這些說明。您應該取得您的託管公司的同意(如果您自己不是託管公司),並準備好一些相當重要的頻寬使用量。CRAN 的完整大小在 2024 年 2 月 22 日約為 410 GB(而且我們一直在成長)。
我們目前沒有成文的規則,說明我們何時接受新的鏡像進入官方清單。PHP 僅接受每個國家最多兩個鏡像,我們認為可能需要將中國與盧森堡等國家區別對待。因此,請運用常識並自問您的鏡像是否對 R 社群有幫助。我們希望有良好的全球覆蓋率,但也在鏡像網頁或 GUI 中提供簡短清單。此外,維護清單和監控清單需要人力。如果您的國家沒有鏡像,通常會被接受。否則,如有疑問,請先詢問。
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 專案提供網路空間!