AWS(Amazon Linux AMI)でRails動かそうとして「io/console (LoadError)」エラーでハマった話
AWSのEC2でクラウドサーバ(Amazon Linux AMI)を確保していたはいいが、長くほったからかしていたので、ちょっとそこでRailsを動かしてみようと思った。
最初から張り切ってApache+Passengerを組み込んでみたはいいが、
$ passenger-install-apache2-module
で、
Your compiler failed with the exit status 4. This probably means that it ran out of memory. To solve this problem, try increasing your swap space:
というエラーにぶち当たり断念。
t1.microじゃちょっと無理なんですね。
とりあえずWEBrickで、作っては動かし、作っては動かし、そして問題発生。
$ rails generate model order Warning: You're using Rubygems 2.0.14 with Spring. Upgrade to at least Rubygems 2.1.0 and run `gem pristine --all` for better startup performance. /usr/local/share/ruby/gems/2.0/gems/activesupport-4.1.4/lib/active_support/dependencies.rb:247:in `require': cannot load such file -- io/console (LoadError)
いきなりmodelの作成からできやしない。
ぐぐれば、
$ gem install io-console
しなさいということなので、
Building native extensions. This could take a while... Successfully installed io-console-0.4.2 Parsing documentation for io-console-0.4.2 Done installing documentation for io-console after 0 seconds 1 gem installed
しかし、やはり同じエラー。
ふと、
$ vi Gemfile
で、
一番下に
gem 'io-console'
追記したら
$ rails generate model order Warning: You're using Rubygems 2.0.14 with Spring. Upgrade to at least Rubygems 2.1.0 and run `gem pristine --all` for better startup performance. invoke active_record create db/migrate/20140814135616_create_orders.rb create app/models/order.rb invoke test_unit create test/models/order_test.rb create test/fixtures/orders.yml
これでようやく解決。
うーん、そういうことなんですか。
それにしてもRailsって、バージョン変わると色々様変わりしてしまうんですね。
Rails 4.0だと、巷にあふれる1.x向けや2.x向けのコードやコマンドが色々使えなくて
「え、script/plugin install じゃダメで、rails plugin install でもダメで、結局gem installするしかないってことですか」とか、くだらないところで時間を無駄にしてしまう。
こういう所が好かれないわけですね彼。