建立一個 Debian 倉庫的映射站台
是否需要映射站台
當我們讚揚新的映射站台時,每個潛在的映射站台維護者應確保在嘗試開始建立自己的映射站台之前可以回答以下問題:
- 我所在的位置是否需要映射站台?也許附近已經有映射站台了。
- 我有資源託管映射站台嗎?映射站台會佔用大量磁碟空間和頻寬,因此必須承擔一定的成本。
- 映射站台是正確的選擇嗎?如果您主要想為您的 ISP 或機構的使用者提供支持,那麼諸如 apt-cacher-ng、squid 或 varnish 之類的緩存代理可能是更好的選擇。
映射站台什麼內容
在主映射站台頁列出了可供映射站台的倉庫。
- 使用者會尋找 debian /倉庫,用以透過網路安裝 Debian、(使用 jigdo)構建 CD 以及升級已安裝的系統。我們建議您映射站台此存儲庫。
-
debian-cd/ 是一個在所有不同的映射站台伺服器上都不相同的倉庫。在某些站台上,它包含用於從中構建 CD 映像的 jigdo 模板(與 debian/ 中的文件結合使用);在某些站台上,它包含已構建的 CD 映像;在某些站台上,兩者都被包含。
請參閱映射站台 CD 映像的頁面,以獲取有關此內容的更多信息。 - debian-archive/ 包含 Debian 當前的存檔、舊版本和過時版本。通常只有一小部分使用者對此感興趣。(如果您不知道是否要映射站台,那麼可能不需要。)
請參閱映射站台大小頁面,以獲取有關映射站台大小的更準確的信息。
debian-security/ 倉庫包含 Debian 安全團隊發佈的安全更新。雖然這聽起來對每個人都很有趣,但是我們不建議我們的使用者使用映射站台來獲取安全更新,而是要求他們直接從我們的分佈式 security.debian.org 服務中下載更新。我們不推薦映射站台 debian-security。
從哪建立映射站台
請注意,ftp.debian.org
不是 Debian 套件的規範存放位置,它僅是從內部 Debian 伺服器進行更新的幾臺伺服器之一。
有許多支持 rsync 的公共映射站台,從這些站台進行映射站台是很合適的。請從網路角度使用離您最近的站台。
您應該避免從會被解析為多個地址(例如 ftp.us.debian.org
)的任何服務名稱進行映射站台,因為這可能會導致當您的上游映射站台不同步時,您的同步映射站台處於不同的狀態。
另請注意,HTTP 是唯一一個我們保證存在於 ftp.CC.debian.org
的服務。如果要使用 rsync 映射站台(建議使用 ftpsync),我們建議您為當前提供 ftp.CC.debian.org
的機器選擇正確的站台名稱。(請查看該伺服器上的 /debian/project/trace
目錄以瞭解這一點)
如何映射站台
推薦的映射站台方法是使用 ftpsync 命令稿集,我們提供了以下幾種方法供您獲取它:
- 作為一個 tarball 從 https://ftp-master.debian.org/ftpsync.tar.gz 下載
- 作為一個 git 存儲庫: git clone https://salsa.debian.org/mirror-team/archvsync.git (請參閱 https://salsa.debian.org/mirror-team/archvsync/)
- 作為一個 Debian 套件:ftpsync
請不要使用自己的命令稿,也不要僅使用單遍 rsyncs。使用 ftpsync 可確保以某種方式完成更新,以便令 apt 不產生混亂。特別是,ftpsync 會按一定順序處理翻譯、內容和其他元數據文件,以便如果使用者在映射站台進行同步時更新套件列表,apt 也不會出現驗證錯誤。此外,它還會生成包含更多信息的跟蹤文件,這些信息對於確定映射站台是否正常工作、映射站台同步的體系架構以及它從何處進行同步很有用。
部分映射站台
考慮到Debian 倉庫已經很大,我們建議只映射站台倉庫的一部分。公共映射站台應當包含所有套件(測試、不穩定等),但是它們可能會限制它們同步的體系架構集。ftpsync 的配置文件為此設有 ARCH_EXCLUDE 和 ARCH_INCLUDE 設置選項。
何時映射站台
主倉庫每天更新四次。映射站台通常在 3:00、9:00、15:00 和 21:00(所有時間均為 UTC)左右開始更新,但這些時間從來都不是固定的時間,因此您不應將您的映射站台同步時間固定在這些時間上。
您的映射站台應當在主倉庫映射站台更新之後幾個小時進行更新。您應檢查要映射站台的站台是否在其 project/trace/ 子目錄下保留了一個時間戳文件。該時間戳文件與該站台重名,會包含站台上次更新映射站台的完成時間。為了安全起見,請在此完成時間上增加幾個小時,然後進行映射站台。
您的映射站台與主倉庫保持同步是至關重要的。每24小時至少更新4次以確保您的映射站台真實地反映了倉庫。請理解這點:與主倉庫文件不同步的映射站台將不會在官方映射站台列表中被列出。
實現每天自動運行映射站台同步的最簡單的方法是使用 cron。查看 man crontab 以獲得詳細信息。
請注意,如果您的站台是透過推送機制觸發同步的,那您無需擔心任何此類情況。
Push-triggered 映射站台
推送
映射站台是我們開發的一種映射站台形式,可最大程度地減少倉庫文件的更改同步到映射站台所需的時間。上游映射站台使用一個 SSH 觸發器來告訴下游映射站台自行更新。有關其工作原理、為什麼它是安全的以及如何設置推送映射站台的詳細說明,請參見完整說明。
推薦的額外設置
公共映射站台應該令 Debian 倉庫文件在 /debian
下可以透過 HTTP 訪問。
此外,請確保已啟用目錄列表(帶有完整的文件名),並遵循符號鏈接。 如果您使用 Apache,如下配置應該能使用:
<Directory /path/to/your/debian/mirror> Options +Indexes +SymlinksIfOwnerMatch IndexOptions NameWidth=* +SuppressDescription </Directory>
如何將一個映射站台添加到映射站台列表
如果您想讓自己的映射站台在官方映射站台列表中被列出,請:
- 確保您的映射站台每24小時與倉庫同步4次
- 確保您的映射站台包含所同步的體系架構的原始碼文件
設置好映射站台後,應在 Debian 註冊,以使其被包含在官方映射站台列表。可以使用我們的簡單 web 表單來提交。
如有任何問題或疑問,可以發送電郵到 mirrors@debian.org 詢問。
通信論壇
有關於 Debian 映射站台,存在兩個公共通信論壇: debian-mirrors-announce 和debian-mirrors。我們鼓勵所有映射站台維護者訂閱公告列表,因為它會被用於發佈任何重要的公告。此列表受到審核,訂閱此列表只會收到少量郵件。第二個通信論壇用於一般性的討論,向所有人開放。
如果您存在一些在這些網頁上無法得到回答的問題,可以透過 mirrors@debian.org 或使用在 irc.debian.org 上的 IRC 聊天室 #debian-mirrors 聯繫我們。
專用(部分)映射站台的注意事項
如果您只想為自己的站台建立一個映射站台,並且只需要同步一部分套件(例如穩定版),debmirror 可能也很適合您。