2012 年 7 月から、FreeBSD はすべてのソースコード、ドキュメント、Ports Collection を管理するメインのバージョン管理システムに Subversion を使っています。
一般的には Subversion
は開発者向けのツールです。
大部分のユーザは、FreeBSD のベースシステムのアップデートに
freebsd-update
(「FreeBSD Update」)、
Ports Collection のアップデートには portsnap
(「Ports Collection の利用」)
を使うべきでしょう。
この章では、FreeBSD システムへの Subversion のインストール方法および、 FreeBSD リポジトリをローカルに準備する方法について説明します。 また、利用可能な FreeBSD Subversion ミラーの一覧および、 Subversion を利用するための情報についても紹介します。
リポジトリの中身をチェックアウトできるよう、事前に Subversion をインストールしておく必要があります。 もし、すでに ports ツリーが用意してあれば、 以下のようにして Subversion をインストールできます。
#
cd /usr/ports/devel/subversion
#
make install clean
もし ports ツリーを利用できなければ、package から Subversion をインストールできます。
#
pkg_add -r subversion
もし、packages の管理に pkgng を使っているのであれば、かわりに以下のようにして Subversion をインストールできます。
#
pkg install devel/subversion
svn
コマンドを使って、
必要なリポジトリのソースコードを以下のようにしてダウンロードします。
このディレクトリにあるファイルを
ローカル作業コピー と呼びます。
checkout
を使う前に、
ローカルディレクトリを移動するか削除してください。
svn
以外の方法で用意されたディレクトリでチェックアウトすると、
すでに存在するファイルと、
リポジトリから持ってきたファイルとの間で衝突が起きてしまいます。
Subversion では、リポジトリの指定に
protocol://hostname/path
形式の
URL を用います。
以下に記載されているように、
ミラーサイトは異なる複数のプロトコルに対応しています。
アクセスする FreeBSD リポジトリは、パス (path) の最初で指定します。
リポジトリは 3 つあります。
base
は FreeBSD ベースシステムのソースコード、
ports
は Ports Collection、
そして doc
はドキュメントのリポジトリです。
たとえば、
svn://svn0.us-east.FreeBSD.org/ports/head/
という URL は、svn
プロトコルによる svn0.us-east.FreeBSD.org
ミラー上の ports リポジトリのメインブランチを示しています。
以下のように入力して、リポジトリからチェックアウトしてください。
#
svn checkout
svn-mirror
/repository
/branch
lwcdir
ここで、repository
,
branch
および root
は以下のとおりです。
svn-mirror
は、
Subversion
ミラーサイト のひとつの URL です。
repository
には、
プロジェクトのリポジトリ、すなわち base
,
ports
, または doc
のどれかひとつを指定します。
branch
は、使うリポジトリによります。
ports
および doc
では、ほとんどの変更が
head
ブランチで行われます。
base
リポジトリでは、head
ブランチで -CURRENT の最新バージョンを管理しています。
-STABLE ブランチの最新バージョンは、
8.x
は stable/8
,
9.x
は stable/9
,
そして
10.x
は stable/10
で管理しています。
lwcdir
は、
指定したブランチの中身が置かれるターゲットのディレクトリです。
通常 ports
は /usr/ports
、
base
は /usr/src
、
そして doc
では
/usr/doc
と指定します。
以下の例では、Ports Collection を western US リポジトリから
HTTPS プロトコルを使って、チェックアウトします。
そしてそれらは、
/usr/ports
のローカル作業コピーに置かれます。
もし /usr/ports
がすでに存在して、
それが svn
によって生成されたものでなければ、
チェックアウトする前に、名前を変更するか削除してください。
#
svn checkout
https://svn0.us-west.FreeBSD.org
/ports/head /usr/ports
初めてチェックアウトする際には、 リモートリポジトリのすべてのブランチをダウンロードするので時間がかかります。 どうぞ我慢してください。
初めてのチェックアウト後は、 以下を実行することでローカル作業コピーをアップデートできます。
#
svn update
lwcdir
この例で作成された
/usr/ports
をアップデートするには、
以下のようにしてください。
#
svn update /usr/ports
アップデートはチェックアウトにくらべ、 変更点のあるファイルのみが転送されるので高速です。
チェックアウト後、ローカル作業コピーをアップデートするもうひとつの方法は、
/usr/ports
,
/usr/src
または
/usr/doc
ディレクトリの
Makefile
で提供されています。
SVN_UPDATE
を設定して
update
ターゲットを使ってください。
たとえば、/usr/src
をアップデートするには、以下のようにしてください。
#
cd /usr/src
#
make update SVN_UPDATE=yes
すべてのミラーはすべてのリポジトリを持っています。
FreeBSD Subversion サーバのマスタである
svn.FreeBSD.org
は、
公には読み出し専用でアクセスできますが、
将来的には変更される予定ですので、
オフィシャルミラーを使うことが推奨されます。
ブラウザを用いて FreeBSD の Subversion リポジトリを参照するには、http://svnweb.FreeBSD.org/
を利用してください。
FreeBSD の Subversion ミラーのネットワークは、 まだ初期の段階にあるので、今後変更されることがあります。 以下のミラー一覧を不変なものとは考えないでください。 特に、サーバの SSL 証明書は、 いずれかの時点で変更になるでしょう。
名前 | プロトコル | 位置 | SSL フィンガープリント |
---|---|---|---|
svn0.us-west.FreeBSD.org | svn , http ,
https | USA, カリフォルニア | SHA1
1C:BD:85:95:11:9F:EB:75:A5:4B:C8:A3:FE:08:E4:02:73:06:1E:61 |
svn0.us-east.FreeBSD.org | svn , http ,
https ,
rsync | USA, ニュージャージ | SHA1
1C:BD:85:95:11:9F:EB:75:A5:4B:C8:A3:FE:08:E4:02:73:06:1E:61 |
svn0.eu.FreeBSD.org | svn , http ,
https ,
rsync | Europe, UK | SHA1
39:B0:53:35:CE:60:C7:BB:00:54:96:96:71:10:94:BB:CE:1C:07:A7 |
svn0.ru.FreeBSD.org | svn , http ,
https ,
rsync | ロシア、モスクワ | SHA1
F6:44:AA:B9:03:89:0E:3E:8C:4D:4D:14:F0:27:E6:C7:C1:8B:17:C5 |
HTTPS は推奨されているプロトコルです。 他のコンピュータが FreeBSD ミラーを装う (一般的には 「マン・イン・ザ・ミドル」 攻撃として知られています) ことや、もしくは、 エンドユーザに対し好ましくない内容を送りつけようということに対し保護を行います。
HTTPS ミラーへの最初の接続の際には、 サーバの フィンガープリント の確認を求められます。
Error validating server certificate for 'https://svn0.us-west.freebsd.org:443': - The certificate is not issued by a trusted authority. Use the fingerprint to validate the certificate manually! - The certificate hostname does not match. Certificate information: - Hostname: svnmir.ysv.FreeBSD.org - Valid: from Jul 29 22:01:21 2013 GMT until Dec 13 22:01:21 2040 GMT - Issuer: clusteradm, FreeBSD.org, (null), CA, US (clusteradm@FreeBSD.org) - Fingerprint: 1C:BD:85:95:11:9F:EB:75:A5:4B:C8:A3:FE:08:E4:02:73:06:1E:61 (R)eject, accept (t)emporarily or accept (p)ermanently?
フィンガープリントを上の表の一覧のものと照合してください。
フィンガープリントが一致したら、
サーバのセキュリティ証明書を一時的 (permanently)
もしくは恒久的 (temporarily) に受け入れてください。
一時的な認証であれば、
サーバとの一回のセッションで有効期限が切れるため、
次回の接続時にはもう一度検証が行われます。
恒常的な認証を選んだ場合には、認証のための証明書が
~/.subversion/auth/
に保存され、
有効期限が切れるまでは、
フィンガープリントの確認は求められません。
ファイアウォールまたは他の問題のため、https
を使えなければ、転送速度がより少し早い svn
を使ってください。
両方を使えない場合には、
http
を使ってください。
Subversion の利用に関する他の情報は、 Version Control with Subversion や Subversion Documentation といった 「Subversion Book」 をご覧ください。
本文書、および他の文書は ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。