MacOS Xにsvkをインストールする

「工場出荷状態で帰ってきたMacを原状回復させる際のメモ」の続きとして、MacOS Xsvkをインストールを試みた際の記録です。


(6/6追記) これから行う作業はMacPortsのインストールを必要とし、若干バッドノウハウに感じられるかもしれません。Macsvkをもっと気軽にに試したいという方は、otsuneさんお勧めのSVK builds for OSXをぜひお試しください。


なにはなくとも sudo port install svk

まずはportコマンドでインストールを開始します。

$ sudo port install svk

すると、途中でビルドに失敗してインストールが中断されます。

. . . 中略 . . .

--->  Fetching p5-pathtools
--->  Attempting to fetch PathTools-3.24.tar.gz from http://cpan.perl.org/authors/id/K/KW/KWILLIAMS/
--->  Verifying checksum(s) for p5-pathtools
--->  Extracting p5-pathtools
--->  Configuring p5-pathtools
--->  Building p5-pathtools with target all
--->  Staging p5-pathtools into destroot
You must install or activate this package with '-f' (force) as it needs to overwrite files installed by the perl5.8 port
--->  Installing p5-pathtools 3.24_1
--->  Activating p5-pathtools 3.24_1
Error: Target com.apple.activate returned: Image error: /opt/local/lib/perl5/5.8.8/darwin-2level/auto/Cwd/Cwd.bs is being used by the active perl5.8 port.  Please deactivate this port first, or use the -f flag to force the activation.
Error: The following dependencies failed to build: p5-app-cli p5-getopt-long p5-pathtools p5-locale-maketext-simple p5-pod-simple p5-pod-escapes p5-class-accessor p5-class-autouse p5-class-data-inheritable p5-compress-zlib p5-compress-raw-zlib p5-io-compress-base p5-io-compress-zlib p5-data-hierarchy p5-file-temp-svkonly p5-file-type p5-freezethaw p5-io-digest p5-perlio-via-dynamic p5-io-pager p5-list-moreutils p5-locale-maketext-lexicon p5-log-log4perl p5-path-class p5-perlio-eol p5-perlio-via-symlink p5-svn-mirror p5-bsd-resource p5-data-uuid p5-file-chdir p5-svn-simple subversion-perlbindings p5-term-readkey p5-timedate p5-uri p5-vcp-autrijus-snapshot p5-html-tree p5-html-parser p5-html-tagset p5-ipc-run3 p5-regexp-shellish p5-text-diff p5-xml-autowriter p5-xml-parser p5-universal-require p5-version p5-yaml-syck
Error: Status 1 encountered during processing.
$

メッセージを読んでみると、どうやらp5-pathtoolsパッケージを強制的にactivateする必要があるようです。

sudo port -f activate p5-pathtools

メッセージで指摘されているとおり、p5-pathtoolsのactivateを行います。

$ sudo port -f activate p5-pathtools
--->  Activating p5-pathtools 
Warning: File /opt/local/lib/perl5/5.8.8/darwin-2level/auto/Cwd/Cwd.bs already exists.  Moving to: /opt/local/lib/perl5/5.8.8/darwin-2level/auto/Cwd/Cwd.bs.dp_1181023764.
Warning: File /opt/local/lib/perl5/5.8.8/darwin-2level/auto/Cwd/Cwd.bundle already exists.  Moving to: /opt/local/lib/perl5/5.8.8/darwin-2level/auto/Cwd/Cwd.bundle.dp_1181023764.
Warning: File /opt/local/lib/perl5/5.8.8/darwin-2level/Cwd.pm already exists.  Moving to: /opt/local/lib/perl5/5.8.8/darwin-2level/Cwd.pm.dp_1181023764.
$

再度svkのインストールの続きを行います。

$ sudo port install svk

すると今度は、p5-file-temp-svkonlyパッケージのインストール時にエラーが発生してインストールが中断されます。

sudo port -f activate p5-file-temp-svkonly

p5-pathtoolsのときと同様にactivateを行います。

$ sudo port -f activate p5-file-temp-svkonly
--->  Activating p5-file-temp-svkonly 
Warning: File /opt/local/lib/perl5/5.8.8/File/Temp.pm already exists.  Moving to: /opt/local/lib/perl5/5.8.8/File/Temp.pm.dp_1181021456.
$ 

activateが終わったら、再度svkのインストールの続きを行います

$ sudo port install svk

. . . 中略 . . .

--->  Configuring svk
--->  Building svk with target all
--->  Staging svk into destroot
--->  Installing svk 2.0.1_0
--->  Activating svk 2.0.1_0
--->  Cleaning svk
$ 

どうやらインストールが終了したようです。

$ which svk
/opt/local/bin/svk
$ 

これにてsvkのインストールが完了しました。ちょっと時間がかかりました。


追記:注意点

svkのインストールでconfiguring svkで無限ループに入ってしまうという症状が多く報告されています。そして解決方法は人によって違い、複数あるようです。svkのインストールの前にシステムがどのような状況になっているかで症状が異なるのでしょうか。


どうやらCPANを先にconfigureしないと無限ループに入るパターンがあるようです。私の場合ですが、確かに別件で先にCPANを使っています。CPANを触ったときのことをインストール記録に入れておくべきでした。申し訳ございませんでした。


これらの地雷のことを考えると、ううむ、やはりotsuneさんに教えていただいたSVK builds for OSXのほうがお勧めですね。私のインストール記録を鵜呑みにするのは危険、と言えるかもしれません。


参考URL