Установка Ruby on Rails на CentOS 8

Что такое Ruby on Rails?
Ruby on Rails — это бесплатный фреймворк для веб‑разработки на языке Ruby. Он использует архитектуру «модель‑вид‑контроллер» (MVC) и сочетает Ruby с HTML, CSS и JavaScript для ускорения разработки веб‑приложений. Кратко: Rails стандартизирует структуру приложений и автоматизирует повторяющиеся задачи.
Важно: этот гид ориентирован на CentOS 8 и установку через RVM (Ruby Version Manager). RVM помогает устанавливать и переключать версии Ruby на одном сервере.
Требования
- Сервер с CentOS 8.
- Настроен root‑доступ или пользователь с правами sudo.
Шаг 1 — Установка зависимостей и RVM
Сначала установите curl и gnupg2:
dnf install curl gnupg2 -yИмпортируйте публичные ключи RVM для проверки пакета:
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDBОжидаемый пример вывода:
gpg: key 105BD0E739499BDB: 8 signatures not checked due to missing keys
gpg: key 105BD0E739499BDB: public key "Piotr Kuczynski <[email protected]>" imported
gpg: key 3804BB82D39DC0E3: 108 signatures not checked due to missing keys
gpg: key 3804BB82D39DC0E3: "Michal Papis (RVM signing) <[email protected]>" not changed
gpg: no ultimately trusted keys found
gpg: Total number processed: 2
gpg: imported: 1
gpg: unchanged: 1
Далее загрузите и установите стабильную версию RVM:
curl -sSL https://get.rvm.io | bash -s stableПример успешного вывода установки RVM (сокращённо):
Downloading https://github.com/rvm/rvm/archive/1.29.9.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.9/1.29.9.tar.gz.asc
gpg: Signature made Wednesday 10 July 2019 04:31:02 AM EDT
gpg: using RSA key 7D2BAF1CF37B13E2069D6956105BD0E739499BDBGpg: Good signature from "Piotr Kuczynski <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 7D2B AF1C F37B 13E2 069D 6956 105B D0E7 3949 9BDB
GPG verified '/usr/local/rvm/archives/rvm-1.29.9.tgz'
Creating group 'rvm'
Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete:
Активируйте переменные окружения RVM в текущей сессии:
source /etc/profile.d/rvm.shУстановите системные зависимости, которые потребуются для сборки Ruby:
rvm requirementsПример вывода об успешной установке зависимостей:
Checking requirements for centos.
Installing requirements for centos.
Installing required packages: patch, autoconf, automake, bison, gcc-c++, libffi-devel, libtool, make, patch, readline-devel, ruby, sqlite-devel, zlib-devel, glibc-headers, glibc-devel, openssl-devel.........................................
Requirements installation successful.
Пояснение: команда rvm requirements проверит и предложит набор пакетов, необходимых для компиляции и работы выбранных версий Ruby.
Шаг 2 — Установка конкретной версии Ruby
Просмотрите доступные версии Ruby:
rvm list known(В выводе будут перечислены поддерживаемые версии Ruby: от старых MRI до ruby-head.)
Чтобы установить Ruby 2.6.3 (пример из оригинального руководства):
rvm install 2.6.3Установите эту версию как «по умолчанию» для системы:
rvm use 2.6.3 --defaultОжидаемый вывод:
Using /usr/local/rvm/gems/ruby-2.6.3
Проверьте установленную версию Ruby:
ruby --versionПример вывода:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
Важно: при установке современных приложений имеет смысл выбирать актуальную поддерживаемую версию Ruby. В этом примере использована 2.6.3, но вы можете выбрать более новую версию, если ваш проект это поддерживает.
Шаг 3 — Установка Rails
После успешной установки Ruby установите Rails через RubyGems:
gem install railsПроверьте версию Rails:
rails -vОжидаемый вывод:
Rails 6.0.2.1
Теперь у вас установлены Ruby, RVM и Rails, и вы можете создавать Rails‑приложения.
Краткая методология (микро‑план действий)
- Установить системные пакеты (curl, gnupg2).
- Импортировать GPG‑ключи RVM.
- Установить RVM и активировать его в окружении.
- Выполнить rvm requirements для установки зависимостей.
- Установить нужную версию Ruby и назначить её по умолчанию.
- Установить Rails через gem и проверить rails -v.
Альтернативы
- rbenv: более «микро» менеджер версий Ruby, предпочитаемый за простоту и минимальный набор функций; если вы используете окружения типа rbenv или chruby, выбирайте их вместо RVM.
- Docker: запуск Rails‑приложения в контейнере избавляет от необходимости менять системный Ruby и упрощает переносимость окружений.
Когда установка может не сработать — распространённые ошибки и решения
- Ошибка GPG/ключи: проверьте сетевой доступ к keyserver или используйте альтернативный keyserver.
- Отсутствуют dev‑пакеты (openssl-devel, libffi-devel и другие): установите их через dnf вручную.
- Проблемы с компиляцией (gcc): убедитесь, что установлены пакеты gcc, make и соответствующие заголовки.
- Проблемы с правами: если вы устанавливали RVM в /usr/local/rvm, убедитесь, что группа rvm и права настроены корректно.
Контрольный список по ролям
- Для системного администратора: убедиться, что сервер обновлён, установлены базовые dev‑пакеты, доступен интернет и хватает свободного диска.
- Для разработчика: проверить совместимость версии Rails и Ruby для проекта, обновить зависимости в Gemfile после установки.
- Для инженера DevOps: рассмотреть использование Docker/CI и автоматизировать установку окружения в конфигурации CI.
Критерии приёмки
- Команда ruby –version возвращает ожидаемую версию.
- rails -v возвращает установленную версию Rails.
- Создаётся и запускается минимальное приложение rails new test_app с последующим запуском сервера (rails server) без ошибок.
Глоссарий (1‑строчная шпаргалка)
- RVM — менеджер версий Ruby, позволяет устанавливать и переключать Ruby.
- gem — пакетный менеджер для Ruby.
- Rails — веб‑фреймворк для Ruby, использует MVC.
Заключение
В этом руководстве показано, как установить RVM, Ruby и Rails на CentOS 8. Подход с RVM удобен, когда нужно управлять несколькими версиями Ruby на одном сервере. Если вам важна консистентность окружений в командах, рассмотрите альтернативы вроде rbenv или контейнеризации с Docker.
Примечание: для подробной официальной документации посетите Ruby Doc и официальные страницы RVM и Rails.