RubyのBundlerについていま一度調べてみる
bundlerとは
gemを管理してくれる仕組みです
bundler自体もgemになっています
インストール方法
Rubygemsが入っている状態で以下のコマンドでインストールできます
gem install bundler
<br />## 概要 bundlerはGemfileというファイルでgemを管理します GemfileにインストールしたいGemを決められた書式で書くと 以下のコマンドでインストールできます
bundle install
<br />ちなみにGemfileがない状態で実行すると以下の様なエラーがでます
Could not locate Gemfile
<br />各種設定状況を確認するためには、以下のコマンドを実行します
bundle env
<br />まだ何も設定していない状態では、以下のようになります。
Bundler 1.7.3
Ruby 2.1.0 (2013-12-25 patchlevel 0) [x86_64-darwin13.0]
Rubygems 2.2.0
GEM_HOME
Gemfile
Gemfile.lock
<br />試しにGemfileに1つ追加してみます ```Gemfile gem 'jp_prefecture'
この状態でbundle envを実行すると以下のようになります
Bundler 1.7.3 Ruby 2.1.0 (2013-12-25 patchlevel 0) [x86_64-darwin13.0] Rubygems 2.2.0 GEM_HOME Gemfile gem 'jp_prefecture' Gemfile.lock <No Gemfile.lock found>
Gemfileのところに追加したものが出ています
これで「bundle install」を実行すればjp_prefectureのgemがインストールされるはずですが、以下の様なエラーメッセージが出ました
Resolving dependencies... Your Gemfile has no gem server sources. If you need gems that are not already on your machine, add a line like this to your Gemfile: source 'https://rubygems.org' Could not find gem 'jp_prefecture (>= 0) ruby' in the gems available on this machine.
実は、Gemfileにはgemをインストールするソースを必ず指定しなければなりません
気を取り直して、sourceを指定してみます
source 'https://rubygems.org'
gem 'jp_prefecture'
これで「bundle install」を実行するとインストールが出来ました
Fetching gem metadata from https://rubygems.org/.. Resolving dependencies... Installing jp_prefecture 0.8.0 Using bundler 1.7.3 Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
ちなみに以下のように–pathを指定すると、指定したパスにインストール出来ます
指定したパスにインストールすることにより、特定のアプリだけにインストールするなどといった事が可能です
bundle install --path .bundle
インストールされているgemを確認する場合は以下のコマンドを実行します
bundle exec gem list
[~/Develop/bundletest] *** LOCAL GEMS *** bundler (1.7.3) jp_prefecture (0.8.0)
このとき、bundle execをつけないと、bundlerの管理下ではないシステムの方にインストールされているgemの一覧が出てきます
bundle installすると、「Gemfile.lock」というファイルが生成されます
これは、インストールした(またはインストールする)Gemのバージョンを固定するもので、他の環境でも同じバージョン構成でgemをインストールしたい場合に役に立ちます
bundlerでインストールしたgemを実際のrubyのコードから使う場合は、以下のようにします
require 'bundler' Bundler.require
TAG
新しいことや難しい課題に挑戦することにやりがいを感じ、安定やぬるい事は退屈だと感じます。 考えるより先に手が動く、肉体派エンジニアで座右の銘は諸行無常。 大事なのは感性、プログラミングにおいても感覚で理解し、感覚で書きます。
TAG
- Android
- AWS
- Bitrise
- CodePipeline
- Firebase
- HTML
- iOS
- IoT
- JavaScript
- KPI
- Linux
- Mac
- Memcached
- MGRe
- MGReのゆるガチエンジニアブログ
- MySQL
- PHP
- PICK UP
- PR
- Python
- Ruby
- Ruby on Rails
- SEO
- Swift
- TIPS
- UI/UX
- VirtualBox
- Wantedly
- Windows
- アクセス解析
- イベントレポート
- エンジニアブログ
- ガジェット
- カスタマーサクセス
- サーバ技術
- サービス
- セキュリティ
- セミナー・展示会
- テクノロジー
- デザイン
- プレスリリース
- マーケティング施策
- マネジメント
- ラボ
- リーンスタートアップ
- 企画
- 会社紹介
- 会社紹介資料
- 勉強会
- 実績紹介
- 拡張性
- 採用
- 日常
- 書籍紹介
- 歓迎会
- 社内イベント
- 社員インタビュー
- 社長ブログ
- 視察
- 開発環境