Edited at

bundler使ってgemのバージョン指定してRailsプロジェクトを作成

More than 3 years have passed since last update.


先日のの書き直しだけど


プロジェクト用ディレクトリとGemfileの作成

先にプロジェクト用のディレクトリを作成し、bundle使ってGemfileを作るところがポイント


terminal

$ mkdir draft

$ cd draft/
$ bundle init
Writing new Gemfile to /Users/rojiuratech/Documents/rails_apps/sandbox/draft/Gemfile


作成したGemfileに、rails(だけ)インストールを明記する


terminal

$ vi Gemfile 


初期状態


Gemfile

# A sample Gemfile

source "https://rubygems.org"

# gem "rails"


railsのインストールを記述


Gemfile

# A sample Gemfile

source "https://rubygems.org"

gem "rails", '4.2.5'


rails「だけ」インストールすると記述します。 

'4.2.5'の部分はバージョン指定です。お好みで付けたり付けなかったりしてください。


gemのインストール箇所を指定して bundle install

ここではインストールする位置を、プロジェクトのルートから見て

vendor/bundle の箇所にする(定石のようです)


terminal

$ bundle install --path vendor/bundle



terminal

Fetching gem metadata from https://rubygems.org/...........

Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.4.2
Installing i18n 0.7.0
(中略)
Installing rails 4.2.5
Bundle complete! 1 Gemfile dependency, 34 gems now installed.
Bundled gems are installed into ./vendor/bundle.

1件のGemファイルと34件の依存するgemをインストール。


Railsプロジェクトを新規作成。さっきインストールしたやつで

システムやrbenvで管理されているGemではなく、このプロジェクト用に用意したRailsのgemでインストール開始


terminal

$ bundle exec rails new .



terminal

       exist  

create README.rdoc
create Rakefile
create config.ru
create .gitignore
conflict Gemfile
Overwrite /Users/ShinichiMinoshima/Documents/rails_apps/sandbox/draft/Gemfile? enter "h" for help) [Ynaqdh] Y
force Gemfile
(中略)
create vendor/assets/stylesheets
create vendor/assets/stylesheets/.keep
run bundle install
rbenv: cannot rehash: /Users/rojiuratech/.rbenv/shims/.rbenv-shim exists
Fetching gem metadata from https://rubygems.org/...........
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Resolving dependencies...
Using rake 10.4.2
(中略)
Installing turbolinks 2.5.3
Bundle complete! 12 Gemfile dependencies, 54 gems now installed.
Bundled gems are installed into ./vendor/bundle.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
= 1.8.7 : gem install rdoc-data; rdoc-data --install
= 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
run bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted


このタイミングでGemfileも書き換わります


Gemファイルのインストール位置も確認


terminal

$ ls ./vendor/bundle/ruby/2.2.0/gems

actionmailer-4.2.5 coffee-rails-4.1.1 json-1.8.3 rails-deprecated_sanitizer-1.0.3 sqlite3-1.3.11
actionpack-4.2.5 coffee-script-2.4.1 loofah-2.0.3 rails-dom-testing-1.0.7 thor-0.19.1
actionview-4.2.5 coffee-script-source-1.10.0 mail-2.6.3 rails-html-sanitizer-1.0.2 thread_safe-0.3.5
activejob-4.2.5 concurrent-ruby-1.0.0 mime-types-2.99 railties-4.2.5 tilt-2.0.2
activemodel-4.2.5 debug_inspector-0.0.2 mini_portile2-2.0.0 rdoc-4.2.1 turbolinks-2.5.3
activerecord-4.2.5 erubis-2.7.0 minitest-5.8.3 sass-3.4.20 tzinfo-1.2.2
activesupport-4.2.5 execjs-2.6.0 multi_json-1.11.2 sass-rails-5.0.4 uglifier-2.7.2
arel-6.0.3 globalid-0.3.6 nokogiri-1.6.7.1 sdoc-0.4.1 web-console-2.2.1
binding_of_caller-0.7.2 i18n-0.7.0 rack-1.6.4 spring-1.6.2
builder-3.2.2 jbuilder-2.4.0 rack-test-0.6.3 sprockets-3.5.2
byebug-8.2.1 jquery-rails-4.0.5 rails-4.2.5 sprockets-rails-3.0.0


Railそのもののアップデートも忘れずに

前回これやらずに途方に暮れた。

Railsをインストールしたのだから必須だってばさ。


terminal

$ bundle exec rake rails:update

identical config/boot.rb
exist config
identical config/routes.rb
identical config/application.rb
identical config/environment.rb
conflict config/secrets.yml
Overwrite /Users/ShinichiMinoshima/Documents/rails_apps/sandbox/draft/config/secrets.yml? (enter "h" for help) [Ynaqdh] Y
force config/secrets.yml
exist config/environments
identical config/environments/development.rb
identical config/environments/production.rb
identical config/environments/test.rb
exist config/initializers
identical config/initializers/assets.rb
identical config/initializers/backtrace_silencers.rb
identical config/initializers/cookies_serializer.rb
identical config/initializers/filter_parameter_logging.rb
identical config/initializers/inflections.rb
identical config/initializers/mime_types.rb
identical config/initializers/session_store.rb
identical config/initializers/wrap_parameters.rb
exist config/locales
identical config/locales/en.yml
exist bin
identical bin/bundle
conflict bin/rails
Overwrite /Users/ShinichiMinoshima/Documents/rails_apps/sandbox/draft/bin/rails? (enter "h" for help) [Ynaqdh] Y
force bin/rails
conflict bin/rake
Overwrite /Users/ShinichiMinoshima/Documents/rails_apps/sandbox/draft/bin/rake? (enter "h" for help) [Ynaqdh] Y
force bin/rake
identical bin/setup