筆者について
FreeBSDを通じてOSSにささかな貢献を。
- 日本xrdpユーザ会発起人
- xrdp developer
- FreeBSD developer
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 追記
設定ファイルの書き方と、より実用的な使い方は別記事を書いたのでそちらも参照して下さい。