CentOS5(x86_64)にSVKをインストールするシェルスクリプト

「名前は聞くし便利そうだけど、管理が面倒っぽいし、入れるのもダルいしいいや」で今までスルーしてたSVKを試してみました。
他のディストリだとパッケージが用意されてたりするんだけど、CentOSは手動ビルド以外の道がありません。見た感じ依存モジュールも多いし、CPANを飼い慣らす意味でもちょうどいいやということで試してみることに。

まず、「SVN::Core入れろよ」って言われたとこで引っ掛かる。こいつはCPANからインストール出来ないんだけど、yumsubversion-perlを入れればぉk。
で、おもむろにcpan -i SVKしたら当然のように失敗して、ここから闘いが始まるわけです。まず、SVKから直接依存してるっぽいのから解決。

cpan -i SVN::Simple::Edit
cpan -i IO::Pager

このIO::Pagerってのをインストールしてると、

# Your current $ENV{PAGER} = "less"
#
# Your IO::Pager $ENV{PAGER} = "less"


Is this reasonable? [Yn]

とか聞かれたので、まぁ普通にそのままEnter。

で、 cpan -i SVKしたら、SVN::Mirrorがsudoしろというので手動で先に入れることに。ところが、こいつがまたすんなりいかない。VCPとか言うのが原因らしいので、そいつを直接入れてみる。VCPそのものズバリのモジュールはCPANに見当たらなくて、VCP-autrijus-snapshotというのを入れるらしい。cpanコマンドでは見つからなかったので、VCP-autrijus-snapshot-0.9-20050110 - search.cpan.orgから拾ってきた。

こいつを入れる時にもいろいろ言われて、最終的にこんな感じで入れた。

cpan -i Regexp::Shellish Text::Diff XML::Parser XML::Doctype
wget http://search.cpan.org/CPAN/authors/id/A/AU/AUTRIJUS/VCP-autrijus-snapshot-0.9-20050110.tar.gz
tar zxf VCP-autrijus-snapshot-0.9-20050110.tar.gz
cd VCP-autrijus-snapshot-0.9-20050110
perl Makefile.PL PREFIX=$HOME/CPAN LIB=$HOME/CPAN/lib/perl5 INSTALLMAN1DIR=$HOME/CPAN/man/man1 INSTALLMAN3DIR=$HOME/CPAN/man/man3
make PREFIX=$HOME/CPAN
make install

他にはData::UUIDも入れろと言われたので入れて、それでもSVN::Mirrorが入らない。forceで入ったこともあったけど、新しい環境作って試したらダメ。いろいろ調べてみると、環境変数

export LANG=C

になってないとうまくいかないことがあるらしい。そこで、SVN::Mirrorを入れる時だけ変更したら無事に通るようになりました。

そんなこんなで一つずつ解決していった結果、出来上がったのがこんなシェルスクリプト

#
# installSVK.sh
#
CPANDIR="$HOME/CPAN"
_lang=$LANG

# Installing SVN::Core (and others?)
sudo yum -y install subversion-perl

# Installing VCP module
cpan -i Regexp::Shellish Text::Diff XML::Parser XML::Doctype
wget http://search.cpan.org/CPAN/authors/id/A/AU/AUTRIJUS/VCP-autrijus-snapshot-0.9-20050110.tar.gz
tar zxf VCP-autrijus-snapshot-0.9-20050110.tar.gz
cd VCP-autrijus-snapshot-0.9-20050110
perl Makefile.PL PREFIX=$CPANDIR LIB=$CPANDIR/lib/perl5 INSTALLMAN1DIR=$CPANDIR/man/man1 INSTALLMAN3DIR=$CPANDIR/man/man3
make PREFIX=$CPANDIR
make install

# Installing SVK
cpan -i File::Type File::LibMagic File::MMagic
cpan -i Compress::Zlib SVN::Simple::Edit
cpan -i IO::Pager < /dev/null
cpan -i FreezeThaw Locale::Maketext::Lexicon
cpan -i Data::UUID < /dev/null
export LANG=C
cpan -i SVN::Mirror
export LANG=$_lang
cpan -i VCP::Dest::svk < /dev/null

インストール直後のCentOS5(x86_64)で通ったので、漏れは無いと思うけど当然ながら自己責任でお願いします。CPANDIRにCPANライブラリのインストール先を指定します。sudo yum -y installなんかも走ってるので注意。
最終的にcpan -i SVKはしなくても、VCP::Dest::svkを入れたら一緒に入ってくれたのでよし。


ちなみに、Macで使うならSVK builds for OSXがお勧めらしい。Ubuntuはapt-getでそのまま入るそうな。

主な参考URL