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.
失敗 言われたままやってみた。
bundle install&&bundle update
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で頑張る。
gem install thread_safe
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
で依存パッケージインストールしてくれてないんやな。ってことにやっと気づきました。
解決策 インストールディレクトリを指定
bundle install --path vendor/bundle
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
自分が実際に行った手順
- Gemfileに
gem 'rake', '10.0.2'
を追加 bundle update
bundle exec rake db:create
(gemで入れたrakeとverが違うため、こうしろって怒られた。)
$ bundle exec rake db:create db/development.sqlite3 already exists db/test.sqlite3 already exists
ふはっ。まあいいんだけど。