Ruby on Rails でrakeが上手く行かなかったことのメモ

あるものを作りたくて、小学生でもわかるRuby on Rails通りに試してました。

でもコマンド一つ一つほぼ上手く行かなくて、あまりにも酷かったので未来の自分のためにメモ。 (この時の環境はMac OSX 10.9です。)


rake db:createできない。

症状

$ rake db:create
Could not find thread_safe-0.3.4 in any of the sources
Run `bundle install` to install missing gems.

失敗 言われたままやってみた。

  1. bundle install&&bundle update
  2. rake db:create
$ rake db:create
Could not find thread_safe-0.3.4 in any of the sources
Run `bundle install` to install missing gems.

...状況変わらず。うそつき。

微妙な解決策 gem installで頑張る。

  1. gem install thread_safe
  2. rake db:create
$ rake db:create
Could not find tzinfo-1.2.1 in any of the sources
Run `bundle install` to install missing gems.

これが5,6パターン続く...。

bundle installしろとか言われますけど、bundle updateも含めて10回くらいやったし、rails入れ直したり...
この辺りででようやくbundle installで依存パッケージインストールしてくれてないんやな。ってことにやっと気づきました。

解決策 インストールディレクトリを指定

  1. bundle install --path vendor/bundle
  2. rake db:create
$ rake db:create
Could not find rake-10.3.2 in any of the sources
Run `bundle install` to install missing gems.

インストールディレクトリを指定することで依存パッケージはインストールできたみたいです。
bundle installって何なの。


rake db:createできない。その2

次はrakeが無いとか言われちゃいました。
いろいろやってるうちに変なことしちゃったのかもしれない(・ω<)

症状

$ rake db:create
Could not find rake-10.3.2 in any of the sources
Run `bundle install` to install missing gems.

およよ。これはどういうこと。
ここから半日さまよった。

解決策 rakeのダウングレード

Festus Tamakloeの解答がドンピシャ。

Remove all the versions of Rake ==> gem uninstall rake
Remove Gemfile.lock ==> rm Gemfile.lock
Run bundle install ==> bundle install

gem install rake --version=10.0.2
if you still get the error then put this into your gemfile.

gem 'rake', '0.8.7'
http://stackoverflow.com/a/14486067

自分が実際に行った手順
  1. Gemfileにgem 'rake', '10.0.2'を追加
  2. bundle update
  3. bundle exec rake db:create (gemで入れたrakeとverが違うため、こうしろって怒られた。)
$ bundle exec rake db:create
db/development.sqlite3 already exists
db/test.sqlite3 already exists

ふはっ。まあいいんだけど。

まとめ

  • bundle install上手くいかないの良くわかんない。(多分Macなせい)
  • rails new app → rakeダウングレードも意味わかんない。
  • nkfって上手く出来てるんだなと思った。(-g)