【Ruby】gemのバージョンを管理する方法

2019年2月3日

gemとは?

Rubyにおけるライブラのことです。Rubyではライブラリをgemと呼んでいて、gemを扱うコマンドにもなっています。gemのコマンドもいくつかあるのですが、そこまで難しいわけではないので今回説明はしません。

 

gemのバージョンを管理する

前回の記事ではRubyのバージョン管理用ツールとその使い方を記載しました。

【Ruby】WindowsでのRubyバージョン管理ツールuruの使い方

Rubyのバージョン管理と同様に、gemの管理は開発上非常に重要です。今回はRubyのプロジェクト毎にgemを管理する方法を記載していきます。

 

gem管理用のgem「builder」

gemの管理ツールはそれ自体がgemで、「bulder」というgemです。builderではGemFileというファイルを使って、gem管理を行います。

以下でbulderの使用方法を記載していきます。

私の環境情報

OS:Windows10

uru:uru-0.8.5-windows-x86

Ruby: 2.5.3

 

「builder」をインストールする

bulder自体がgemなので、gemコマンドを使用してインストールします。

gem install bundler

 

GemFileを作成し、インストールする

実際に管理するgemを記載するGemFileを作成します。GemFileはコマンドで雛形を作成することができます。

以下のコマンドを実行します。

bundle init

 

作成された雛形は以下のようになります。

# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
# gem "rails"

作成されたGemFileでは「gem “rails”」というコードがコメントアウトされていますが、こちらのコメントアウトをはずしてGemFileにrailsが登録された状態になります。

コメントアウトをはずして以下のようにした状態にします。

# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails"

この状態で以下のコマンドを使用するとRuby on railsがインストールされます。

bundle install --path vendor/bundle

こちらでインストールすると実行したフォルダ内にvendor/bundleというフォルダが作成され、その中にRuby on railsがインストールされます。

ちなみに、–pathオプションを付けない場合はグローバルにインストールされてしまうので、–pathオプションは付けた方が良いです。

 

インストールするバージョンを固定する

上記のGemFileの記載では取得するリポジトリに公開されている最新のものをインストールしていまいます。複数人で開発する場合などはバージョンを固定しないと厳しいですよね。なので、以下のように記載し¥、バージョンを指定しましょう。

# frozen_string_literal: true
source "https://rubygems.org"
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
gem "rails", "5.2.2" # カンマ区切りでバージョンを指定する

 

さいごに

上記で記載したのはGemFileの基本的な書き方のみなので、それ以上に必要な場合は以下のドキュメントから探すと良いと思います。

https://bundler.io/v2.0/man/gemfile.5.html