Railsの環境構築 ~起動にエラーはつきもの?Rails起動編~
環境
centos 6.7 ruby 2.3
導入
bundlerは導入済みとする
bundle init
でGemfileの編集
bundle install --path vendor/bundle/
installが終わったら
bundle exec rails new railbook
で新規アプリケーションの作成をする。
cdで作ったアプリケーション名のディレクトリに移動し
bundle exec rails s
を実行
すると以下の様なエラーが出た
/usr/local/lib/ruby/gems/2.3.0/gems/activesupport-4.0.2/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:89:in `rescue in block (2 levels) in require': There was an error while trying to load the gem 'uglifier'. (Bundler::GemRequireError) Gem Load Error is: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. Backtrace for gem load error is: /usr/local/lib/ruby/gems/2.3.0/gems/execjs-2.7.0/lib/execjs/runtimes.rb:58:in `autodetect' /usr/local/lib/ruby/gems/2.3.0/gems/execjs-2.7.0/lib/execjs.rb:5:in `<module:ExecJS>' /usr/local/lib/ruby/gems/2.3.0/gems/execjs-2.7.0/lib/execjs.rb:4:in `<top (required)>' /usr/local/lib/ruby/gems/2.3.0/gems/uglifier-3.0.0/lib/uglifier.rb:5:in `require' /usr/local/lib/ruby/gems/2.3.0/gems/uglifier-3.0.0/lib/uglifier.rb:5:in `<top (required)>' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:86:in `require' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:86:in `block (2 levels) in require' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:81:in `each' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:81:in `block in require' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:70:in `each' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:70:in `require' /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler.rb:102:in `require' /home/admin/ruby/rails/railbook/config/application.rb:7:in `<top (required)>' /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:74:in `require' /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:74:in `block in <top (required)>' /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:71:in `tap' /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:71:in `<top (required)>'bin/rails:4:in `require' bin/rails:4:in `<main>' Bundler Error Backtrace: from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:85:in `block (2 levels) in require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:81:in `each' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:81:in `block in require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:70:in `each' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler/runtime.rb:70:in `require' from /usr/local/lib/ruby/gems/2.3.0/gems/bundler-1.12.4/lib/bundler.rb:102:in `require' from /home/admin/ruby/rails/railbook/config/application.rb:7:in `<top (required)>' from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:74:in `require' from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:74:in `block in <top (required)>' from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:71:in `tap' from /usr/local/lib/ruby/gems/2.3.0/gems/railties-4.0.2/lib/rails/commands.rb:71:in `<top (required)>' from bin/rails:4:in `require' from bin/rails:4:in `<main>'
調べてみるとどうやらtherubyracer
が必要ならしい
アプリケーション内のGemfileを編集。以下を記述する
gem 'therubyracer'
次に
bundle update だと全部のバージョンが変わってくるので
bundle update
を実行bundle install
を実行すべき
次はこんなエラーがでた。
An error occurred while installing therubyracer (0.12.2), and Bundler cannot continue. Make sure that `gem install therubyracer -v '0.12.2'` succeeds before bundling.
また調べてみるとgcc-c++
が必要?らしい
インストールする
sudo yum install -y ruby20-devel gcc-c++
そしたらまた
同じ理由でbundle update
を実行bundle install
を実行しよう
Installing therubyracer 0.12.2 with native extensions Using activemodel 4.0.2 Using jbuilder 1.5.3 Using actionpack 4.0.2 Using mail 2.5.4 Using sdoc 0.4.1 Using activerecord 4.0.2 Using railties 4.0.2 Using sprockets-rails 2.0.1 Using actionmailer 4.0.2 Using coffee-rails 4.0.1 Using jquery-rails 3.1.4 Using sass-rails 4.0.5 Using rails 4.0.2 Using turbolinks 2.5.3 Bundle updated!
できたっぽい
最後に
bundle exec rails s
で実行(4.xxの場合はbundle exec いらないかも普通にrails sとかで実行できた)←こいつbundleで環境切り替えてるの理解してないでヤンス
[admin@localhost railbook]$ bundle exec rails s /usr/local/lib/ruby/gems/2.3.0/gems/activesupport-4.0.2/lib/active_support/values/time_zone.rb:282: warning: circular argument reference - now => Booting WEBrick => Rails 4.0.2 application starting in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2016-05-30 11:52:46] INFO WEBrick 1.3.1 [2016-05-30 11:52:46] INFO ruby 2.3.0 (2015-12-25) [x86_64-linux] [2016-05-30 11:52:46] INFO WEBrick::HTTPServer#start: pid=4589 port=3000
最後にport3000のアドレスにアクセスする以下のように表示されたら動作確認完了
よかった動いたー 終わり!
参考サイト