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

Установка Ruby on Rails на Ubuntu 16.04 с PostgreSQL

• 6 min read • Руководство • Обновлено 26 Nov 2025
Установка Ruby on Rails и PostgreSQL на Ubuntu
Установка Ruby on Rails и PostgreSQL на Ubuntu

Введение

Ruby on Rails — это фреймворк для веб-приложений с открытым исходным кодом под лицензией MIT. Rails следует архитектуре MVC (Model-View-Controller) и предоставляет стандартную структуру для базы данных, веб-сервисов и страниц. Многие известные приложения построены на Rails, например GitHub, Airbnb и Soundcloud.

Определение в одну строку: RVM — менеджер версий Ruby; Rails — фреймворк на Ruby; PostgreSQL — реляционная СУБД.

Важно: инструкция ориентирована на Ubuntu 16.04 LTS и Rails 5. Для более новых версий пакеты и команды могут отличаться.

Что вам понадобится

  • Сервер или машина с Ubuntu 16.04 LTS.
  • Root-права или доступ по sudo.
  • Подключение к интернету.

Быстрый план действий

  1. Установить RVM (Ruby Version Manager).
  2. Установить Ruby 2.3.1 и сделать её версией по умолчанию.
  3. Установить Node.js как JavaScript-движок для asset pipeline.
  4. Обновить RubyGems и отключить установку документации (опционально).
  5. Установить Rails 5.
  6. Установить и настроить PostgreSQL для разработки.
  7. Создать новое Rails-приложение с PostgreSQL и проверить CRUD через scaffold.

Важные примечания

Important: На продакшн-серверах RVM может быть заменён на системные пакеты или rbenv. Этот гайд ориентирован на среду разработки или тестовую VM.


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

RVM (Ruby Version Manager) — командная утилита на Bash и Ruby для управления несколькими версиями Ruby на одной системе. Ниже показан способ установки стабильной версии RVM и добавления GPG-ключа.

Выполните импорт GPG-ключа:

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

Установите стабильный RVM вместе с Ruby:

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

Эта команда установит зависимости, загрузит и установит RVM.

Затем активируйте RVM в текущей сессии:

source /usr/local/rvm/scripts/rvm

Установка Ruby Version Manager (RVM)

Советы и варианты:

  • Альтернатива: rbenv — более «микрофокусный» менеджер версий, предпочитаемый в некоторых окружениях. Используйте его, если хотите избежать скриптов в shell.
  • При ошибке GPG: убедитесь, что исходящий трафик к hkp://keys.gnupg.net не блокируется брандмауэром.

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

На момент написания стабильная версия Ruby, используемая в руководстве — 2.3.1. Установим её через RVM и сделаем версией по умолчанию.

Обновите RVM и установите Ruby:

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

Сделайте Ruby 2.3.1 используемой по умолчанию:

rvm --default use ruby-2.3.1

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

ruby -v

Установка Ruby через RVM и проверка версии

Советы:

  • Если сборка ruby завершается ошибкой, установите дополнительные зависимости (build-essential, libssl-dev, zlib1g-dev и т.д.). RVM обычно подсказывает, каких пакетов не хватает.
  • Для современных проектов используйте более новые ветки Ruby (2.6/2.7/3.x). В этом гайде оставляем 2.3.1 ради совместимости с Rails 5.

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

Rails использует JavaScript-движок для компиляции ассетов. Рекомендуется установить Node.js как runtime.

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

curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
apt-get install -y nodejs

Примечание: версия 4.x подходит для Rails 5 и Ubuntu 16.04 в этом руководстве. Для новых Rails используйте актуальные LTS-ветки Node.js.

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

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 установлен на Ubuntu 16.04 с Ruby 2.3.1.

Шаг 6 — Подготовка PostgreSQL для разработки

Rails поддерживает множество СУБД: SQLite (по умолчанию), MySQL и PostgreSQL. В этом руководстве мы используем PostgreSQL.

Установите PostgreSQL и необходимые заголовки:

apt-get -y install postgresql postgresql-contrib libpq-dev

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

su - postgres
psql

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

\password postgres
Enter new password:

Создайте роль для разработки Rails (в примере — rails_dev):

create role rails_dev with createdb login password 'aqwe123';

Проверьте созданные роли:

\du

Теперь PostgreSQL готов для использования Rails.

Проверка прав PostgreSQL

Безопасность: замените пароль ‘aqwe123’ на надёжный пароль при реальном использовании. Рассмотрите использование pg_hba.conf для ограничения доступа.

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

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

rails new myapp -d postgresql

Перейдите в каталог приложения и отредактируйте config/database.yml:

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.1.110 -p 8080

Создание первого приложения Ruby on Rails

Откройте браузер по адресу http://192.168.1.110:8080 и проверьте стартовую страницу Rails.

Приложение Ruby on Rails в браузере

Создадим scaffold для сущности Post и применим миграции:

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

Запустите сервер снова и перейдите на http://192.168.1.110:8080/posts — вы увидите простой CRUD-интерфейс, работающий с PostgreSQL.

Сгенерированное приложение Rails с scaffold


Типичные ошибки и способы их решения

  • Ошибка GPG при установке RVM: проверьте доступ к серверу ключей и попробуйте альтернативные keyservers.
  • Ошибки сборки Ruby: установите пакеты build-essential, libssl-dev, zlib1g-dev, libreadline-dev.
  • При ошибке подключения к PostgreSQL: проверьте host/port/username/password в database.yml и настройки pg_hba.conf.
  • Баги с флагом –no-document: убедитесь, что ~/.gemrc правильно сформирован и не содержит лишних символов.

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

  • rbenv вместо RVM: проще интегрируется с системными пакетными менеджерами и CI.
  • Использовать системный пакет ruby и apt-get (быстрее, но версии могут быть устаревшими).
  • Для production: использовать Docker-контейнеры или managed-платформы (Heroku, AWS) и CI/CD.

Чеклист ролей

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

  • Установлен RVM/rbenv и нужная версия Ruby.
  • Установлены Node.js и bundler.
  • Rails запускается локально.

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

  • PostgreSQL установлен, настроен и имеет отдельного пользователя для приложения.
  • Конфигурация pg_hba.conf и firewall настроены.
  • Резервное копирование базы данных организовано.

DevOps/инженер по деплою:

  • Выбран метод деплоя (Capistrano, Docker, platform).
  • SSL и reverse-proxy настроены для продакшна.

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

  • Приложение rails new запускается и отдаёт стартовую страницу.
  • Соединение с PostgreSQL успешно (rails db:setup и rails db:migrate без ошибок).
  • Создан и доступен scaffold /posts с операциями CRUD.

Краткое руководство по откату (rollback)

Если нужно удалить приложение и базу данных:

# Остановить сервер
# Удалить директорию приложения
rm -rf ~/myapp
# Удалить БД и пользователя PostgreSQL (в psql):
DROP DATABASE myapp_development;
DROP DATABASE myapp_test;
DROP ROLE IF EXISTS rails_dev;

Быстрый набор команд (cheat sheet)

  • Установить RVM: curl -sSL https://get.rvm.io | bash -s stable –ruby
  • Установить Ruby: rvm install ruby-2.3.1
  • Установить Rails: gem install rails -v 5.0.0
  • Создать приложение: rails new myapp -d postgresql
  • Инициализировать БД: rails db:setup
  • Запустить сервер: rails s -b 0.0.0.0 -p 3000

Безопасность и рекомендации для продакшна

  • Не храните пароли в открытом виде в репозитории; используйте environment variables или secrets management.
  • Настройте SSL/TLS и reverse-proxy (nginx, haproxy).
  • Настройте системные службы (systemd) для автозапуска приложения.
  • Обновляйте Ruby, Rails и зависимости и тестируйте совместимость перед обновлением.

Совместимость и миграция

  • Для перехода на более новые версии Ruby или Rails проверьте зависимости гемов в Gemfile и используйте bundle update с последующим прогоном тестов.
  • При миграции базы данных сделайте бэкап (pg_dump) перед выполнением критичных миграций.

1-строчный глоссарий

  • RVM: менеджер версий Ruby.
  • Rails: фреймворк MVC на Ruby.
  • PostgreSQL: реляционная СУБД.
  • Gem: пакет для Ruby.

Часто задаваемые вопросы

Q: Можно ли использовать MySQL вместо PostgreSQL? A: Да. При создании приложения укажите -d mysql и установите соответствующие клиентские библиотеки.

Q: Нужно ли ставить Node.js на продакшн? A: Если вы используете asset pipeline или webpacker, то на сервере сборки/деплоя должен быть JavaScript-движок или сборка должна выполняться на этапе CI.

Q: Как подключать environment variables для базы в production? A: Используйте ENV[‘DATABASE_URL’] или secrets.yml / credentials.yml.enc (в современных верcиях Rails).


Ссылки и источники

Короткое резюме

В этом руководстве вы установили RVM, Ruby 2.3.1, Node.js, Rails 5 и PostgreSQL на Ubuntu 16.04, настроили конфигурацию database.yml и создали приложение с scaffold для проверки CRUD. Для продакшна рекомендуются дополнительные шаги по безопасности, резервному копированию и автоматизации деплоя.

Поделиться: 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 быстро