«前の日記(2013-03-21) 最新 次の日記(2013-03-25)» 編集

meta's blog - The Power To Serve

筆者について

FreeBSDを通じてOSSにささかな貢献を。

OSS活動をご支援いただける方を募集しています


2013-03-22 終了したのは ports の cvsup

FreeBSD のソースコード取得に cvsup, csup に替わる net/svnup を試す

2013年2月末で FreeBSD Ports Collection の CVSup による提供が終了しました。 終了したのは ports の提供なので、src に対してはまだ cvsup, csup が使えるようですが、非推奨になったことには変わりなく、遠くない未来に終了することになると思います。

現在はソースコードの取得に Subversion を使うことが推奨されていますが、ベースシステムには含まれないので ports から net/subversion をインストールする必要があり、インストールしようとすると依存関係で必要になるものが色々インストールされてしまいます。そこで、余計なものをインストールせずにソースコードを取得したいという需要を満たす svnup というツールを使ってみます。

ports からさくっとインストール。単体で動作するので、依存関係で他のソフトウェアがインストールされるということはありません。インストールされるのは /usr/local/bin/svnup と man ページだけというシンプルさ。

# make -C /usr/ports/net/svnup install

とりあえず引数なしでコマンドを叩いてみる。

$ svnup
Usage: svnup -h host -b branch -l local_directory

とりあえず使ってみる。例はこんな感じです。

# time svnup -h svn0.us-west.freebsd.org -b base/releng/9.1 -l /usr/src

svnup は3個のオプションが必要です。

-h オプションで取得元のサーバを指定。FreeBSD の Subversion ミラーはハンドブックの A.7. Subversion ミラーサイト に載っています。日本から近い西海岸の svn0.us-west.FreeBSD.org を指定するといいかもしれません。

-b オプションでブランチを指定します。ブランチを調べるには Web ブラウザで svnweb.freebsd.org にアクセスします。STABLE ブランチなら base/stable/9 という感じ。現時点で最新の 9.1-RELEASE を取得するには base/release/9.1.0 ですが、セキュリティアップデートにも追従するため base/releng/9.1 にしました。

-l はソースコードを保存するディレクトリです。

ひとつ注意が必要なのは svnup は svn 経由でソースコードを取得するツールであり、svn リポジトリをチェックアウトするツールではないことです。このため svnup で取得したソースツリーに対して svn up や svn log を実行することはできません。

実行しようとするとこうなります。

[meta@ports-dev /usr/src]$ svn log
svn: E155007: '/usr/src' は作業コピーではありません

既に取得したソースツリーを更新したいときは、svnup で前回取得したときと同じコマンドを叩きます。

# time svnup -h svn0.us-west.freebsd.org -b base/releng/9.1 -l /usr/src

2013-08-09 追記

設定ファイルの書き方と、より実用的な使い方は別記事を書いたのでそちらも参照して下さい。