infoMore than 5 years have passed since last update.
Bundlerの使い方
Last updated at Posted at 2016-03-27
gemとは?
- 決まったフォーマットで提供されるRuby言語用のライブラリを「gem」と呼びます。
- 「gem」には例えば以下のようなものがある。
- Rails(Webフレームワーク)
- Sinatra(Webフレームワーク)
- omniauth(認証機能)
- unicorn(アプリケーションサーバ)
- Rspec(テストフレームワーク)
...etc
- PerlでいうCPAN、phpでいうpear等にあたる
Rubygemsとは
Bundlerとはなんぞや
- gemは以下のように個別に手動インストールする事が可能です。
- gem install "sinatra"
- gem install "unicorn"
- gem install "omniauth"
- しかし、様々なgem(ライブラリ)を組み合わせて使っていると「gemAのver1とgemBのVer2はうまく動くけど、最新バージョン同士だとうまく動かない。」という互換性の問題が出てくる場合があります。
- また、複数人、複数環境で開発を行う場合は、各環境で使うライブラリの名前、バージョンを合わせる必要があります。
- こういった場合に、gem同士の互換性を保ちながら各gemの導入、管理を行ってくれるのがBundlerです。
- Gemfileというファイルにインストールしたいgemを記述し、それを元にbundlerを使ってインストールを行います。
- bundler本体以外のgemは基本的にbundler経由でインストールを行うのがおすすめです。
Bundlerのインストールの仕方
- Bundlerのインストール
- Bundlerもgemの1つです。手動ダウンロードしましょう
- 導入後はバージョンが表示される事を確認してください。
Bundlerの使い方
- Gemfileの作成
- bundle init
- 上記実行するとGemfileという雛形ファイルが作成されます
- 使用したいgemをGemfileに記述する
- Gemfileを編集する
- Gemfileの先頭に、インストール元はrubygemsですよ、と宣言を行います。
- 続けてインストールしたいgemを記述します
- gem "sinatra"
- gem "unicorn"
- gem "omniauth"
- gemの指定の際に、バージョンの指定も可能です
- Gemfileにリスト化したgemを一括インストール
- 一括インストール
- bundle install --path vendor/bundle
- --pathでインストール先を指定可能。一度でも--path指定でインストールしたら、次回以降はpath指定無しでbundle installを行っても同じpathが選択されます。
- この時、インストールしたgemの名前とバージョンを記載した「gemfile.lock」というファイルが作成されます。
- インストールしたgemをプログラムソース上でロード
- まずソース上でrubygemsをrequireします。
- 以下のように記述するとインストールした内容からrequireを行うように(指定無しだとシステム最新のgemを使ってしまいます)
- プログラムを実行する際は、最初にbundle execを実行します。(指定無しだと互換性を考慮せずにシステム最新のgemを使ってしまう)
参考
List of users who liked
556Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
What you can do with signing up