Merb関連のエントリを読んでいたら触ってみたくなったので、入れてみたのですが・・・
$ sudo gem install merb $ merb-gen app myapp $ cd myapp $ merb Loading init file from /Users/tomohiro/program/merb/myapp/config/init.rb Loading /Users/tomohiro/program/merb/myapp/config/environments/development.rb ~ Loaded DEVELOPMENT Environment... ~ ~ FATAL: The gem dm-core (= 0.9.7, runtime), [] was not found ~ ~ ~ FATAL: The file dm-core was not found ~
きゃーっ、ということで調べました。
とりあえずdm-coreが入っているか確認
$ gem list dm- *** LOCAL GEMS *** dm-aggregates (0.9.7) dm-core (0.9.7) dm-migrations (0.9.7) dm-sweatshop (0.9.7) dm-timestamps (0.9.7) dm-types (0.9.7) dm-validations (0.9.7)
問題なさそうなので、config/dependencies.rbをいじってみる
diff --git a/config/dependencies.rb b/config/dependencies.rb index 4f1e627..1f99cf0 100644 --- a/config/dependencies.rb +++ b/config/dependencies.rb @@ -15,9 +15,9 @@ dependency "merb-auth-slice-password", merb_gems_version dependency "merb-param-protection", merb_gems_version dependency "merb-exceptions", merb_gems_version -dependency "dm-core", dm_gems_version dependency "dm-aggregates", dm_gems_version dependency "dm-migrations", dm_gems_version dependency "dm-timestamps", dm_gems_version dependency "dm-types", dm_gems_version dependency "dm-validations", dm_gems_version +dependency "dm-core", dm_gems_version
dm-coreの問題なのかを確かめるために順番を入れ替えてみました
$ merb Loading init file from /Users/tomohiro/program/merb/myapp/config/init.rb Loading /Users/tomohiro/program/merb/myapp/config/environments/development.rb ~ Loaded DEVELOPMENT Environment... ~ ~ FATAL: The gem dm-aggregates (= 0.9.7, runtime), [] was not found ~ ~ ~ FATAL: The file dm-aggregates was not found ~
やはりdm-系が全滅みたいです。仕方が無いのでruby-debugでmerbの挙動を追いかけます。
$ rdebug `which merb` /opt/local/bin/merb:9 require 'rubygems' (rdb:1)
(実は意味が無かったので詳細は略)
読み込みのあたりを追いかけると、やっぱりdm-coreの読み込みのところで落ちています。
とここでaddressableというライブラリのバージョンが上がって問題が起きているとの情報を得て、一度そちらを当たってみることにしました。バージョンを下げるだけみたいなので試します。
$ gem list addressable *** LOCAL GEMS *** addressable (2.0.0, 1.0.4) $ sudo gem uninstall addressable -v 2.0.0 You have requested to uninstall the gem: addressable-2.0.0 data_objects-0.9.6 depends on [addressable (>= 1.0.3)] data_objects-0.9.7 depends on [addressable (~> 2.0)] dm-core-0.9.7 depends on [addressable (~> 2.0)] If you remove this gems, one or more dependencies will not be met. Continue with Uninstall? [Yn] y Successfully uninstalled addressable-2.0.0 $ merb Loading init file from /Users/tomohiro/program/merb/myapp/config/init.rb Loading /Users/tomohiro/program/merb/myapp/config/environments/development.rb ~ Loaded DEVELOPMENT Environment... ~ ~ FATAL: The gem dm-core (= 0.9.7, runtime), [] was not found ~ ~ ~ FATAL: The file dm-core was not found ~
駄目ですね。公式サイトにも Merb 1.0.1 (Released Nov 18 2008, minor bug fixes and DataMapper 0.9.7) って書かれていますし、問題はこれではないようです。
ということで入れ直し、
$ sudo gem update Updating installed gems Updating addressable Successfully installed addressable-2.0.0 Gems updated: addressable
もうなんか疲れたから諦めよう。エントリにまとめるために、エラーメッセージを確認しておこう、
$ merb Loading init file from /Users/tomohiro/program/merb/myapp/config/init.rb Loading /Users/tomohiro/program/merb/myapp/config/environments/development.rb ~ Connecting to database... ~ Loaded slice 'MerbAuthSlicePassword' ... ~ Parent pid: 9762 ~ Compiling routes... ~ Activating slice 'MerbAuthSlicePassword' ... merb : worker (port 4000) ~ Starting Mongrel at port 4000 merb : worker (port 4000) ~ Successfully bound to port 4000
!!
動いた・・・?
ブラウザからhttp://localhost:4000を叩くと、
動きました。
うーむ。merb 1.0.1 -> addressable 2.0.0の順番で入れないといけないようです。