gemのバージョン指定法(>=,~>,など)について

rails アプリケーションのgemfile内でのバージョン指定の方法についてです。

以下のように、gemのバージョンが指定されております。

gem 'rails', '~> 5.1.6'
gem 'mysql2', '>= 0.3.18', '< 0.6.0'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'

 >=,~>,<などの記号がどういう意味なのか、はっきりとわかっていなかったので調べてみました。

 

 

基本の書き方

gem  'gem名',  ('バージョン'),  ('オプション')

 

 

バージョン指定の記号の意味

・'5.0.0'                    5.0.0にバージョン固定

・'>=5.0.0'                  5.0.0以上

・'~>5.0.0'          5.0.0以上5.9.9以下(メジャーのバージョンが上がるのは不可)

・'>=5.0.0',  '< 5.3.0'  5.0.0以上6.3.0未満

 

 

'x.y.z' というバージョンの意味

・xはメジャーバージョン。

 新機能が追加され、多くのAPI変更も含まれる。重大な変更。

・yはマイナーバージョン。

 新機能の追加とAPIの変更も含まれることがある。

・zはパッチバージョン。

 バクの修正が行われる。