どうも、イソップです。
Railsアプリを rails new で新規作成すると、Gemfile が作成されますよね。
これは Bundler というRubyのライブラリ管理システムのための設定ファイルで、
Railsアプリで使用するライブラリの情報が保存されています。
この Gemfile の中に、Railsで利用するRubyライブラリを記述して管理していきますが、
中を覗いてみると、gem 'rails', '~> 5.0.2' と書いてあり、~> 5.0.2 ってなんだろう?って思いませんか?
これはバージョンを指定しているのですが、Rails初心者には記号の意味がさっぱりわかりません。
ということで、今回はGemfileでのバージョンの指定について紹介してみたいと思います。
Gemfileでバージョン指定できる種類
Gemfileの中では、利用するgemを次のように書きます。
[ruby]
gem ライブラリ名 (, バージョン) (, オプション)
[/ruby]
ライブラリ名は必ず必要で、バージョンとオプションを追加で指定することが可能です。
では、Railsの v5.0.2 で作成されるGemfileを見てみましょう。
[ruby]
gem ‘rails’, ‘~> 5.0.2’
gem ‘puma’, ‘~> 3.0’
gem ‘sass-rails’, ‘~> 5.0’
gem ‘uglifier’, ‘>= 1.3.0’
…
[/ruby]
上記のように記載されています。
早速バージョンの指定方法について解説していきましょう。
1.0.0バージョンを固定します。>= 1.0.01.0.0以上のバージョンが必要になります。>= 1.0.0, < 2.0.01.0.0以上、2.0.0未満のバージョンが必要になります。~> 1.0.01.0.0以上で利用可能で、1.0.9などは問題なく、1.1にバージョンが上がると利用不可になります。- バージョン指定無しの場合は、常に最新版をインストールします。
先ほどのGemfileをもう一度確認してみると、
[ruby]
gem ‘rails’, ‘~> 5.0.2’
gem ‘puma’, ‘~> 3.0’
gem ‘sass-rails’, ‘~> 5.0’
gem ‘uglifier’, ‘>= 1.3.0’
…
[/ruby]
rails は 5.0.xで利用可。
puma は 3.x で利用可。
sass-rails は 5.x で利用可。
uglifier は 1.3.0 以上が必要。
となります。
Gemfileのバージョン指定方法は、ぜひ覚えておきたいところです!
【参考サイト】Railsドキュメント
