【Rails】Gemfileのバージョン指定の書き方

Gemfileのバージョン指定
スポンサーリンク

どうも、イソップです。

Railsアプリを rails new で新規作成すると、Gemfile が作成されますよね。
これは Bundler というRubyのライブラリ管理システムのための設定ファイルで、
Railsアプリで使用するライブラリの情報が保存されています。

この Gemfile の中に、Railsで利用するRubyライブラリを記述して管理していきますが、
中を覗いてみると、gem 'rails', '~> 5.0.2' と書いてあり、~> 5.0.2 ってなんだろう?って思いませんか?

これはバージョンを指定しているのですが、Rails初心者には記号の意味がさっぱりわかりません。
ということで、今回はGemfileでのバージョンの指定について紹介してみたいと思います。

Gemfileでバージョン指定できる種類

Gemfileの中では、利用するgemを次のように書きます。

gem ライブラリ名 (, バージョン) (, オプション)

ライブラリ名は必ず必要で、バージョンとオプションを追加で指定することが可能です。

では、Railsの v5.0.2 で作成されるGemfileを見てみましょう。

gem 'rails', '~> 5.0.2'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
...

上記のように記載されています。

早速バージョンの指定方法について解説していきましょう。

  • 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をもう一度確認してみると、

gem 'rails', '~> 5.0.2'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
...

rails5.0.xで利用可。
puma3.x で利用可。
sass-rails5.x で利用可。
uglifier1.3.0 以上が必要。

となります。

Gemfileのバージョン指定方法は、ぜひ覚えておいてください!

【参考サイト】Railsドキュメント

Gemfileのバージョン指定


イソップへのお悩み相談募集中

イソップに相談しませんか?

当ブログで紹介しているような、Web制作やフリーランスへの悩みをイソップに相談してみませんか?
回答できることがあれば記事の中でご紹介します。