Краткий справочник

Шпаргалка по менеджеру зависимостей Ruby Bundler

Краткое руководство по Bundler в Ruby: bundle install, обновление гемов, синтаксис Gemfile, деплой на проде и локальная разработка.

· Опубликовано

Bundler Bundler управляет зависимостями приложения на протяжении всего жизненного цикла проектов на Ruby.

Популярные команды CLI

bundle install          # Установить все необходимые гемы
bundle install -j4      # Параллельная установка в 4 потока
bundle update           # Обновить все гемы до новейших подходящих версий
bundle update rails     # Обновить только конкретный гем
bundle outdated         # Проверить наличие устаревших гемов

bundle exec <command>   # Выполнить команду в контексте бандла
bundle show <gemname>   # Показать путь к директории установки гема
bundle info <gemname>   # Показать метаданные гема
bundle gem <my_gem>     # Создать шаблон нового гема

Синтаксис Gemfile

Базовые объявления

source 'https://rubygems.org'

gem 'rails', '~> 7.1.0'
gem 'pg', '>= 1.5'
gem 'puma'

Ссылки на Git и GitHub

# Прямой репозиторий GitHub
gem 'devise', github: 'heartcombo/devise'

# Конкретная ветка или тег Git
gem 'devise', github: 'heartcombo/devise', branch: 'main'
gem 'nokogiri', git: 'https://github.com/sparklemotion/nokogiri.git', tag: 'v1.16.0'

Группы зависимостей

group :development, :test do
  gem 'rspec-rails'
  gem 'factory_bot_rails'
end

group :production do
  gem 'aws-sdk-s3'
end

Развертывание на проде (Production)

В CI/CD пайплайнах и на серверах устанавливайте с флагом deployment для защиты Gemfile.lock от изменений:

# Современный деплой с Bundler
bundle config set --local deployment 'true'
bundle config set --local without 'development test'
bundle install

Локальное переопределение гемов

Указать локальную папку с исходным кодом гема для активной разработки:

bundle config local.my_gem ~/Developer/Projects/my_gem

Связанные темы