- Home »

Как установить Ruby on Rails через RVM на Ubuntu 24
Привет! Сегодня разберём, как правильно и без лишних танцев с бубном установить Ruby on Rails через RVM на Ubuntu 24. Эта тема актуальна для всех, кто работает с Ruby проектами на серверах — от локальной разработки до полноценного продакшена. RVM (Ruby Version Manager) — один из самых популярных инструментов для управления версиями Ruby, который значительно упрощает жизнь разработчикам и системным администраторам.
Почему именно RVM? Потому что он позволяет легко переключаться между версиями Ruby, изолировать гемы для разных проектов и не засорять системную установку. Это особенно критично, когда у вас на сервере крутится несколько Rails-приложений с разными требованиями к версиям Ruby.
Почему RVM — это правильный выбор
Прежде чем погружаться в команды, давайте разберём, почему RVM стоит вашего внимания. В отличие от системной установки Ruby через apt, RVM даёт вам полный контроль над версиями и окружением. Это означает, что вы можете:
- Устанавливать и переключаться между любыми версиями Ruby
- Создавать изолированные наборы гемов (gemsets) для каждого проекта
- Обновлять Ruby без риска сломать существующие приложения
- Легко откатываться к предыдущим версиям при необходимости
Подготовка системы
Начнём с подготовки свежей Ubuntu 24. Первым делом обновляем систему и устанавливаем необходимые зависимости:
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl gpg build-essential libssl-dev libreadline-dev zlib1g-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs npm
Эти пакеты критически важны для корректной работы RVM и компиляции Ruby. Без них можете словить кучу ошибок на этапе установки.
Установка RVM
Теперь самое интересное — установка RVM. Сначала импортируем GPG ключи для безопасности:
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
Затем скачиваем и устанавливаем RVM:
curl -sSL https://get.rvm.io | bash -s stable
После установки перезагружаем shell или выполняем:
source ~/.rvm/scripts/rvm
Проверяем, что RVM установился корректно:
rvm --version
Установка Ruby через RVM
Теперь можем установить Ruby. Сначала посмотрим доступные версии:
rvm list known
Для Rails рекомендую использовать последнюю стабильную версию Ruby. На момент написания статьи это 3.2.0:
rvm install 3.2.0
rvm use 3.2.0 --default
Проверяем установку:
ruby --version
which ruby
Установка Rails и настройка окружения
Теперь устанавливаем Rails. Сначала обновляем RubyGems:
gem update --system
Затем устанавливаем Rails:
gem install rails
Проверяем установку:
rails --version
Создание и настройка gemsets
Одна из главных фишек RVM — это gemsets. Они позволяют изолировать гемы для разных проектов. Создадим gemset для нашего проекта:
rvm gemset create myproject
rvm use 3.2.0@myproject
Теперь все гемы будут устанавливаться в изолированное окружение. Это особенно полезно, когда у вас несколько проектов с разными версиями одних и тех же гемов.
Практические примеры и кейсы
Давайте рассмотрим несколько реальных сценариев использования:
Сценарий | Команда | Когда использовать |
---|---|---|
Переключение между версиями Ruby | rvm use 3.1.0 | При работе с legacy проектами |
Создание .rvmrc для автоматического переключения | echo “rvm use 3.2.0@myproject” > .rvmrc | Для автоматизации в проектах |
Установка конкретной версии Rails | gem install rails -v 7.0.4 | Для совместимости с определёнными версиями |
Оптимизация и производительность
Чтобы ускорить установку гемов, можно отключить генерацию документации:
echo "gem: --no-document" >> ~/.gemrc
Также рекомендую настроить Bundler для более быстрой установки зависимостей:
gem install bundler
bundle config set --global jobs 4
Альтернативные решения
Стоит упомянуть альтернативы RVM:
- rbenv — более лёгкий менеджер версий Ruby
- asdf — универсальный менеджер версий для разных языков
- Docker — контейнеризация всего окружения
Сравнение популярности:
Менеджер | GitHub звёзд | Плюсы | Минусы |
---|---|---|---|
RVM | ~5k | Богатая функциональность, gemsets | Тяжёлый, может конфликтовать с shell |
rbenv | ~16k | Лёгкий, простой | Нет встроенных gemsets |
asdf | ~21k | Универсальный для многих языков | Может быть излишним для Ruby-only проектов |
Автоматизация и скрипты
Для автоматизации развёртывания можно создать скрипт установки:
#!/bin/bash
# install_rails.sh
# Устанавливаем зависимости
sudo apt update
sudo apt install -y curl gpg build-essential libssl-dev libreadline-dev zlib1g-dev libyaml-dev libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev nodejs npm
# Импортируем GPG ключи
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
# Устанавливаем RVM
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
# Устанавливаем Ruby и Rails
rvm install 3.2.0
rvm use 3.2.0 --default
gem update --system
gem install rails
echo "Установка завершена!"
rails --version
Интеграция с другими инструментами
RVM отлично интегрируется с:
- Passenger для продакшен-серверов
- Capistrano для автоматизации деплоя
- Docker для контейнеризации
- Jenkins/GitHub Actions для CI/CD
Возможные проблемы и решения
Самые частые проблемы и их решения:
- Ошибки компиляции — проверьте наличие build-essential и зависимостей
- Проблемы с PATH — убедитесь, что RVM правильно настроен в .bashrc
- Конфликты с системным Ruby — используйте rvm use –default
- Медленная установка гемов — настройте parallel установку в Bundler
Безопасность и лучшие практики
Несколько важных моментов по безопасности:
- Всегда проверяйте GPG подписи при установке RVM
- Используйте Bundler для управления зависимостями
- Регулярно обновляйте Ruby и гемы
- Изолируйте проекты через gemsets
Заключение и рекомендации
RVM остаётся одним из самых мощных инструментов для управления Ruby окружением, особенно в продакшене. Да, он может показаться избыточным для простых случаев, но когда у вас несколько проектов с разными требованиями — это настоящее спасение.
Основные рекомендации:
- Используйте RVM для продакшен-серверов с несколькими Rails-приложениями
- Настройте gemsets для каждого проекта
- Автоматизируйте установку через скрипты
- Регулярно обновляйте Ruby и следите за безопасностью
Если вам нужен сервер для тестирования или продакшена, рекомендую посмотреть VPS или выделенные серверы — там можно спокойно экспериментировать с разными конфигурациями.
Удачи в настройке! И помните — правильно настроенное окружение это половина успеха в разработке.
В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.
Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.