Гид по технологиям

Установка Ruby on Rails 5 и PostgreSQL на CentOS 7

• 6 min read • Разработка • Обновлено 18 Nov 2025
Установка Ruby on Rails 5 с PostgreSQL на CentOS 7
Установка Ruby on Rails 5 с PostgreSQL на CentOS 7

Кратко: пошаговая инструкция по установке RVM, Ruby 2.3.1, Node.js, RubyGems и Rails 5 на CentOS 7 с конфигурацией PostgreSQL для разработки. Включены проверенные команды, контрольные списки, советы по безопасности и типичные ошибки.

Введение

Ruby on Rails (RoR), часто просто «rails», — серверный фреймворк для веб‑приложений на языке Ruby, реализующий архитектуру MVC (Model‑View‑Controller). Rails распространяется под лицензией MIT и предоставляет стандартные структуры для баз данных, веб‑сервисов и страниц. В этом руководстве показано, как установить Rails 5 на CentOS 7, подключив PostgreSQL как базу данных, и как создать первое приложение.

Важно

  • Требования: сервер с CentOS 7 и права root.
  • Подготовьте резервную копию важных данных перед изменениями в системе.

Предварительные требования

  • Сервер с CentOS 7
  • Доступ root (или sudo)
  • Подключение к интернету для загрузки пакетов

Шаг 1 — Установка RVM

RVM (Ruby Version Manager) — инструмент для управления несколькими версиями Ruby на одной машине. RVM основан на bash и ruby и упрощает установку/переключение версий.

Убедитесь, что на системе установлен curl:

yum install curl

Сначала импортируйте ключ репозитория для gpg:

curl -sSL https://rvm.io/mpapis.asc | gpg --import -

Установите стабильную ветку RVM вместе с Ruby:

curl -sSL https://get.rvm.io | bash -s stable --ruby

Затем загрузите скрипты RVM в текущую сессию:

source /usr/local/rvm/scripts/rvm

Установка RVM на CentOS 7

Alt: Снимок экрана процесса установки RVM на CentOS 7 в терминале с командами установки.

Советы по удобству

  • Если не хотите глобально изменять окружение shell, добавьте строку source в ~/.bashrc.
  • Альтернатива: rbenv — легче и минималистичнее, но требует дополнительной настройки сборки Gems.

Шаг 2 — Установка Ruby

В данном руководстве используется стабильная на момент написания Ruby 2.3.1. Установим её через rvm и сделаем версией по умолчанию:

rvm get stable --autolibs=enable
rvm install ruby-2.3.1

Сделаем установленную версию дефолтной:

rvm --default use ruby-2.3.1

Проверьте версию Ruby:

ruby -v

Установка Ruby с помощью RVM

Alt: Терминал с выводом версии Ruby после установки через RVM.

Когда выбирать альтернативы

  • rbenv полезен на серверах, где хотят минимальную абстракцию. RVM удобнее для локальной разработки и автоматического управления зависимостями сборки.

Шаг 3 — Установка Node.js

Rails использует JavaScript runtime для сборки asset pipeline. На Linux удобно ставить Node.js как runtime.

Установите Node.js из репозитория NodeSource:

curl -sL https://rpm.nodesource.com/setup_6.x | sudo -E bash -
yum -y install nodejs

Проверьте установку:

node -v
npm -v

Примечание

  • Можно использовать более новую ветку Node.js, совместимую с вашей версией Rails. На старых проектах иногда целесообразно держать 6.x для совместимости.

Шаг 4 — Настройка gem

RubyGems — менеджер пакетов Ruby и поставляет инструмент gem. Обновите систему gem и при желании отключите установку документации для экономии места:

gem update --system
gem -v

Отключение документации (опционально):

echo "gem: --no-document" >> ~/.gemrc

Шаг 5 — Установка Ruby on Rails 5

Установите Rails версии 5.0.0 через gem:

gem install rails -v 5.0.0

Проверьте версию Rails:

rails -v

Ожидаемый вывод:

Rails 5.0.0

Rails 5.0 установлен на CentOS 7 с Ruby 2.3.1.

Шаг 6 — Настройка PostgreSQL для разработки Rails

В этом разделе мы установим и настроим PostgreSQL как СУБД для Rails.

Установка PostgreSQL:

yum -y install postgresql-server postgresql-devel postgresql-contrib

Инициализация базы данных:

postgresql-setup initdb

По умолчанию аутентификация в PostgreSQL на CentOS настроена не на пароль. Отредактируйте pg_hba.conf и переключитесь на md5 для локальных подключений:

vim /var/lib/pgsql/data/pg_hba.conf

Пример изменений:

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Запустите сервис PostgreSQL:

systemctl start postgresql

Проверка состояния и порта (5432):

netstat -plntu
systemctl status postgresql

Установка PostgreSQL на CentOS

Alt: Терминал с выводом состояния сервиса PostgreSQL и информацией о прослушиваемом порте.

Создаём пользователя и базу для разработки

Переключитесь на пользователя postgres и запустите psql:

su - postgres
psql

Установите пароль для postgres:

\password postgres
Enter new password:

Создайте роль для разработки:

create role rails_dev with createdb login password 'aqwe123';

Проверьте роль:

\du

Теперь у вас есть пользователь rails_dev и PostgreSQL готов для разработки.

Создание базы для разработки RoR

Alt: Создание роли в psql и вывод списка пользователей базы данных.

Безопасность

  • Замените простой пароль (‘aqwe123’) на сложный и храните его в менеджере секретов.
  • Для продакшена рассмотрите использование unix_socket и доверенной аутентификации внутри защищённой сети.

Шаг 7 — Создание первого приложения Rails с PostgreSQL

Создаём приложение с PostgreSQL как базой по умолчанию:

rails new myapp -d postgresql

Команда создаст каталог myapp и установит необходимые гемы, включая pg.

Перейдите в каталог проекта и отредактируйте файл конфигурации подключения:

cd myapp/
vim config/database.yml

В разделе development укажите пользователя и пароль, созданные ранее (расположение строк может отличаться, укажите соответствующие поля):

username: rails_dev
password: aqwe123
host: localhost
port: 5432

Добавьте конфигурацию для test:

database: myapp_test
host: localhost
port: 5432
username: rails_dev
password: aqwe123

Создайте и мигрируйте базу данных:

rails db:setup
rails db:migrate

Запустите сервер (пример с привязкой к IP и порту):

rails s -b 192.168.33.10 -p 8080

Создание проекта Rails на CentOS 7

Alt: Вывод в терминале команды создания проекта Rails и лог запуска сервера.

Откройте в браузере: http://192.168.33.10:8080

Rails установлен на CentOS

Alt: Страница приветствия Ruby on Rails в браузере, запущенная на локальном сервере.

Создаём scaffold для CRUD

rails g scaffold Post title:string body:text
rake db:migrate

Перезапустите сервер и перейдите по адресу /posts, чтобы увидеть интерфейс CRUD.

Частые ошибки и способы устранения

  • Ошибка при установке gem ‘pg’: установите postgresql-devel и выполните bundle install снова.
  • Ошибка “could not connect to server”: проверьте, что PostgreSQL слушает на localhost и включена аутентификация md5.
  • Проблемы с компиляцией нативных расширений: установите gcc, make и соответствующие -devel пакеты.

Когда этот подход не работает

  • Если вы развертываете на ограниченном shared‑хостинге без прав root — RVM и system‑пакеты установить нельзя.
  • Для очень лёгких приложений можно использовать SQLite вместо PostgreSQL.
  • В CI/CD средах лучше управлять Ruby версиями через контейнеры (Docker) или rbenv.

Альтернативные подходы

  • rbenv вместо RVM — проще и минималистичнее.
  • Установка Ruby через пакетный менеджер OS (yum) — быстрее, но версии могут быть устаревшими.
  • Docker образ с Ruby/Rails — изолированная и воспроизводимая среда для разработки и CI.

Контрольный список перед деплоем в прод

  • Использовать сложные пароли и хранить их в секретном хранилище.
  • Отключить remote root логины и применить firewall (firewalld/iptables).
  • Настроить резервное копирование базы данных.
  • Настроить сервисный менеджер (systemd unit) для Rails (puma/unicorn)
  • Использовать SSL/HTTPS и проксирование через Nginx

Критерии приёмки

  • Rails приложение успешно запускается и отвечает на корневом URL.
  • Конфигурация database.yml корректна, миграции успешно применяются.
  • Пользователь rails_dev может создавать базы и подключаться к БД.

Роли и обязанности

Системный администратор:

  • Установка пакетов (RVM, Node.js, PostgreSQL)
  • Настройка firewall и systemd
  • Резервное копирование и мониторинг

Разработчик:

  • Создание приложения, миграции, разработка scaffold
  • Настройка окружений development/test/production
  • Работа с bundler и gemfile

Безопасность и эксплуатация

  • Настройте SELinux либо корректно документируйте изменения, если отключаете.
  • Отключите импорт gem’ов из непроверенных источников.
  • Обновляйте систему и RubyGems регулярно.

Краткая методология развертывания (mini SOP)

  1. Подготовить сервер (обновление, базовые утилиты).
  2. Установить RVM и нужную версию Ruby.
  3. Установить Node.js и обновить gem system.
  4. Установить Rails и зависимости проекта.
  5. Установить и настроить PostgreSQL, создать роли и базы.
  6. Создать проект Rails, настроить database.yml, выполнить миграции.
  7. Настроить сервисы для продакшена (Nginx + Puma).

Краткий глоссарий

  • RVM — менеджер версий Ruby.
  • Gem — пакет Ruby.
  • Scaffold — генератор кода в Rails для CRUD.
  • pg — гем драйвера PostgreSQL для Ruby.

Рекомендации по миграции на более новые версии

  • Тестируйте приложения в отдельном окружении перед обновлением Rails/Ruby.
  • Читайте CHANGELOG Rails и используйте rails app:update с осторожностью.

Полезные ссылки

Короткое объявление

Установите Ruby on Rails 5 на CentOS 7 с PostgreSQL: подробное руководство шаг за шагом — от установки RVM и Ruby до создания первого Rails‑приложения и шаблона CRUD. Включены советы по безопасности, альтернативы (rbenv, Docker) и контрольные списки для продакшена.

Итоги

  • Вы установили RVM, Ruby 2.3.1, Node.js и Rails 5.
  • Настроили PostgreSQL и создали пользователя rails_dev.
  • Создали и запустили первое приложение Rails с поддержкой PostgreSQL.

Важно

Всегда заменяйте примеры паролей и IP‑адреса на реальные значения для вашей инфраструктуры и следуйте политикам безопасности вашей организации.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро