どうも、イソップです。
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.0
1.0.0以上のバージョンが必要になります。>= 1.0.0, < 2.0.0
1.0.0以上、2.0.0未満のバージョンが必要になります。~> 1.0.0
1.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ドキュメント