1.2.4 Bundler
После создания нового приложения Rails следующий шаг – использование Bundler
, для установки и включения gemов, необходимых приложению. Что подразумевает открытие Gemfile
в Ваше любимом текстовом редакторе:
$ cd first_app/ $ mate Gemfile
Результат должен выглядеть примерно как Листинг 1.1.
Gemfile
в first_app
каталоге. source 'http://rubygems.org' gem 'rails', '3.0.7' # Bundle edge Rails instead: # gem 'rails', :git => 'git://github.com/rails/rails.git' gem 'sqlite3-ruby', :require => 'sqlite3' # Use unicorn as the web server # gem 'unicorn' # Deploy with Capistrano # gem 'capistrano' # To use debugger # gem 'ruby-debug' # Bundle the extra gems: # gem 'bj' # gem 'nokogiri', '1.4.1' # gem 'sqlite3-ruby', :require => 'sqlite3' # gem 'aws-s3', :require => 'aws/s3' # Bundle gems for certain environments: # gem 'rspec', :group => :test # group :test do # gem 'webrat' # end
Большинство этих строк закомментированы символом хеш #
; они здесь для того, чтобы показать Вам некоторые обычно необходимые gemы и дать примеры синтаксиса Bundler. Сейчас нам не понадобятся никакие gemы кроме дефолтных: Rails как таковой, и gem для взаимодействия Ruby с базой данных SQLite.
Если Вы не укажете номер версии gem
команде, Bundler автоматически установит самую последнюю версию. К сожалению, обновления gem часто вызывают незначительные, но потенциально сбивающие с толку поломки, так что, в этом учебном руководстве мы обычно будем явно включать номер версии известной как работавшей, как видно в Листинге 1.3. 10
Gemfile
с явной версией sqlite3-ruby гема.source 'http://rubygems.org' gem 'rails', '3.0.7' gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'
Это преобразует строку
gem 'sqlite3-ruby', :require => 'sqlite3'
из Листинга 1.1 в
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'
которая принуждает Bundler, к установке версии 1.3.2 гема sqlite3-ruby. (Отметьте, что Вам нужна версия 1.2.5 гема sqlite3-ruby если Вы используете OS X Leopard, и версия 1.3.2
для Snow Leopard, чтобы скомпилировать должным образом.)
Если Вы используете Linux Ubuntu, Вам, возможно, придется установить несколько других пакетов в этом пункте:11
$ sudo apt-get install libxslt-dev libxml2-dev libsqlite3-dev # только для Linux
Как только Вы составили надлежащий Gemfile
, установите гемы, используя bundle install
:12
$ bundle install Fetching source index for http://rubygems.org/ . . .
Это может занять некоторое время, но когда это будет сделано, наше приложение, будет готово к работе.
# coding: utf-8