&pgid;
いくつかはまりどころがありましたので。
- サーバーのOS, Fedra Core 5
- もともとのRuby Gems 0.9.0
** 手順 [#q0c677f4]
+ まず、Rails 2.0.2にするためには、gemのアップグレードが必要。今回は1.0.1にアップグレード。&br;
最初、
$ sudo gem update --system
としたんですが、
lib/rubygems/installer.rb:59:5: Unrecognized directive 'env_shebang'
lib/rubygems/local_remote_options.rb:29:30: ':' not followed by identified or noyou
のようなエラーが出まくり
+ Fedoraで、ruby-develのRPMのupdateを適用していないせいらしい。開発サーバーといえど、普段からアップデートを怠ってると、こういうところでハマる &sad;
$ sudo yum install ruby-devel -y
参考) [[Kazu-の気ままにOSS: ApacheとRuby on Railsの連携:http://ymb.no-blog.jp/blues/2007/11/apacheruby_on_r_b300.html]]
+ 再度
$ sudo gem update --system
とすると、今度はエラーがでないでgemのインストールはできた。&br;
でも、2.0.2のソースも、古いバージョンのソースもrakeをやろうとすると以下のようなエラー。
undefined method `require_gem'
どうやら、0.9.0時代はあった、require_gemというメソッド自体がなくなったらしい。マジか。ずいぶん大胆な仕様変更。
参考) [[Rails/Gem errors? - Ruby Forum:http://www.ruby-forum.com/topic/94261]]
+ 参考サイトにあるように、gem pristine --allを実行してみた
$ sudo gem pristine --all
Restoring gem(s) to pristine condition...
builder-2.1.2 is in pristine condition
sqlite3-ruby-1.2.1 is in pristine condition
hpricot-0.4 is in pristine condition
daemons-1.0.9 is in pristine condition
mechanize-0.6.7 is in pristine condition
hpricot-0.5 is in pristine condition
...
+ これで2.0.2のRailsのrakeは動いた。以前のバージョンのRailsのソースはまだ動かない。これはrailsコマンドで作られた、config/boot.rb内に、require_gemのメソッド呼び出しがあるためらしく、これは、手で直さないといけないらしい orz
$ svn di config/boot.rb
Index: config/boot.rb
===================================================================
--- config/boot.rb (リビジョン 165)
+++ config/boot.rb (作業コピー)
@@ -25,7 +25,7 @@
rails_gem = Gem.cache.search('rails', "=#{version}").first
if rails_gem
- require_gem "rails", "=#{version}"
+ gem "rails", "=#{version}"
require rails_gem.full_gem_path + '/lib/initializer'
else
STDERR.puts %(Cannot find gem for Rails =#{version}:
これで動いた &bigsmile;
参考) [[undefined method `require_gem' for main:Object - 夜の Discovery:http://d.hatena.ne.jp/kusakari/20080107/1199688126]]
#blikifooter(志田)
tag: [[Ruby on Rails>tag/Ruby on Rails]]