pikをビルドするには

pikをここからとってきて、rakeでビルドしようと思ったのだが、いろいろエラーが出てきます。慣れた人なら別にたいしたことじゃないのかもしれませんが、rakeビルド初心者の自分には、いろいろわからないことだらけでつまづきまくりました。

そこで、自己流ながら、いかにしてビルドおよびテストをこなせるようにしたか、その記録です。

1.rakeすると、rspecにて以下のエラー

Ruby_1.8/lib/ruby/1.8/optparse.rb:1450:in `complete': invalid option: -O (OptionParser::InvalidOption)

これは、Rakefileの23行目、

ENV['SPEC_OPTS'] = '-O spec/spec.opts'

から、

ENV['SPEC_OPTS'] = '--colour --require=rubygems --require=lib/pik'

と変更するとOK.これで、rspecのテストは通るようになる。

次に、ビルドだが、

2. rake buildで以下のエラー

./../lib/pik.rb:11:in `require': no such file to load -- hpricot (LoadError)

これは、pik.rbのソースを開いて、ファイルの最初でいろいろrequireしてるところをいじる必要があります。具体的には、require 'hpricot' の前に、require 'rubygems'の一文を入れればOKです.

それでも、mkexyやupxがない、といったエラーがでます。(以下のような)

ruby -S exerb pik_runner.exy
upx -9 pik_runner.exe
'upx' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

これらは単に実行ファイルがないだけなので、入れれば動きます。

mkexyのエラーは、exerbを解凍して、setup.rbを実行する。exerbこちらから。
upxでのエラーは、upx.exeをダウンロードして、パスの通ってるところに入れる。upxはこちらから。

すると、ほら、pik_runner.exeができるのです。