実行環境:
Rails 3.0.7
Bundler 1.0.12
Rails3アプリケーションで必要な gem ファイルをインストールする場合、bundler を利用するととても便利です。Rails 3.0.7
Bundler 1.0.12
手順は簡単で、アプリケーションのルートディレクトリ(Rails.root)内にある Gemfile に必要な gem ファイルを記載し、bundle コマンドを実行すると Gemfile の記載に従ってインストールしてくれます。
Gemfileにインストールするgemファイルの情報を記載
実行モードを問わずインストールする場合はこんな感じで書くgem 'ruby-debug' gem 'ruby-debug19', :require => 'ruby-debug' gem 'jquery-rails', '>= 0.2.6'
特定の実行モードでインストールするときはこんな感じで書く
group :development, :test do gem 'rspec' gem 'rspec-rails' end
bundle コマンドを実行してインストール
まずはカレントディレクトリをアプリケーションのルートに変更しておきます。bundle コマンドはカレントディレクトリの Gemfile を読み込むからです。次にインストールする前に gem のインストール先についてぜひ考えておきましょう。つまりサーバ全体にインストールするか、それともアプリケーション内にインストールするかということです。
単純に
bundle installとうつと、カレントディレクトリにあるGemfileの内容を元に ruby/gems 配下にインストールします。ですのでサーバ内の全環境にインストールします。
インストール先の情報を指定して
bundle install --path vendor/bundleとすると、#{Rails.root}/vendor/bundle 配下にインストールされ、そのアプリケーションの中だけにインストールされることになります。(インストール先は別にこの名前じゃなくてもよいみたいですが…)
1つのサーバ内で1つのアプリケーションしかないのであればどちらでも大差ないですが、複数のアプリケーションが、複数の Rails のバージョンで動いていると、様々なバージョンの gem が混在することになって気持ち悪いです。なので、というかメンテナンス性という点からも、アプリケーションの中にインストールした方がよいかと思われます。
ちなみに一度、インストール先を指定して bundle install コマンドを実行すると、Rails.root 配下に .bundle/config というファイルが作成されます。
インストール先を記憶してくれているので、次回以降は単に --- BUNDLE_PATH: vendor/bundle BUNDLE_DISABLE_SHARED_GEMS: "1"
bundle installとするだけで同じディレクトリにインストールしてくれます。
bundle でインストールされた gem ファイル一覧
アプリケーションのルートディレクトリ(Rails.root)に移動してbundle listコマンドを実行すると、bundleでインストールされたgemリストが表示されます。
Gems included by the bundle: * abstract (1.0.0) * actionmailer (3.0.7) * actionpack (3.0.7) * activemodel (3.0.7) * activerecord (3.0.7) * activeresource (3.0.7) * activeresupport (3.0.7) * arel (2.0.9) * builder (2.1.2) * bundler (1.0.12) * erubis (2.6.6) (以下略)
0 件のコメント:
コメントを投稿