--- title: 附錄 A. 取得 FreeBSD part: 部 V. 附錄 prev: books/handbook/partv next: books/handbook/bibliography showBookMenu: true weight: 38 params: path: "/books/handbook/mirrors/" --- [appendix] [[mirrors]] = 取得 FreeBSD :doctype: book :toc: macro :toclevels: 1 :icons: font :sectnums: :sectnumlevels: 6 :sectnumoffset: A :partnums: :source-highlighter: rouge :experimental: :images-path: books/handbook/mirrors/ ifdef::env-beastie[] ifdef::backend-html5[] :imagesdir: ../../../../images/{images-path} endif::[] ifndef::book[] include::shared/authors.adoc[] include::shared/mirrors.adoc[] include::shared/releases.adoc[] include::shared/attributes/attributes-{{% lang %}}.adoc[] include::shared/{{% lang %}}/teams.adoc[] include::shared/{{% lang %}}/mailing-lists.adoc[] include::shared/{{% lang %}}/urls.adoc[] toc::[] endif::[] ifdef::backend-pdf,backend-epub3[] include::../../../../../shared/asciidoctor.adoc[] endif::[] endif::[] ifndef::env-beastie[] toc::[] include::../../../../../shared/asciidoctor.adoc[] endif::[] [[mirrors-cdrom]] == CD 與 DVD 合集 FreeBSD CD 以及 DVD 組可從以下幾個線上零售商取得: * FreeBSD Mall, Inc. + 2420 Sand Creek Rd C-1 #347 + Brentwood, CA + 94513 + USA + Phone: +1 925 240-6652 + Fax: +1 925 674-0821 + Email: + WWW: https://www.freebsdmall.com * Getlinux + 78 Rue de la Croix Rochopt + Épinay-sous-Sénart + 91860 + France + Email: + WWW: http://www.getlinux.fr/ * Dr. Hinner EDV + Kochelseestr. 11 + D-81371 München + Germany + Phone: (0177) 428 419 0 + Email: + WWW: http://www.hinner.de/linux/freebsd.html * Linux Center + Galernaya Street, 55 + Saint-Petersburg + 190000 + Russia + Phone: +7-812-309-06-86 + Email: + WWW: http://linuxcenter.ru/shop/freebsd [[mirrors-ftp]] == FTP 站 FreeBSD 的官方原始碼可從全球任一鏡像站透過匿名 FTP 取得。其中 link:ftp://ftp.FreeBSD.org/pub/FreeBSD/[ftp://ftp.FreeBSD.org/pub/FreeBSD/] 站可使用 HTTP 及 FTP,該站是由多台由計畫叢集管理員所維護的主機所組成,且在 GeoDNS 之後,可導向使用者到最近可用的鏡像站。 除此之外,FreeBSD 也可透過匿名 FTP 從下列鏡像站取得。要透過匿名 FTP 取得 FreeBSD 時,請先嘗試使用臨近的站台。列在 "主要鏡像站" 中的鏡像站通常會有完整的 FreeBSD 封存檔 (每一個架構目前所有可用的版本),但若要考慮下載速度,可能要使用您所在國家或區域的站台。區域的站台會有熱門架構最近期的版本,但不會有完整的 FreeBSD 封存檔。所有站台皆提供匿名 FTP 存取只有部份站台會以其他方式提供存取。每個站台可用的存取方式會列在主機名稱後的括號當中。 <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>, <>. (as of UTC) [[central]] *{central}* {central-ftp} (ftp / ftpv6 / {central-http} / {central-httpv6}) [[primary]] *{mirrors-primary}* In case of problems, please contact the hostmaster `<{mirrors-primary-email}>` for this domain. * {mirrors-primary-ftp1} (ftp) * {mirrors-primary-ftp2} (ftp) * {mirrors-primary-ftp3} (ftp) * {mirrors-primary-ftp4} (ftp / ftpv6 / {mirrors-primary-ftp4-http} / {mirrors-primary-ftp4-httpv6}) * {mirrors-primary-ftp5} (ftp) * {mirrors-primary-ftp6} (ftp) * {mirrors-primary-ftp7} (ftp) * {mirrors-primary-ftp10} (ftp / ftpv6 / {mirrors-primary-ftp10-http} / {mirrors-primary-ftp10-httpv6}) * {mirrors-primary-ftp11} (ftp) * {mirrors-primary-ftp13} (ftp) * {mirrors-primary-ftp14} (ftp / {mirrors-primary-ftp14-http}) [[armenia]] *{mirrors-armenia}* In case of problems, please contact the hostmaster `<{mirrors-armenia-email}>` for this domain. * {mirrors-armenia-ftp} (ftp / {mirrors-armenia-ftp-http} / rsync) [[australia]] *{mirrors-australia}* In case of problems, please contact the hostmaster `<{mirrors-australia-email}>` for this domain. * {mirrors-australia-ftp} (ftp) * {mirrors-australia-ftp2} (ftp) * {mirrors-australia-ftp3} (ftp) [[austria]] *{mirrors-austria}* In case of problems, please contact the hostmaster `<{mirrors-austria-email}>` for this domain. * {mirrors-austria-ftp} (ftp / ftpv6 / {mirrors-austria-ftp-http} / {mirrors-austria-ftp-httpv6}) [[brazil]] *{mirrors-brazil}* In case of problems, please contact the hostmaster `<{mirrors-brazil-email}>` for this domain. * {mirrors-brazil-ftp2} (ftp / {mirrors-brazil-ftp2-http}) * {mirrors-brazil-ftp3} (ftp / rsync) * {mirrors-brazil-ftp4} (ftp) [[czech-republic]] *{mirrors-czech}* In case of problems, please contact the hostmaster `<{mirrors-czech-email}>` for this domain. * {mirrors-czech-ftp} (ftp / {mirrors-czech-ftpv6} / {mirrors-czech-ftp-http} / {mirrors-czech-ftp-httpv6} / rsync / rsyncv6) * {mirrors-czech-ftp2} (ftp / {mirrors-czech-ftp2-http}) [[denmark]] *{mirrors-denmark}* In case of problems, please contact the hostmaster `<{mirrors-denmark-email}>` for this domain. * {mirrors-denmark-ftp} (ftp / ftpv6 / {mirrors-denmark-ftp-http} / {mirrors-denmark-ftp-httpv6}) [[estonia]] *{mirrors-estonia}* In case of problems, please contact the hostmaster `<{mirrors-estonia-email}>` for this domain. * {mirrors-estonia-ftp} (ftp) [[finland]] *{mirrors-finland}* In case of problems, please contact the hostmaster `<{mirrors-finland-email}>` for this domain. * {mirrors-finland-ftp} (ftp) [[france]] *{mirrors-france}* In case of problems, please contact the hostmaster `<{mirrors-france-email}>` for this domain. * {mirrors-france-ftp} (ftp) * {mirrors-france-ftp1} (ftp / {mirrors-france-ftp1-http} / rsync) * {mirrors-france-ftp3} (ftp) * {mirrors-france-ftp5} (ftp) * {mirrors-france-ftp6} (ftp / rsync) * {mirrors-france-ftp7} (ftp) * {mirrors-france-ftp8} (ftp) [[germany]] *{mirrors-germany}* In case of problems, please contact the hostmaster `<{mirrors-germany-email}>` for this domain. * ftp://ftp.de.FreeBSD.org/pub/FreeBSD/ (ftp) * ftp://ftp1.de.FreeBSD.org/freebsd/ (ftp / http://www1.de.FreeBSD.org/freebsd/ / rsync://rsync3.de.FreeBSD.org/freebsd/) * ftp://ftp2.de.FreeBSD.org/pub/FreeBSD/ (ftp / http://ftp2.de.FreeBSD.org/pub/FreeBSD/ / rsync) * ftp://ftp4.de.FreeBSD.org/FreeBSD/ (ftp / http://ftp4.de.FreeBSD.org/pub/FreeBSD/) * ftp://ftp5.de.FreeBSD.org/pub/FreeBSD/ (ftp) * ftp://ftp7.de.FreeBSD.org/pub/FreeBSD/ (ftp / http://ftp7.de.FreeBSD.org/pub/FreeBSD/) [[greece]] *{mirrors-greece}* In case of problems, please contact the hostmaster `<{mirrors-greece-email}>` for this domain. * {mirrors-greece-ftp} (ftp) * {mirrors-greece-ftp2} (ftp) [[hong-kong]] *{mirrors-hongkong}* {mirrors-hongkong-ftp} (ftp) [[ireland]] *{mirrors-ireland}* In case of problems, please contact the hostmaster `<{mirrors-ireland-email}>` for this domain. * {mirrors-ireland-ftp} (ftp / rsync) [[japan]] *{mirrors-japan}* In case of problems, please contact the hostmaster `<{mirrors-japan-email}>` for this domain. * {mirrors-japan-ftp} (ftp) * {mirrors-japan-ftp2} (ftp) * {mirrors-japan-ftp3} (ftp) * {mirrors-japan-ftp4} (ftp) * {mirrors-japan-ftp5} (ftp) * {mirrors-japan-ftp6} (ftp) * {mirrors-japan-ftp7} (ftp) * {mirrors-japan-ftp8} (ftp) * {mirrors-japan-ftp9} (ftp) [[korea]] *{mirrors-korea}* In case of problems, please contact the hostmaster `<{mirrors-korea-email}>` for this domain. * {mirrors-korea-ftp} (ftp / rsync) * {mirrors-korea-ftp2} (ftp / {mirrors-korea-ftp2-http}) [[latvia]] *{mirrors-latvia}* In case of problems, please contact the hostmaster `<{mirrors-latvia-email}>` for this domain. * {mirrors-latvia-ftp} (ftp / {mirrors-latvia-ftp-http}) [[lithuania]] *{mirrors-lithuania}* In case of problems, please contact the hostmaster `<{mirrors-lithuania-email}>` for this domain. * {mirrors-lithuania-ftp} (ftp / {mirrors-lithuania-ftp-http}) [[netherlands]] *{mirrors-netherlands}* In case of problems, please contact the hostmaster `<{mirrors-netherlands-email}>` for this domain. * {mirrors-netherlands-ftp} (ftp / {mirrors-netherlands-ftp-http} / rsync) * {mirrors-netherlands-ftp2} (ftp) [[new-zealand]] *{mirrors-new-zealand}* * {mirrors-new-zealand-ftp} (ftp / {mirrors-new-zealand-ftp-http}) [[norway]] *{mirrors-norway}* In case of problems, please contact the hostmaster `<{mirrors-norway-email}>` for this domain. * {mirrors-norway-ftp} (ftp / rsync) [[poland]] *{mirrors-poland}* In case of problems, please contact the hostmaster `<{mirrors-poland-email}>` for this domain. * {mirrors-poland-ftp} (ftp) * ftp2.pl.FreeBSD.org [[russia]] *{mirrors-russia}* In case of problems, please contact the hostmaster `<{mirrors-russia-email}>` for this domain. * {mirrors-russia-ftp} (ftp / {mirrors-russia-ftp-http} / rsync) * {mirrors-russia-ftp2} (ftp / {mirrors-russia-ftp2-http} / rsync) * {mirrors-russia-ftp5} (ftp / {mirrors-russia-ftp5-http} / rsync) * {mirrors-russia-ftp6} (ftp) [[saudi-arabia]] *{mirrors-saudi-arabia}* In case of problems, please contact the hostmaster `<{mirrors-saudi-arabia-email}>` for this domain. * {mirrors-saudi-arabia-ftp} (ftp) [[slovenia]] *{mirrors-slovenia}* In case of problems, please contact the hostmaster `<{mirrors-slovenia-email}>` for this domain. * {mirrors-slovenia-ftp} (ftp) [[south-africa]] *{mirrors-south-africa}* In case of problems, please contact the hostmaster `<{mirrors-south-africa-email}>` for this domain. * {mirrors-south-africa-ftp} (ftp) * {mirrors-south-africa-ftp2} (ftp) * {mirrors-south-africa-ftp4} (ftp) [[spain]] *{mirrors-spain}* In case of problems, please contact the hostmaster `<{mirrors-spain-email}>` for this domain. * {mirrors-spain-ftp} (ftp / {mirrors-spain-ftp-http}) * {mirrors-spain-ftp3} (ftp) [[sweden]] *{mirrors-sweden}* In case of problems, please contact the hostmaster `<{mirrors-sweden-email}>` for this domain. * {mirrors-sweden-ftp} (ftp) * {mirrors-sweden-ftp2} (ftp / {mirrors-sweden-ftp2-rsync}) * {mirrors-sweden-ftp3} (ftp) * {mirrors-sweden-ftp4} (ftp / {mirrors-sweden-ftp4v6} / {mirrors-sweden-ftp4-http} / {mirrors-sweden-ftp4-httpv6} / {mirrors-sweden-ftp4-rsync} / {mirrors-sweden-ftp4-rsyncv6}) * {mirrors-sweden-ftp6} (ftp / {mirrors-sweden-ftp6-http}) [[switzerland]] *{mirrors-switzerland}* In case of problems, please contact the hostmaster `<{mirrors-switzerland-email}>` for this domain. * {mirrors-switzerland-ftp} (ftp / {mirrors-switzerland-ftp-http}) [[taiwan]] *{mirrors-taiwan}* In case of problems, please contact the hostmaster `<{mirrors-taiwan-email}>` for this domain. * {mirrors-taiwan-ftp} (ftp / {mirrors-taiwan-ftpv6} / rsync / rsyncv6) * {mirrors-taiwan-ftp2} (ftp / {mirrors-taiwan-ftp2v6} / {mirrors-taiwan-ftp2-http} / {mirrors-taiwan-ftp2-httpv6} / rsync / rsyncv6) * {mirrors-taiwan-ftp4} (ftp) * {mirrors-taiwan-ftp5} (ftp) * {mirrors-taiwan-ftp6} (ftp / {mirrors-taiwan-ftp6v6} / rsync) * {mirrors-taiwan-ftp7} (ftp) * {mirrors-taiwan-ftp8} (ftp) * {mirrors-taiwan-ftp11} (ftp / {mirrors-taiwan-ftp11-http}) * {mirrors-taiwan-ftp12} (ftp) * {mirrors-taiwan-ftp13} (ftp) * {mirrors-taiwan-ftp14} (ftp) * {mirrors-taiwan-ftp15} (ftp) [[ukraine]] *{mirrors-ukraine}* * {mirrors-ukraine-ftp} (ftp / {mirrors-ukraine-ftp-http}) * {mirrors-ukraine-ftp6} (ftp / {mirrors-ukraine-ftp6-http} / {mirrors-ukraine-ftp6-rsync}) * {mirrors-ukraine-ftp7} (ftp) [[uk]] *{mirrors-uk}* In case of problems, please contact the hostmaster `<{mirrors-uk-email}>` for this domain. * {mirrors-uk-ftp} (ftp) * {mirrors-uk-ftp2} (ftp / {mirrors-uk-ftp2-rsync}) * {mirrors-uk-ftp3} (ftp) * {mirrors-uk-ftp4} (ftp) * {mirrors-uk-ftp5} (ftp) [[usa]] *{mirrors-us}* In case of problems, please contact the hostmaster `<{mirrors-us-email}>` for this domain. * {mirrors-us-ftp} (ftp) * {mirrors-us-ftp2} (ftp) * {mirrors-us-ftp3} (ftp) * {mirrors-us-ftp4} (ftp / ftpv6 / {mirrors-us-ftp4-http} / {mirrors-us-ftp4-httpv6}) * {mirrors-us-ftp5} (ftp) * {mirrors-us-ftp6} (ftp) * {mirrors-us-ftp8} (ftp) * {mirrors-us-ftp10} (ftp) * {mirrors-us-ftp11} (ftp) * {mirrors-us-ftp13} (ftp / {mirrors-us-ftp13-http} / rsync) * {mirrors-us-ftp14} (ftp / {mirrors-us-ftp14-http}) * {mirrors-us-ftp15} (ftp) [[svn]] == 使用 Subversion [[svn-intro]] === 簡介 自 2012 年 7 月起,FreeBSD 儲存所有 FreeBSD 的原始碼、文件與 Port 套件集均使用 Subversion 作為其唯一的版本控制系統。 [NOTE] ==== Subversion 只是一套開發人員工具。一般使用者可能會較喜歡使用 `freebsd-update` (crossref:cutting-edge[updating-upgrading-freebsdupdate,FreeBSD 更新]) 來更新 FreeBSD 基礎系統及 `portsnap` (crossref:ports[ports-using,使用 Port 套件集]) 來更新 FreeBSD Port 套件集。 ==== 本節將示範如何在 FreeBSD 系統安裝 Subversion 以及使用它建立一個本地的 FreeBSD 檔案庫複本,也包含使用 Subversion 的其他資訊。 [[svn-ssl-certificates]] === 根 SSL 憑證 安裝 package:security/ca_root_nss[] 可讓 Subversion 能夠驗証 HTTPS 檔案庫伺服器的身份。root SSL 憑証可從 Port 安裝: [source,shell] .... # cd /usr/ports/security/ca_root_nss # make install clean .... 或從套件: [source,shell] .... # pkg install ca_root_nss .... [[svn-svnlite]] === Svnlite 輕量化版的 Subversion `svnlite` 已會隨 FreeBSD 安裝。Port 或套件版的 Subversion 僅在要使用其 Python 或 Perl API 時需要,或是新想要使用最新版本 Subversion 時才需要。 與正常 Subversion 唯一的差別只是指令名稱改為 `svnlite`。 [[svn-install]] === 安裝 若無法使用 `svnlite` 或需要完整版本的 Subversion 就必須安裝。 Subversion 可從 Port 套件集安裝: [source,shell] .... # cd /usr/ports/devel/subversion # make install clean .... Subversion 也可以以套件安裝: [source,shell] .... # pkg install subversion .... [[svn-usage]] === 執行 Subversion 要下載原始碼乾淨的複本到本地目錄可使用 `svn`。在此目錄中的檔案稱作 _本地工作複本 (Local working copy)_。 [WARNING] ==== 在第一次使用 `checkout` 前請先移動或刪除目地現有的目錄。 在現有非 `svn` 目錄存在的情況下做取出 (Checkout) 的動作會導致現有檔案與檔案庫中的檔案發生衝突。 ==== Subversion 使用 URL 來指定檔案庫,使用的格式為 _protocol://hostname/path_。路徑的第一個部份為要存取的 FreeBSD 檔案庫,目前有三個檔案庫,`base` 為 FreeBSD 基礎系統原始碼、`ports` 為 Port 套件集以及 `doc` 為說明文件。舉例來說,URL `https://svn.FreeBSD.org/ports/head/` 代表 Port 檔案庫的主要分支,使用 `https` 通訊協定。 使用指令從指定的檔案庫取出 (Checkout) 原始碼如下: [source,shell] .... # svn checkout https://svn.FreeBSD.org/repository/branch lwcdir .... where: * _repository_ 要是下列專案檔案庫其中之一:`base`, `ports` 或 `doc`。 * _branch_ 則依據使用的檔案庫來決定。`ports` 與 `doc` 大部份的更新皆在 `head` 分支,而 `base` 則會將 -CURRENT 的最新版本存放在 `head` 下,-STABLE 分支各自最新的版本則會放在 `stable/9` (9._x_) 與 `stable/10` (10._x_) 下。 * _lwcdir_ 則是要存放指定分支內容的目標目錄,通常 `ports` 會置於 [.filename]#/usr/ports#,`base` 會置於 [.filename]#/usr/src# 以及 `doc` 會置於 [.filename]#/usr/doc#。 以下範例會使用 HTTPS 協定從 FreeBSD 的檔案庫取出 Port 套件集,並將本地工作複本放置於 [.filename]#/usr/ports#。若 [.filename]#/usr/ports# 已存在,且不是由 `svn` 所建立的,記得要在取出之前重新命名或刪除。 [source,shell] .... # svn checkout https://svn.FreeBSD.org/ports/head /usr/ports .... 由於首次取出的動作必須下載遠端檔案庫中完整的分支,會需要花費一段時間,請耐心等候。 首次取出之後,往後要更新本地工作複本可以執行: [source,shell] .... # svn update lwcdir .... 要更新上述範例所建立的 [.filename]#/usr/ports# 可執行: [source,shell] .... # svn update /usr/ports .... 因為只會傳輸有更新過的檔案,更新的動作會比取出還要快速。 另一種在取出之後更新本地工作複本的方式是透過 [.filename]#/usr/ports#, [.filename]#/usr/src# 以及 [.filename]#/usr/doc# 目錄所提供的 [.filename]#Makefile#。設定 `SVN_UPDATE` 並使用 `update` 目標。例如要更新 [.filename]#/usr/src#: [source,shell] .... # cd /usr/src # make update SVN_UPDATE=yes .... [[svn-mirrors]] === Subversion 鏡像站 FreeBSD Subversion 的檔案庫為: [.programlisting] .... svn.FreeBSD.org .... 這是可公開存取的鏡像站,使用了 GeoDNS 會自動選擇適合的後端伺服器。若要由瀏覽器檢視 Subversion 檔案庫可以使用 https://svnweb.FreeBSD.org/[https://svnweb.FreeBSD.org/]。 HTTPS is the preferred protocol, but the [.filename]#security/ca_root_nss# package will need to be installed in order to automatically validate certificates. === 取得更多資訊 要取得其他有關使用 Subversion 的資訊請參考 "Subversion Book",其書名為 http://svnbook.red-bean.com/[Version Control with Subversion] 或是 http://subversion.apache.org/docs/[Subversion Documentation]。 [[mirrors-rsync]] == 使用 rsync 這些站台讓 FreeBSD 可透過 rsync 通訊協定取得。rsync 工具只會傳輸兩個檔案集之間的差異,所以能夠大大的加快在網路上同步的速度,這對大多數 FreeBSD FTP 伺服器的鏡像站非常有用。rsync 在許多作業系統上也可以使用,在 FreeBSD 上請參考 package:net/rsync[] Port 或使用套件。 捷克 (Czech Republic):: rsync://ftp.cz.FreeBSD.org/ + 可用的檔案集: ** ftp: FreeBSD FTP 伺服器的部份鏡像。 ** FreeBSD: FreeBSD FTP 伺服器的完整鏡像。 荷蘭 (Netherlands):: rsync://ftp.nl.FreeBSD.org/ + 可用的檔案集: ** FreeBSD: FreeBSD FTP 伺服器的完整鏡像。 俄羅斯 (Russia):: rsync://ftp.mtu.ru/ + 可用的檔案集: ** FreeBSD: FreeBSD FTP 伺服器的完整鏡像。 ** FreeBSD-Archive: FreeBSD 封存 FTP 伺服器的鏡像。 瑞典 (Sweden):: rsync://ftp4.se.freebsd.org/ + 可用的檔案集: ** FreeBSD: FreeBSD FTP 伺服器的完整鏡像。 台灣 (Taiwan):: rsync://ftp.tw.FreeBSD.org/ + rsync://ftp2.tw.FreeBSD.org/ + rsync://ftp6.tw.FreeBSD.org/ + 可用的檔案集: ** FreeBSD: FreeBSD FTP 伺服器的完整鏡像。 英國 (United Kingdom):: rsync://rsync.mirrorservice.org/ + 可用的檔案集: ** ftp.freebsd.org: FreeBSD FTP 伺服器的完整鏡像。 美國 (USA):: rsync://ftp-master.FreeBSD.org/ + 此伺服器僅供 FreeBSD 主要鏡像站使用。 + 可用的檔案集: ** FreeBSD: FreeBSD FTP 伺服器的主要封存。 ** acl: FreeBSD 主要 ACL 清單。 + rsync://ftp13.FreeBSD.org/ + 可用的檔案集: ** FreeBSD: FreeBSD FTP 伺服器的完整鏡像。 :sectnums: :sectnumlevels: 6