Webサイト制作コースのお申し込みはこちら

Rubyで開発するなら、ぜひ、bundlerを使ってください。Rubyには、便利なgemが幾つもあり、それらはWebシステムの開発にも活用されています。

しかし、gemの多くは頻繁にアップデートされており、最新版をインストールすると、本番環境と開発環境が合わなくなることも。その点bundlerなら、gemのバージョンまで細かく管理が可能です。そこで今回は、このようなbundlerの機能と使い方について。詳しく紹介します。

bundlerはgemを管理する仕組み

Ruby on RailsでWebシステムを開発するなら、bundlerの導入は必須と考えてください。今回紹介するbundlerは、Ruby on Railsの開発に利用するgemを管理する仕組みです。

例えば、本番環境と開発環境のgemは、全く同じバージョンが使われているでしょうか。bundlerを使っていれば、同じバージョンの環境が作れます。まずは、bundlerの役割について解説します。

bundlerの役割

bundlerは、gemの依存関係とバージョンを管理するためのツールです。なお、bundlerが管理するgemとは、RubyGemsが公開しているRubyのパッケージ、または、そのパッケージを管理する仕組みの名称で、Ruby on Railsによる開発には欠かせません。

そもそも、Ruby on Railsをインストールする際にも、gemコマンドを利用するくらいです。しかし、利用するgemの数が多くなると、gemコマンドをマニュアル操作で実行するだけでは管理できません。

そこでgemを管理するためのツール、bundlerが使われています。これを利用することで、チーム全員の開発環境を同じgemに統一したり、開発するシステムに合わせてgemのバージョンを切り替える、といったことが可能です。

gemのバージョンによる違いが大きい

先ほど、Ruby on RailsでWebシステムを開発するなら、bundlerの導入は必須と書きましたが、チームで開発する場合、bundlerが特に効果を発揮します。

なお、チームで開発する場合、開発環境にインストールされたgemのバージョンを合わせることが重要です。それは、gemによっては頻繁にバージョンアップが行われており、バージョンが違うことで正常に動作しないことがよくあるからです。

その点、bundlerでは、設定ファイルに利用するgemやそのバージョンを記述しておけば、簡単なコマンドでそのgemをインストールできます。そして、チームで同じ設定ファイルを使っていれば、全く同じ環境の構築が可能です。

bundlerを利用する場合の注意点

何度も説明しているように、Ruby on Railsによる開発ではbundlerの利用は必須です。しかし、このような管理ツールを導入する場合、注意してほしい点が幾つかあります。中でも注意してほしいのが次の2点です。

まず、gemをインストールするフォルダまたはディレクトリに注意してください。幾つかのプロジェクトを並行して進めるような場合は、本番環境に合わせた開発環境の切り替えが必要です。gemをどこに置いたかを、きちんと把握していなと、間違ったバージョンを使ってしまうかもしれません。

また、gemの管理は、gemコマンドでも可能です。そのため、gemコマンドとbundlerコマンドの両方を使っていると、特定のバージョンを使う予定が最新版にアップデートされていたり、また、その逆のケースもあるなど混乱してしまいます。bundlerを使うと決めたら、gemの操作を全てbundlerを使うよう徹底してください。

bundleコマンドの使い方

先ほど説明したように、bundlerは、Rubyの外部ライブラリであるgemを管理する仕組みです。そして、bunderの機能を利用するには、bundleコマンドを利用します。なお、このコマンドは、Rubyがインストールされていれば、Windowsならコマンドプロンプトで、また、macOSやLinuxではターミナルなどで実行可能です。

bundleコマンドの文法

先ほど紹介したとおり、bundlerで使うコマンドは「bundle」です。そして、「bundle」は、第1引数がコマンドを、続けてオプションを指定することで、gemのインストールやアップデートなどを実行します。

bundleコマンドの文法

bundle コマンド オプション

bundleの実行例

$ bundle version
Bundler version 2.1.4 (2020-01-05 commit 32a4159325)

bundleコマンドのヘルプを表示する

bundleコマンドでは、キーボードから利用したい機能に合わせてコマンドやオプションを打たなければなりません。もちろん覚えていれば簡単ですが、オプションを確認したいケースもあるでしょう。そのような場合に利用するのが、bundleコマンドに組み込まれたヘルプ機能です。

ヘルプを表示する例

$ bundle install --help

このコマンドを実行すると、bundleのinstallコマンドに続いて指定できるオプションの簡単なヘルプを表示します。

管理ファイルの書き方

bundlerでは、専用の管理ファイルを使用し、このファイルに管理対象のgemの名称やそのバージョンなどを指定します。なお、このファイルはテキストファイルなので、簡単に編集が可能です。

例えば、bundlerの管理ファイルを使って、Ruby on Railsなどで利用するgemをインストールする場合は、次のとおりです。

bundlerの管理ファイルの例

gen 'sinatra'
gem 'json', '~> 1.7'
gem 'tw', :git => 'git@github.com:shokai/tw.git'

この例では、sinatra、1.7系の最新のjson、githubにある開発版のtwの3つのgemをbundlerで管理します。

よく使うbundlerのコマンド

コマンドプロンプトやターミナルからbundleコマンドを使う場合、マニュアルに書いてある多くのコマンドやオプションから、使いたい機能を選びます。しかし、それをキーボードから打ちこむのは面倒です。

そのため、bundlerを活用しているエンジニアは、よく使う機能のみ覚えておき、それ以外はマニュアルをチェックする、といった具合に使います。次から、Ruby on Railsなどを開発する場合などでよく使われる機能に絞り、その使い方について紹介します。

bundlerの管理ファイルを作るコマンド

先ほど説明したよにbundlerを利用するには、管理ファイルが必要です。まずは、bundleコマンドで管理ファイルを作りましょう。なお、管理ファイルを作成するコマンドは、bundle initです。

管理ファイルを作るコマンド

bundle init

このコマンドで、実行したフォルダまたはディクレトリに管理ファイル「Gemfile」が作られてます。そして、このファイルに使いたいgemを追加しておくことで、bundleコマンドで管理が可能です。

gemをインストールするコマンド

gemの管理でよく使われる機能が、gemのインストールです。gemのインストールは、gemコマンドからもできますが、バージョン管理が必要なケースではbundle installコマンドを利用してください。

bundle install [オプション]

なお、オプションで、gemをインストールするPATH名や、管理ファイルなどを指定できます。また、管理ファイルにgemのバージョンを書いておくことで、最新版ではなく、そのバージョンをインストールできます。

bundle installの例

$ bundle install --path vender/bundle

この例は、gemのインストール先として、「vender/bundle」を指定して、gemのインストールを実行します。

gemをアップデートするコマンド

今も開発が続いている便利なgemが数多くあり、それらは頻繁にアップデートされています。もし、bundlerで管理しているgemの最新版が必要な場合は、bundle updateコマンドで更新が可能です。

bundle update [オプション]

updateコマンドも、オプションでインストールする場所や管理ファイルなどを指定できます。

bundle updateの例

$ bundle update --gemfile Gemfile_projA

この例では、管理ファイルとして、「Gemfile_projA」を指定し、それに記載されたgemのアップデートを実行します。

bundle exec コマンド

bundle installコマンドでインストールしたgemに、PATHが通っているとは限りません。そして、多くの場合、PATHが通っていないことで、gemコマンドの実行、およびrubyのプログラムからの参照に失敗します。

bundle installコマンドでインストールしたgemを利用するには、bundle exec から実行しなければなりません。例えば、railsコマンドを実行する場合、bundlerを使ってインストールしたgemを利用した場合は、次のコマンドを実行します。

bundle execの使用例

$ bundle exec rails s

この例では、「rails s」を実行する際、bundlerを使ってインストールしたgemを利用しているので、「bundle exec」から実行しています。

まとめ

これまで説明したように、bundlerは、Ruby on Rails開発で必要とされるgemパッケージを管理する仕組みで、特にチームで開発する際は必須と言えるでしょう。ただし、コマンドラインやターミナルから実行する仕組みであり、コマンドやオプションが多いので、使い難いと感じる方がいるかもしれません。

しかし、よく使うコマンドは多くありません。また、設定ファイルさえきちんと管理できていれば、とても便利な仕組みです。ぜひ、使い方をマスターして、Ruby on Railsの開発に活用してください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。