環境
rbenvは単純にRubyのバージョン(を入れ替える)管理ツール。BundlerはRubyのライブラリ管理ツール。
ホーム配下へのインストール
rbenv ディレクトリの作成
% git clone git://github.com/sstephenson/rbenv.git ~/.rbenv % mkdir -p ~/.rbenv/plugins % git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
環境変数の設定
vi ~/.zshrc
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"
.zshrcの読み込み
% source ~/.zshrc
インストール可能なRuby versionの検索
% rbenv install -l 2.0.0-p598 2.0.0-p643 2.0.0-p645 2.1.0-dev 2.1.0-preview1 2.1.0-preview2 2.1.0-rc1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.2.0-dev 2.2.0-preview1 2.2.0-preview2 2.2.0-rc1 2.2.0 2.2.1 2.2.2
% cd ~/.rbenv
% rbenv install 2.2.2 % rbenv rehash % rbenv versions * system (set by /Users/developer/.rbenv/version) 2.2.2 % rbenv local 2.2.2 % rbenv versions system * 2.2.2 (set by /Users/developer/Work/.ruby-version) % ruby -v ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-darwin14] % which ruby /Users/developer/.rbenv/shims/ruby
rbenv rehash
は、RubyやGemでインストールしたファイルの実行ファイルを作成するコマンド。~/.rbenv/shims
配下に作成される。
Rubyの有効化
% rbenv global 2.2.2
Bundlerの設定
bundlerのインストール
% rbenv exec gem install bundler % rbenv rehash % which bundler /Users/developer/.rbenv/shims/bundler
有効なgemの確認
% rbenv exec gem list
どこにgemがインストールされたか確認
% rbenv exec gem which {package} /Users/developer/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/bundler-1.10.5/lib/bundler.rb
Rails projectの設定
Gemfileの作成
% mkdir ~/work % cd work % vi Gemfile // [ Gemfile ] source "http://rubygems.org" gem "rails"
gemのインストール
% bundle install --path vendor/bundle % la ./ ../ .bundle/ Gemfile vendor/ % bundle list Gems included by the bundle: * actionmailer (4.1.1) * actionpack (4.1.1) * actionview (4.1.1) * activemodel (4.1.1) * activerecord (4.1.1) * activesupport (4.1.1) * arel (5.0.1.20140414130214) * builder (3.2.2) * bundler (1.10.5) * erubis (2.7.0) * i18n (0.7.0) * json (1.8.3) * mail (2.5.4) * mime-types (1.25.1) * minitest (5.7.0) * polyglot (0.3.5) * rack (1.5.5) * rack-test (0.6.3) * rails (4.1.1) * railties (4.1.1) * rake (10.4.2) * sprockets (3.2.0) * sprockets-rails (2.3.2) * thor (0.19.1) * thread_safe (0.3.5) * treetop (1.4.15) * tzinfo (1.2.2)
--path vendor/bundle
をつけてインストールした場合, PackageはRubyの環境下ではなく vendor/bundle
以下にインストールされる。
Rails projectの作成
% bundle exec rails new project --skip-bundle
create
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/assets/javascripts/application.js
create app/assets/stylesheets/application.css
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/assets/images/.keep
create bin
create bin/bundle
create bin/rails
create bin/rake
create config
create vendor/assets/javascripts
create vendor/assets/javascripts/.keep
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep
もし vendor/bundle
配下でコマンドを実行する場合、--skip-bundle
を忘れずつけ、bundle exec xxx
を実行するべきである。
実行が失敗する場合
もし間違ったPATHの場合、以下のようにエラーが走る。
% bundle exec rails new xxx --skip-bundle Could not find i18n-0.7.0 in any of the sources Run `bundle install` to install missing gems.
パスは以下のように編集する。
# rbenv export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)" export PATH="$HOME/.gem/ruby/2.2.0/bin:$PATH"
そうすれば bundle exec rails
を実行できる。
% bundle install --path vendor/bundle Fetching gem metadata from http://rubygems.org/......... Fetching version metadata from http://rubygems.org/.. Using rake 10.4.2 Installing i18n 0.7.0 Installing json 1.8.3 with native extensions... ... % bundle exec rails new project --skip-bundle create create README.rdoc create Rakefile create config.ru create .gitignore create Gemfile create app ...
一時的にインストールしたRailsフォルダーを削除
RailsをローカルにビルドするためのRailsとbundlerを削除する。
% rm -f Gemfile % rm -f Gemfile.lock % rm -rf .bundle % rm -rf vendor/bundle % la ./ ../ project/ vendor/
% cd project % vi Gemfile // write package you want to install % gem search -r {package_name} // you can search package name % bundle config build.nokogiri --use-system-libraries // If you can not install nokogiri, before install this command execute. % bundle install --path vendor/bundle // I installed below. gem "selenium-webdriver" gem "capybara" gem "rspec" gem "pry-byebug" gem "phantomjs" gem "poltergeist" gem "database_cleaner" gem "factory_girl_rails" gem "shoulda-matchers" gem 'pry-rails' # rails console(もしくは、rails c)でirbの代わりにpryを使われる gem 'pry-doc' # methodを表示 gem 'pry-byebug' # デバッグを実施(Ruby 2.0以降で動作する) gem 'pry-stack_explorer' # スタックをたどれる ~~~ Bundle complete! 13 Gemfile dependencies, 59 gems now installed. Bundled gems are installed into ./vendor/bundle.
spec_helper.rbの作成
% bundle exec rspec --init
create .rspec
create spec/spec_helper.rb
commentの削除
% vi spec/spec_helper.rb
=begin
=end
を削除する。
.rb ファイルは以下のように実行する。
% bundle exec rspec project.rb
rbenvのパス確認。
% sudo which rbenv
/Users/okamoto/.rbenv/bin/rbenv
確認コマンド
// RubyにインストールされたGemの確認 % rbenv exec gem list // パスの確認 % rbenv exec gem which bundler /usr/local/var/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/bundler-1.10.6/lib/bundler.rb
ルート直下へのインストール
bundlerのインストール
// rbenvとruby-buildのインストール % brew install rbenv ruby-build // Rubyのインストール % rbenv install 2.2.3 // Rubyの最適化 % rbenv global 2.2.3 // readlineのインストール % brew install readline // bundlerのインストール % rbenv exec gem install bundler % rbenv rehash
rbenv rehash
は、RubyやGemでインストールしたファイルの実行ファイルを作成するコマンド。~/.rbenv/shims
配下に作成される。
% cat << EOS >> Gemfile heredoc> source "http://rubygems.org" heredoc> gem "rails" heredoc> gem "selenium-webdriver" heredoc> gem "capybara" heredoc> gem "rspec" # launchyはsave_and_open_pageを利用するためのgem heredoc> gem "pry-byebug" heredoc> gem "phantomjs" heredoc> gem "launchy" heredoc> gem "poltergeist" heredoc> gem "database_cleaner" heredoc> gem "factory_girl_rails" heredoc> gem "shoulda-matchers" heredoc> gem 'pry-rails' # rails console(もしくは、rails c)でirbの代わりにpryを使われる heredoc> gem 'pry-doc' # methodを表示 heredoc> gem 'pry-byebug' # デバッグを実施(Ruby 2.0以降で動作する) heredoc> gem 'pry-stack_explorer' # スタックをたどれる heredoc> EOS % bundle install % rbenv exec gem which selenium-webdriver /usr/local/var/rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/selenium-webdriver-2.48.1/lib/selenium-webdriver.rb