Gestiunea Dependențelor cu Gem și Bundler: Gemfile, bundle install și bundle exec în Ruby

Ghid complet pentru pachete în ecosistemul Ruby: instalarea librăriilor (gems), declararea dependențelor în Gemfile, blocarea versiunilor cu Gemfile.lock și izolarea mediului cu bundle exec.

Sintaxă
bundle install | bundle exec puma | gem install rails

În ecosistemul Ruby, o bibliotecă software se numește Gem. Managerul oficial integrat de pachete este comanda gem, iar orchestrarea proiectelor cu cerințe complexe de versiuni este asigurată de instrumentul standard Bundler.

Structura unui fișier Gemfile de producție
# Fișier: Gemfile
source "https://rubygems.org"

ruby ">= 3.2.0"

# Framework web și server de aplicație:
gem "rails", "~> 7.1.0"
gem "puma", ">= 6.4"

# Drivere de baze de date:
gem "pg", "~> 1.5"

# Grupuri specifice pe medii de rulare:
group :development, :test do
  gem "rspec-rails", "~> 6.1"
  gem "rubocop", require: false # Linter oficial de stil
end
Comenzile esențiale Bundler în terminal
# 1. Instalarea tuturor dependențelor din Gemfile (creează Gemfile.lock):
$ bundle install

# 2. Rularea unei comenzi în contextul exact al versiunilor din Gemfile.lock:
# (PREVINE conflictele cu alte versiuni de gem-uri instalate global pe mașină):
$ bundle exec puma -C config/puma.rb

# 3. Actualizarea unui gem la cea mai nouă versiune compatibilă:
$ bundle update rails