Для профессионального Ruby-разработчика умение работать с несколькими версиями Ruby — критически важный навык. Вот комплексный подход, который я рекомендую.
# Установка версии
rbenv install 3.2.2
# Установка версии по умолчанию
rbenv global 3.2.2
# Установка версии для конкретного проекта
rbenv local 2.7.8
# Установка версии
rvm install 3.1.4
# Использование версии
rvm use 3.1.4
# Создаем в корне проекта
echo "3.1.4" > .ruby-version
# В Gemfile
ruby '```> 3.1.4'
# Список установленных версий
rbenv versions
# Установить глобальную версию
rbenv global 3.2.2
# Использовать версию только в текущей сессии
rbenv shell 2.7.8
Каждая версия Ruby имеет свои gem-окружения. Для изоляции:
# Установить гемы для текущей версии Ruby
bundle install
FROM ruby:3.2.2-slim
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
# .envrc в папке проекта
layout rbenv
rbenv version-name
rbenv rehash
sudo apt-get install -y build-essential libssl-dev zlib1g-dev
gem pristine --all
Пример для GitHub Actions:
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
ruby-version: ['3.0.0', '3.1.0', '3.2.0']
steps:
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundle exec ruby-next nextify lib/
Резюмируем: Для эффективного управления версиями Ruby используйте rbenv/RVM, указывайте версии в .ruby-version и Gemfile, изолируйте гемы через Bundler, а для сложных сценариев применяйте Docker. Автоматизируйте переключение версий и тестирование в CI. Помните — чистое и предсказуемое окружение основа продуктивной разработки на Ruby.