(apply-generic op . args)

教育者, 将軍, 栄養士, 心理学者, 親はプログラムする. 軍隊, 学生, 一部の社会はプログラムされる. - 計算機プログラムの構造と解釈 序文

werckerで既存のRailsプロジェクトを突っ込んだら結構ハマった話し

追記: 2014/03/23

Werckerにバグ報告したら直してくれた :)

最近はクラウドCIサービスでテスト回したりするのがどんどん普及していますね。 TravisCIやCircleCIやCodeShipなどなど。。。 その中でプライベート・リポジトリでも現在は無料で使えるWerckerがどんどん注目を集めていると感じます。

そんな訳で、色々なWercker始めようぜ!って記事を参考に、GitHubにある既存のRailsプロジェクトがPushされたりしたらWercker上でTurnipとRspecが走るところまでやってみました。

が、、、超絶ハマった!!!

Gemのバージョンが古いとhoge.soが見つからないと怒られる

$ bundle exec rake db:schema:load RAILS_ENV=test
rake aborted!
libruby.so.2.0: cannot open shared object file: No such file or directory - /cache/bundle-install/ruby/2.0.0/gems/rmagick-2.13.2/lib/RMagick2.so

ひたすらこんなエラーがでる。 で、これはまぁRMagickなんでまた別件なんですけど、エラーがでるgemのバージョンが古かったら、gemによってはこのエラーがでる。 でないgemもあった。 pgとかは0.17.1にUPしたら動いたけど、最初入れてたバージョンだと古くて↑のようなエラーが出ましたね。

取り敢えずgemのアップデートをしたら問題なく動きましたよっと。

どう頑張ってもRMagickは使えなかった

$ bundle exec rake db:schema:load RAILS_ENV=test
rake aborted!
libruby.so.2.0: cannot open shared object file: No such file or directory - /cache/bundle-install/ruby/2.0.0/gems/rmagick-2.13.2/lib/RMagick2.so

rmagickは2.13.2が最新なんだけど、どう頑張っても出来なかった。 ただgemを入れているだけなら問題ないんだけど、carrierwaveで生成したuploaderで

include CarrierWave::RMagick

ってしていて、これがあるとどうしても↑のエラーがでる。

で、結局rmagickの使用を辞めてminimagickにしました。 これだと問題なくwerckerエラー吐かなかった(´・ω・`)

結論

  • ちゃんとgemのアップデートしましょう
  • rmagickはなんか使えなかった

誰か「それはお前の使い方が悪いんじゃボケ」とかあったら教えて下さいませ。