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