rbenv, rbenv-gem-rehash, rbenv-gemset
が整っている環境で、Railsプロジェクトを作ります。
この方法の場合、下記のメリットがあります。
-
自身のプロジェクトごとに個別のバージョンのRubyとRailsを使って開発できる。
- 例: プロジェクトAではRuby1.9 + Rails3.0、プロジェクトBではRuby2.2 + Rails4.1
-
rbenv-gemsetを利用することで、プロジェクトごとにgemを管理できる。
- 自身のPCのgemグループが汚れず、プロジェクトごとに個別のgemグループをつくることができる
-
上記メリットがあるため、Gitなどを使って、メンバに配布がしやすい
すでにRails作業環境が準備できている場合は、下記、Railsプロジェクトの作成
のみ実施して下さい。
rbenv-gem-rehash
rbenvを使っていると、gem install XXX
と新しいgemをインストールしたときに、rbenv rehash
しなければなりません。毎度面倒なので、自動で実行するようにしてくれるプラグインです。
rbenv-gemset
自身のプロジェクトごとにgem環境を切り分けたい時に、プロジェクトごとにgemのグループgemsetを つくることができるようになります。
- ここでは例として、2.0.0-p598を使用します
$ rbenv versions
system
1.8.7-p374
1.9.3-p551
2.0.0-p598
〜略〜
使用するバージョンのRubyがインストールされていない場合はrbenv install
にてRubyをインストールしてください
- ここではrails4.0.5を使うことにします
下記ディレクトリは任意のディレクトリで構いません
$ mkdir rails_workspace/your_project_name
$ cd rails_workspace/your_project_name
$ rbenv local 2.0.0-p598
$ cat .ruby-version
2.0.0-p598
$ rbenv versions
system
1.8.7-p374
* 2.0.0-p598 (set by /Users/you/git/railstutorial/rails_workspace/your_project_name/.ruby-version)
2.1.1
2.1.5
your_project_name
の部分は任意の名前で構いません
$ rbenv gemset create 2.0.0-p598 your_project_name
$ echo >.rbenv-gemsets your_project_name
$ cat .rbenv-gemsets
your_project_name
$ rbenv gemset list
1.9.3-p551:
ruby_mssql
2.0.0-p598:
2.0.0-p598
rails3-2-14
your_project_name <-- これが追加された
2.1.1:
everydayrails_rspec
rails4-0-5
2.1.2:
pundit_sample
rails4-1-0
2.2.1:
asagao4
$ rbenv gemset active
your_project_name global <-- globalはこのPC全体で共通のgemset
すでに開発が進んでいるRailsの場合などで、Gemfileにgem 'rails'
が書かれている場合は下記を実行する必要はありません
$ gem install rails --version 4.0.5
ここではカレントディレクトリにプロジェクトを作成いています。
すでに開発が進んでいるRailsの場合、下記を実行する必要はありません
- dbがMySQLの場合
$ rails new -d mysql --skip-test-unit --skip-bundle .
- dbがPostgreSQLの場合
$ rails new -d postgresql --skip-test-unit --skip-bundle .
- rubyのバージョンを固定するためにGemfileの2行目に
ruby 'X.Y.Z'
を追加する
$ bundle install
インストール時のエラー対応
- パターン1
エラー内容
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/Users/shyamahira/.rbenv/versions/2.2.5/bin/ruby -r ./siteconf20161011-28835-5or7fn.rb extconf.rb
"--with-xml2-include=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/libxml2
extconf failed, exit code 2
Gem files will remain installed in /Users/shyamahira/.rbenv/versions/2.2.5/gemsets/rails_webook/gems/nokogiri-1.6.8.1 for inspection.
Results logged to /Users/shyamahira/.rbenv/versions/2.2.5/gemsets/rails_webook/extensions/x86_64-darwin-15/2.2.0-static/nokogiri-1.6.8.1/gem_make.out
An error occurred while installing nokogiri (1.6.8.1), and Bundler cannot continue.
Make sure that `gem install nokogiri -v '1.6.8.1'` succeeds before bundling.
対処法
bundle config build.nokogiri --use-system-libraries
をしてからもう一度bundle install
をする
config/database.yml
のpasswordをpassword: password
のように設定する
$ rake db:create