2012 年 7 月から、FreeBSD はすべてのソースコード、ドキュメント、Ports Collection を管理するバージョン管理システムに Subversion を使っています。
一般的には Subversion
は開発者向けのツールです。
ユーザは、FreeBSD のベースシステムのアップデートに
freebsd-update (「FreeBSD Update」)、
Ports Collection のアップデートには portsnap (「Ports Collection の利用」)
を使うことを好むでしょう。
この節では、FreeBSD システムへの Subversion のインストール方法、および FreeBSD リポジトリをローカルに作成する方法について説明します。 さらに Subversion を利用するための情報についても紹介します。
security/ca_root_nss をインストールすることで、 Subversion は、 HTTPS リポジトリサーバを検証できます。 ルート SSL 証明書は、 port からインストールできます。
#cd /usr/ports/security/ca_root_nss#make install clean
または package からインストールしてください。
#pkg install ca_root_nss
FreeBSD には、Subversion
より軽い svnlite
がインストールされています。
Subversion の port または package は、
Python もしくは Perl API が必要な時や、
最新の Subversion を使用したい時のみ必要となります。
通常の Subversion と、
svnlite との違いは、
使用する時のコマンド名が異なるだけです。
svnlite を利用できない場合や、
フルバージョンの Subversion
を使いたいのであれば、
事前に Subversion
をインストールしておく必要があります。
Subversion は Ports Collection からインストールできます。
#cd /usr/ports/devel/subversion#make install clean
package を使って Subversion をインストールすることもできます。
#pkg install subversion
ローカルディレクトリにソースコードをダウンロードするには、
svn コマンドを使ってください。
このディレクトリにあるファイルを、
ローカル作業コピー と呼びます。
checkout をはじめて使う前に、
ローカルディレクトリを移動するか削除してください。
svn
以外の方法で用意されたディレクトリでチェックアウトすると、
すでに存在するファイルと、
リポジトリから持ってきたファイルとの間で衝突が起きてしまいます。
Subversion では、リポジトリの指定に
protocol://hostname/path 形式の
URL を用います。
以下に記載されているように、
アクセスする FreeBSD リポジトリは、パス (path) の最初で指定します。
リポジトリは 3 つあります。
base は FreeBSD ベースシステムのソースコード、
ports は Ports Collection、
そして doc はドキュメントのリポジトリです。
たとえば、
https://svn.FreeBSD.org/ports/head/
という URL は、https プロトコルによる
ports リポジトリのメインブランチを示しています。
以下のように入力して、リポジトリからチェックアウトしてください。
#svn checkout https://svn.FreeBSD.org/repository/branchlwcdir
ここで、repository,
branch および root
は以下のとおりです。
repository には、
プロジェクトリポジトリの base,
ports または doc
のどれかひとつを指定します。
branch は、使うリポジトリによります。
ports および doc
では、ほとんどの変更が
head ブランチで行われます。
base リポジトリでは、head
ブランチで -CURRENT の最新バージョンを管理しています。
-STABLE ブランチの最新バージョンは、
9.x は stable/9,
そして
10.x は stable/10
で管理しています。
lwcdir は、
指定したブランチの中身が置かれるターゲットのディレクトリです。
通常 ports は /usr/ports、
base は /usr/src、
そして doc では
/usr/doc と指定します。
以下の例では、Ports Collection を
HTTPS プロトコルを使って、
FreeBSD リポジトリからチェックアウトします。
そしてそれらは、
/usr/ports
のローカル作業コピーに置かれます。
もし /usr/ports がすでに存在して、
それが svn によって生成されたものでなければ、
チェックアウトする前に、名前を変更するか削除してください。
#svn checkout https://svn.FreeBSD.org/ports/head /usr/ports
初めてチェックアウトする際には、 リモートリポジトリのすべてのブランチをダウンロードする必要があるので、 時間がかかります。 我慢してください。
初めてのチェックアウト後は、 以下を実行することでローカル作業コピーをアップデートできます。
#svn updatelwcdir
この例で作成された
/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
です。これは、公にアクセス可能なミラーネットワークで、 GeoDNS を用いて適切なバックエンドサーバを選択しています。 ブラウザを用いて FreeBSD の Subversion リポジトリを参照するには、https://svnweb.FreeBSD.org/ を利用してください。
HTTPS は推奨されているプロトコルです。 自動的に証明書を検証するために、security/ca_root_nss port をインストールする必要があります。
Subversion の利用に関する他の情報は、 Version Control with Subversion や Subversion Documentation といった 「Subversion Book」 をご覧ください。
本文書、および他の文書は https://download.freebsd.org/ftp/doc/ からダウンロードできます。
FreeBSD に関する質問がある場合には、
ドキュメント を読んだ上で
<questions@FreeBSD.org> まで (英語で) 連絡してください。
本文書に関する質問については、
<doc@FreeBSD.org> まで電子メールを (英語で) 送ってください。