0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Ruby on Rails】bundlerについて(初学者用)

Last updated at Posted at 2020-12-13

#はじめに
bundlerとbundlerコマンドについて自分用にまとめておく。
・bundle install
・bundle update

#bundlerとは
・bunlerとは、gemを管理するツール。
・bunler自体もgemの一種。
GemfileGemfile.lockを利用して、gemを管理する。

###gemとは
・gemとはライブラリのこと。
・便利な機能をひとまとめにしたもの。
・gemをインストールすることで、自分で一からコードを書かなくても様々な機能
・gemの種類は多数ある。(ユーザー登録機能だったり、認証機能だったり)

###Gemfileとは
Gemfileは、アプリで使用するgemが記載されている。
コマンド打つことで、記載されているgemをインストールすることができる。
インストールする際は、gemのバージョンを指定することが可能で指定しなかった場合は最新のバージョンでインストールされる。

Gemfile
gem 'bootstrap-sass', '3.4.1'

###Gemfile.lockとは
実際にインストールされたgemが記載されている。
また、Gemfileでインストールしたgemと依存関係のあるgemも表示されている。

Gemfile.lock
    bootsnap (1.5.1)
      msgpack (~> 1.0)
    bootstrap-sass (3.4.1)
      autoprefixer-rails (>= 5.2.1)
      sassc (>= 2.0.0)
    builder (3.2.4)

###bundlerインストール方法
ターミナルで以下コマンドを入力する。

------ % gem install bundler

以下コマンドでbundlerのバージョンを確認するとともに、
bundlerがインストールされているかも確認する。

------ % bundle -v
Bundler version 1.17.2

#bundle install
Gemfileに書かれているgemをインストールする。
Gemfile.lockにないgemをGemfileから探し、見つけたgemをinstallする。
コマンド実行後、インストールされているgemが下に表示される。
※「bundle」と省略も可能。

------ % bundle install
The dependency tzinfo-data (>= 0) will be unused by any of the platforms 
Bundler is installing for. Bundler is installing for ruby but the dependency is 
only for x86-mingw32, x86-mswin32,x64-mingw32, java. To add those platforms to 
the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 
java`.
Using rake 13.0.1
Using concurrent-ruby 1.1.7
Using i18n 1.8.5
Using minitest 5.14.2
Using thread_safe 0.3.6
...
...
...
Bundle complete! 20 Gemfile dependencies, 78 gems now installed.
Gems in the group production were not installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.

#bundle update
Gemfile.lockに書かれている内容は無視し、Gemfileに書かれているgemを全てインストールするコマンド。
実行後の挙動は、bundle installと同様。

------ % bundle update
The dependency tzinfo-data (>= 0) will be unused by any of the platforms 
Bundler is installing for. Bundler is installing for ruby but the dependency is 
only for x86-mingw32, x86-mswin32,x64-mingw32, java. To add those platforms to 
the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 
java`.
Using rake 13.0.1
Using concurrent-ruby 1.1.7
Using i18n 1.8.5
Using minitest 5.14.2
Using thread_safe 0.3.6
...
...
...
Bundle updated!
Gems in the group production were not installed.

#bundle installとbundle updateの使い分けについて
基本的には 「bundle install」 を使った方がいいっぽい。
依存関係などでエラーが出た際に 「bundle update」 を使用してあげると良い。
本番環境で 「bundle update」 使用すると開発環境やテスト環境とgemの構成が変わり、思わぬ不具合が発生することがあるので注意が必要らいしいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?