Установка Ruby on Rails с PostgreSQL на Rocky Linux
Кратко: это пошаговое руководство по установке Ruby on Rails на Rocky Linux с использованием PostgreSQL как СУБД и RVM для управления версиями Ruby. Вы установите RVM, Ruby 3, Node.js, yarn, создадите пользователя PostgreSQL, создадите проект Rails с базой данных PostgreSQL и запустите сервер разработки.
Важно: используйте отдельного системного пользователя для продакшен‑развертываний и замените примерные пароли и IP‑адреса на реальные значения вашей инфраструктуры.
О чем статья
Основная цель: показать практическую установку Rails + PostgreSQL на Rocky Linux. Также рассматриваются дополнительные шаги: зависимости, проверка версий, типичные ошибки, рекомендации по безопасности и контрольный список для ролей (администратор, разработчик, DevOps).
Что такое Ruby on Rails и RVM
- Ruby on Rails (Rails) — фреймворк для веб‑приложений на языке Ruby. Следует шаблону MVC (Model‑View‑Controller).
- RVM (Ruby Version Manager) — менеджер версий Ruby. Позволяет устанавливать и переключаться между версиями Ruby в системе.
Требования
Перед началом убедитесь, что у вас есть:
- Rocky Linux 8.x с правами sudo.
- Установленный PostgreSQL (см. секцию ниже или отдельную инструкцию «How to Install PostgreSQL on Rocky Linux»).
- Доступ к интернету для загрузки пакетов.
Пример тестовой машины в инструкции:
- ОС: Rocky Linux 8.4
- IP: 192.168.1.10

Установка RVM (Ruby Version Manager)
RVM упрощает работу с несколькими версиями Ruby на одной машине.
- Импортируйте GPG ключи разработчиков RVM.
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
curl -sSL https://rvm.io/pkuczynski.asc | gpg2 --import -- Установите RVM.
curl -L get.rvm.io | bash -s stableПосле установки загрузите профиль RVM в текущую сессию shell:
source /etc/profile.d/rvm.sh- Перезагрузите RVM и установите зависимости, необходимые для сборки Ruby:
rvm reload
rvm requirements run- Проверьте доступные версии Ruby в репозитории RVM:
rvm list known
Установка Ruby через RVM
Текущая версия Rails требует Ruby 2.5 или новее. Мы установим Ruby 3.x.
- Установите последнюю стабильную версию Ruby через RVM:
rvm install rubyПроцесс может занять время, так как производится сборка и установка зависимостей.

- Проверьте установленную версию:
rvm list
ruby --versionВ выводе вы увидите установленную версию, например ruby 3.0.0 или выше.
Установка Node.js и yarn
Rails использует JavaScript в части фронтенда. Для управления пакетами и сборки потребуется Node.js и yarn.
- Включите модуль Node.js версии 14:
sudo dnf module enable nodejs:14Подтвердите нажатием y и Enter.
- Установите nodejs и npm:
sudo dnf install nodejs npm -y- Установите yarn глобально:
npm install -g yarn- Проверьте версии:
node --version
yarn --versionПример вывода:
v14.17.5
1.22.17
Установка Rails
Команда gem входит в состав Ruby и позволяет устанавливать пакеты RubyGems, включая rails.
- Добавьте каталог /usr/local/bin в переменную PATH для текущего пользователя, чтобы система находила установленные бинарные файлы:
echo 'export PATH=$PATH:/usr/local/bin' >> ~/.bashrc
source ~/.bashrcВажно: если вы меняете PATH глобально для всех пользователей, редактируйте соответствующие файлы в /etc/profile.d с осторожностью.
- Установите Rails командой gem:
gem install railsКоманда установит необходимые гемы и интеграции для работы Rails с JavaScript.
- Проверьте версию Rails:
rails --versionПример вывода: Rails 6.1.4.1 (версии могут отличаться в момент установки).
Подготовка пользователя PostgreSQL
Перед созданием проекта убедитесь, что PostgreSQL установлен и запущен.
- Установите дополнительные зависимости для сборки расширений, требуемых для взаимодействия Rails с PostgreSQL:
sudo dnf install postgresql-devel libpq-devel -y- Войдите в оболочку PostgreSQL от имени пользователя postgres:
sudo -u postgres psql- Создайте роль для приложения, например appuser, с правом создавать базы и паролем userpassword:
CREATE ROLE appuser WITH CREATEDB LOGIN PASSWORD 'userpassword';- Проверьте список ролей:
\duВы увидите роль appuser в выводе. Выйдите из psql командой:
\q
Важно: используйте надежные пароли и храните их в защищенных хранилищах (vault). Для production лучше создать отдельного пользователя с минимально необходимыми правами.
Создание нового проекта Rails с PostgreSQL
- Создайте рабочую директорию, например /var/www, и перейдите в неё:
mkdir -p /var/www; cd /var/www- Создайте новый Rails проект с базой данных PostgreSQL:
rails new appname --database=postgresqlКоманда создаст директорию appname с каркасом приложения.
- Отредактируйте конфигурацию базы данных в config/database.yml, указав учётные данные, созданные ранее. Пример для development, test и production:
development:
<<: *default
database: appname_development
username: appuser
password: userpassword
host: localhost
port: 5432
test:
<<: *default
database: appname_test
username: appuser
password: userpassword
host: localhost
port: 5432
production:
<<: *default
database: appname_production
username: appuser
password: userpassword
host: localhost
port: 5432Сохраните файл и выйдите из редактора.
- Подготовьте базу и выполните миграции:
rails db:setup
rails db:migrate
- Запустите сервер разработки и укажите binding на IP сервера (замените IP на ваш сервер):
rails server --binding=192.168.1.10Сервер по умолчанию запускается в окружении development на порту 3000.

- Откройте браузер и перейдите по адресу:
Вы увидите стартовую страницу Rails.

Поздравляем — вы создали рабочий проект Rails с PostgreSQL.
Проверка и отладка — распространённые проблемы и решения
- Ошибка при сборке гемов с native extensions: убедитесь, что установлены gcc, make и соответствующие dev-пакеты, например gcc, make, openssl-devel.
- Невозможно подключиться к PostgreSQL: проверьте, что сервис запущен, и что host/port в database.yml совпадают с настройками PostgreSQL. Проверьте pg_hba.conf для разрешений соединений.
- rails не найден после установки gem: убедитесь, что путь /usr/local/bin присутствует в PATH и перезагрузите shell.
- Ошибки с yarn или node: проверьте версии node и yarn; при необходимости переустановите модуль nodejs и yarn.
Рекомендации по безопасности и продакшен‑настройке
- Не используйте встроенный сервер rails (puma в dev режиме) в production. Разверните приложение через Passenger, Puma с systemd или в контейнере за обратным прокси (Nginx/Apache).
- Настройте SSL/TLS на уровне веб‑сервера.
- Храните секреты и пароли в менеджере секретов или системах окружения, а не в репозитории.
- Настройте регулярные бэкапы PostgreSQL и мониторинг дискового пространства и SLI для базы данных.
Альтернативные подходы и расширения
- Если вы не хотите собирать Ruby из исходников, можно использовать пакеты rbenv или системы управления пакетами OS, хотя RVM остаётся удобным при одновременной работе с несколькими версиями Ruby.
- Для развёртывания рассмотрите Docker контейнеры с предустановленным Ruby и bundle, либо использование платформ PaaS, например Heroku или Railway.
- Вместо yarn можно применять esbuild или webpacker в зависимости от версии Rails и предпочтений по сборке фронтенда.
Контрольные списки по ролям
Администратор системы:
- Установить RVM, Ruby, Node.js и yarn.
- Настроить и обеспечить доступ к PostgreSQL.
- Настроить бэкап и мониторинг.
Разработчик:
- Проверить ruby –version и rails –version.
- Настроить локальное окружение и dotenv для секретов.
- Выполнить rails db:setup и миграции.
DevOps / Инженер по развёртыванию:
- Настроить systemd unit для puma или конфигурацию Passenger + Nginx.
- Настроить CI/CD для запуска миграций и деплоя.
- Обеспечить секреты в безопасном хранилище.
Мини‑методика быстрого развёртывания (4 шага)
- Установите RVM и Ruby, проверьте версии.
- Установите Node.js и yarn, проверьте сборку фронтенда.
- Создайте роль в PostgreSQL, настройте database.yml.
- Выполните rails db:setup, rails db:migrate, запустите сервер/процесс для продакшена.
Критерии приёмки
- rails –version возвращает установленную версию.
- ruby –version соответствует ожидаемой версии (3.x или выше).
- node –version и yarn –version выдают корректные значения.
- Приложение успешно подключается к PostgreSQL и выполняет миграции.
- По адресу http://
:3000/ доступна стартовая страница Rails.
Короткая сводка и следующие шаги
Вы установили Rails с PostgreSQL и запустили приложение в режиме разработки. Дальше рекомендуется подготовить продакшен‑склад: выбрать сервер приложений (Passenger/ Puma), настроить Nginx как обратный прокси, обеспечить SSL, автоматические бэкапы PostgreSQL и настройку CI/CD.
Полезные ссылки и команды для быстрого доступа
- Проверить версии: ruby –version, rails –version, node –version, yarn –version
- Установить зависимости для PostgreSQL: sudo dnf install postgresql-devel libpq-devel -y
- Подключиться к PostgreSQL: sudo -u postgres psql
Часто задаваемые вопросы
Q: Можно ли использовать другую версию PostgreSQL? A: Да, Rails поддерживает разные версии PostgreSQL. Убедитесь, что libpq-devel совместим с вашей версией.
Q: Нужно ли устанавливать RVM в production? A: В production часто используют упакованные артефакты (Docker, пакеты, RPM) или rbenv. RVM удобен на серверах разработчика и при работе с несколькими версиями.
Q: Как хранить пароль базы в production? A: Используйте менеджеры секретов или переменные окружения, интегрируйте с системами vault.
Вы завершили базовую установку и подготовку Rails с PostgreSQL на Rocky Linux. Удачной разработки!
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента