Установка 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
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
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.0Rails 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
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 готов для разработки.

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
Alt: Вывод в терминале команды создания проекта Rails и лог запуска сервера.
Откройте в браузере: http://192.168.33.10:8080

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)
- Подготовить сервер (обновление, базовые утилиты).
- Установить RVM и нужную версию Ruby.
- Установить Node.js и обновить gem system.
- Установить Rails и зависимости проекта.
- Установить и настроить PostgreSQL, создать роли и базы.
- Создать проект Rails, настроить database.yml, выполнить миграции.
- Настроить сервисы для продакшена (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‑адреса на реальные значения для вашей инфраструктуры и следуйте политикам безопасности вашей организации.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента