昨日から SVK を Mac へインストールしようとしていたんですが、悪戦苦闘の末みごとインストール出来たので方法をメモ!
まずはじめ、僕は Martin Ott 氏の Mac 用パッケージ経由で Subversion をインストールしてあったので、CPAN 経由で SVK にチャレンジしました。けど
Warning: prerequisite SVN::Core 1.2.0 not found. We have unknown version.
Warning: prerequisite SVN::Simple::Edit 0 not found.
SVN::Simple::Edit がねぇ〜よ、しかも SVN::Simple::Edit が依存してる SVN::Core もねぇ〜よっと怒られました。んじゃそれも CPAN でとおもったら CPAN には SVN::Core 自体がないらしく、Subversion をインストールした時に入るとのこと。納得いかないんで、その後パッケージの SVK をダウンロードしてきてインストールしたんですが、入ることは入ったのに @INC に SVN::Core がねぇ〜よってまた怒られました。
※ @INC は Perl Module の格納されている PATH の情報みたいなもの
MacPorts も試したんですが、こちらも make に何十分も時間をかけたあと最後にエラー。正直笑えません。
仕方がないのでソースから落としてきて全部最初からインストールすることにしました。っということでSubversionのインストールからやり直しです。インストール方法ですが、Google 先生に伺ったんですが、どうやらけっこう無茶なやり方でインストールしている人ばかりであまり参考にならず、他に方法がないかと調べたところ、Subversion の深いところに INSTALL テキスト存在していました。ですんで僕のは公式の手順にそった方法なんじゃないかなぁとw
用意する物
- BerkeleyDB(必須ではない)
- swig-1.3.29.tar.gz
- subversion-1.4.2.tar.gz
- subversion-deps-1.4.2.tar.gz
どうも subversion-deps-1.4.2.tar.gz の中には apr, apr-util, neon, zlib が入っていて subversion のインストールの際にまとめて入れてくれるみたいです。
BerkeleyDB インストール (Option)
Subversion をインストールするのに必須じゃないけど Subversion では BerkeleyDB が使える。っというか昔は BerkeleyDB が必須だったんだけど最近のバージョンだと FSFS ってのを使うので BerkeleyDB をインストールしなくても Subversion 自体は使えるみたいです。
FSFS というのは Subversion ファイルシステムの一つの実装で Subversion のリポジトリを構成する。BerkeleyDB とは別のストーレージシステムなんですが BerkeleyDB の代わりに使うことが出来るとのこと。
っでとりあえず、BerkeleyDB 使いたいって人は Oracle のサイトから db-4.5.20.tar.gz を落としてきて make すれば良し!
% cd db-4.5.20/build_unix
% ../dist/configure
% make
% sudo make install
SWIG のインストール
たぶんなんですが、ここがけっこう重要。SWIGって何なのかわからないので調べたんですが、SWIG っていうのは C/C++ のヘッダファイルを読み込み、Python/Java/Perl/Tcl/Ruby/MzScheme/Guile などのプログラム言語から利用する為のラッパを半自動的に生成し C の関数を簡単に呼び出せるようにするツールらしいです。詳しいことはわからないんですけど Perl -> C/C++ -> Subversion の Core にアクセスしてるってことなんですかね。
まぁとりあえずマニュアルに従ってインストールしてみました。SWIG のインストール自体は簡単なんですが、subversion インストール時に configure で指定しないといけないみたいです。そっちの方がさらに重要そうです。でもって、swig の最新版のバージョンは 1.3.31 だったんですけどマニュアルによると 1.3.24 〜 1.3.29 じゃないといけないみたいだったので 1.3.29 を無理矢理探しました。
% wget http://jaist.dl.sourceforge.net/sourceforge/swig/swig-1.3.29.tar.gz
% tar xvfz swig-1.3.29.tar.gz
% cd swig-1.3.29/
% ./configure --with-perl5=/usr/local/bin/perl
% make
% sudo make install
Subversion のインストール
subversion-deps-1.4.2.tar.gz は解凍すると勝手に subversion-1.4.2/ の中に展開されるのでかなり楽!っで configure する時に Perl 関係のオプションを渡してあげる。一番重要なのがここなんだと思います。
% wget http://subversion.tigris.org/downloads/subversion-1.4.2.tar.gz
% wget http://subversion.tigris.org/downloads/subversion-deps-1.4.2.tar.gz
% tar xvfz subversion-1.4.2.tar.gz
% tar xvfz subversion-deps-1.4.2.tar.gz
% cd subversion-1.4.2/
% ./configure --enable-swig-bindings=perl \
--with-swig=/usr/local/bin/swig PERL=/usr/local/bin/perl
#berkeley-dbを使う場合は --with-berkeley-db=/path/
% make
っで一気にインストールしてしまうのではなく、subversion の make のあとに以下を実行。
% make swig-pl
% make check-swig-pl
% sudo make install-swig-pl
エラーもなくインストールまで終われば、これで SVN::Core がインストールされる。そうしたら subversion 自体をインストールしましょう。
% sudo make install
subversion はこれで完了。
SVK のインストール
SVK は公式サイトのほうで Tar ボールを配っているのでそれをダウンロードしてきてもいいのですが、SVK 自体が Perl で作られているので CPAN 経由でもインストール出来ます。SVN::Core さえインストールされていれば依存パッケージに問題はないと思うのでどちらでもインストール出来ると思います。
% wget http://rt.openfoundry.org/Foundry/Project/Download/Attachment/68506/48158/SVK-1.08.tar.gz
% tar xvfz SVK-1.08.tar.gz
% cd SVK-1.08
% perl Makefile.PL
% make
% sudo make install
か
% sudo perl -MCPAN -e shell
or
% sudo cpan
cpan> install SVK
これでインストール完了。which svk すれば /usr/local/bin/svk に入ってることがわかります。使い方に関しては他の人が書いている記事がいっぱいあるのでそちらを参考にしてください。暇があったら使い方も書くかもしれないですけど、今回はインストールの話で終わりです。
その他の OS, & デストリビューションの場合
今回は、っというか毎度のことながら Mac での方法でしたが、他の OS やディストリビューションの場合だとパッケージシステム使って一発でインストール出来るみたいです。Getoo や FreeBSD も port 経由で OK っぽいです。(っということは MacPorts でも Perl パッケージがあったのかなぁ?)
#Debian & Ubuntu
% apt-get install subversion subversion-perl
% apt-get install svk
#FedoraCore6 (RedHat系)
% yum install subversion subversion-perl
% yum install svk
関連リンク
SVK って何よ?
SVK とは Perl で作られた分散バージョン管理システムです。今までのバージョン管理システムは作業する際ネットワークに繋がっている場所にいないとならなかったのですが、SVK は分散管理にすることにより、オフラインでも作業をすることを可能にしました。今までのものはローカルとリモートの概念しかなかったのですが、ローカルにリモートのミラーを作りワンクッションいれることでローカル環境でも作業を続けることが出来るようになるのです。まぁ実際作業する人でなかったらその恩恵はわかんないかもしれませんが、外で作業する人や、移動の多い人にとっては subversion や CVS より断然便利性が高いと思います。いつもと環境を変えたい時とか、ちょっとスタバでハックとかも出来ちゃうかも。
上の画像は ☻ 唐鳳 ☺ 氏のところにあったものですが、SVK の仕組みが凄いわかりやすいかったのでちょっと拝借しました。(いけなかったかも...)
追記:21:36
MacPorts にも subversion-perlbindings ってのがありました。これを入れてから svk 入れれば問題なくいけるのかもしれません。
コメントする