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

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

どうも、イソップです。

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]

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

となります。

Gemfileのバージョン指定方法は、ぜひ覚えておきたいところです!

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

五十川 洋平(Yohei Isokawa)

五十川 洋平(Yohei Isokawa)

フロントエンドエンジニア/面白法人カヤックなどのWeb制作会社に勤務したのち、故郷の新潟に戻り独立。JSフレームワークAngularやFirebase、Google Cloud Platformを使ったWebアプリ開発が得意。 また、Udemyのプログラミング解説の講師、writer.appの自主開発や上越TechMeetupの主催などを行っています。

プロフィール

©Copyright 2022 Yohei Isokawa All Rights Reserved.