RoR 事始め その5
rails new からテストサーバによる起動確認
「実践 Ruby on Rails 4」の第4章を参考にさせて頂きました。
(1) 作成した仮想マシンに
vagrant ssh
でログインして次を実行
rails new taskapp -d mysql --skip-test-unit
無事にソースコードが生成されたのを確認してから、
cp -rT taskapp /vagrant
でソースを移動。いらなくなったディレクトリは削除
rm -rf ~/taskapp
bundleがnokogiri 1.6.2.1で止まってハマる
前項からの続き。
cd /vagrant
でソースディレクトリに移動。
やはり「実践 Ruby on Rails 4」のP.46のGemfileを参考に、 3行目に
ruby 2.1.2
を追記し、あとは同著の説明に従って以下のようにGemfileを修正
source 'https://rubygems.org'
ruby '2.1.2'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.0'
# Use mysql as the database for Active Record
gem 'mysql2'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring', group: :development
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
# Use unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
# Use debugger
# gem 'debugger', group: [:development, :test]
gem 'nokogiri', '~> 1.6.1'
gem 'rails-i18n', '~> 4.0.1'
group :test do
gem 'rspec-rails', '~> 3.0.0.beta2'
gem 'spring-commands-rspec', '~> 1.0.1'
gem 'capybara', '~> 2.2.1'
gem 'factory_girl_rails', '~> 4.4.1'
gem 'database_cleaner', '~> 1.2.0'
end
上記のようにGemfileを修正、保存したのち、
bundle
を実行した結果、
An error occurred while installing nokogiri (1.6.2.1), and Bundler cannot continue.
Make sure that gem install nokogiri -v '1.6.2.1'
succeeds before bundling.
というエラーメッセージが出力されて、bundleが止まってしまった。
ネットで調べてみると、どうやら、
nokogiri 1.6.2.1がインストールできない問題に遭遇
してしまったらしい。
以下のような情報にあたりつつ、解決策を探る。
vagrant で plugin install 時に nokogiri-1.6.2.1 のビルドエラーになるのを回避する術 http://www.hsbt.org/diary/20140522.html
nokogiriをインストールしようとしてlibxmlのエラーが発生 http://qiita.com/mist_dev/items/f93b714d8fbc974bb0dc
Unable to install plugins that depend on nokogiri in Vagrant 1.6+ https://github.com/mitchellh/vagrant/issues/3769#issuecomment-42947813
上記を読み解決の方法を読んでいて、Gemfileの
gem 'nokogiri', '~> 1.6.1'
を、~>
を除去して、nokogiriのバージョンを1.6.1を決め打ちで指定すれば
いいのではないか?と思いました。なので、
gem 'nokogiri', '1.6.1'
と修正してから再度、bundle
を実行したらうまくいきました。
以下は、bundle
実行時のログ
$ vagrant ssh
Last login: Sun Jun 29 15:12:56 2014 from ネカフェのIPなので割愛(^_^);
Welcome to your Vagrant-built virtual machine.
[vagrant@localhost ~]$ cd /vagrant
[vagrant@localhost vagrant]$ vi Gemfile
[vagrant@localhost vagrant]$ bundle
Fetching gem metadata from https://rubygems.org/.........
Fetching additional metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.3.2
Using i18n 0.6.9
Using json 1.8.1
Using minitest 5.3.5
Using thread_safe 0.3.4
Using tzinfo 1.2.1
Using activesupport 4.1.0
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.0
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.0
Using mime-types 1.25.1
Using polyglot 0.3.5
Using treetop 1.4.15
Using mail 2.5.4
Using actionmailer 4.1.0
Using activemodel 4.1.0
Using arel 5.0.1.20140414130214
Using activerecord 4.1.0
Using bcrypt 3.1.7
Using bundler 1.6.3
Installing mini_portile 0.5.3
Installing nokogiri 1.6.1
Installing xpath 2.0.0
Installing capybara 2.2.1
Using coffee-script-source 1.7.0
Using execjs 2.2.1
Using coffee-script 2.2.0
Using thor 0.19.1
Using railties 4.1.0
Using coffee-rails 4.0.1
Installing database_cleaner 1.2.0
Installing diff-lcs 1.2.5
Installing factory_girl 4.4.0
Installing factory_girl_rails 4.4.1
Using hike 1.2.3
Using multi_json 1.10.1
Using jbuilder 2.1.1
Using jquery-rails 3.1.1
Installing libv8 3.16.14.3
Using mysql2 0.3.16
Using tilt 1.4.1
Using sprockets 2.11.0
Using sprockets-rails 2.1.3
Using rails 4.1.0
Installing rails-i18n 4.0.2
Using rdoc 4.1.1
Installing ref 1.0.5
Installing rspec-support 3.0.2
Installing rspec-core 3.0.2
Installing rspec-expectations 3.0.2
Installing rspec-mocks 3.0.2
Installing rspec-rails 3.0.1
Using sass 3.2.19
Using sass-rails 4.0.3
Using sdoc 0.4.0
Using spring 1.1.3
Installing spring-commands-rspec 1.0.2
Installing therubyracer 0.12.1
Using turbolinks 2.2.2
Using uglifier 2.5.1
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.