Ruby on Rails или RoR или Rails — это бесплатный фреймворк веб-приложений с открытым исходным кодом, написанный на Ruby под лицензией MIT. Это полнофункциональный веб-фреймворк, использующий паттерн модель-вид-контроллер (MVC).
Веб-фреймворк Rails предоставляет структуры для базы данных, веб-сервиса и веб-страниц. Кроме того, Rails включает в себя некоторые важные инструменты, такие как scaffolding, Puma, Gems и т. д.
В этом руководстве вы узнаете, как установить Ruby on Rails с базой данных PostgreSQL на машину с AlmaLinux 9. К концу руководства у вас будет настроена среда разработки для вашего Rails-проекта.
Предварительные условия
Чтобы выполнить это руководство, убедитесь, что у вас есть следующее:
- Машина с AlmaLinux 9 — в данном примере будет использоваться AlmaLinux 9 с именем хоста almalinux9 и IP-адрес 192.168.10.15.
- Некорневой пользователь с привилегиями root/sudo.
Установка PostgreSQL
Сначала вы установите сервер PostgreSQL, который будет использоваться в качестве базы данных для вашего Rails-проекта. Вы можете установить его через репозиторий AppStream, но в данном руководстве вы будете устанавливать его официально из репозитория PostgreSQL.
Выполните следующую команду, чтобы загрузить и добавить репозиторий PostgreSQL в вашу систему.
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Теперь установите сервер PostgreSQL с помощью следующей команды. Вместе с ним вы также установите libpq5-devel — библиотеку PostgreSQL, которая будет использоваться в вашем Rails-приложении.
sudo dnf install -y postgresql15-server postgresql15-contrib libpq5-devel

После этого выполните следующую команду для инициализации конфигурации сервера PostgreSQL.
sudo postgresql-15-setup initdb
Затем запустите и включите службу PostgreSQL с помощью следующей команды systemctl.
sudo systemctl start postgresql-15 sudo systemctl enable postgresql-15

Наконец, проверьте работу службы PostgreSQL с помощью команды, приведенной ниже. При запуске вы должны получить сообщение типа ‘active (exited)‘ или ‘активный (работающий)‘.
sudo systemctl status postgresql-15

Установка Ruby
По умолчанию репозиторий AlmaLinux appstream предоставляет Ruby 3.x , который подходит для Ruby on Rails. В этом разделе вы установите Ruby 3.0 с помощью менеджера пакетов DNF.
Выполните приведенную ниже команду, чтобы проверить список доступных версий Ruby в репозитории appstream.
sudo dnf module list ruby
Следующий вывод подтверждает, что репозиторий AlmaLinux также предоставляет Ruby 3.1.

Теперь выполните следующую команду для установки пакетов Ruby и Ruby development. Введите y для подтверждения и нажмите ENTER, чтобы продолжить.
sudo dnf install ruby ruby-devel

Когда Ruby будет установлен, проверьте его с помощью следующей команды. Вы должны увидеть Ruby v3.0 , установленный в вашей системе AlmaLinux.
ruby --version

Установка Node.js и менеджера пакетов Yarn
Перед установкой Rails необходимо установить менеджер пакетов Node.js и Yarn. Оба пакета будут использоваться Rails для компиляции статических файлов в вашем Rails-проекте.
Выполните приведенную ниже команду dnf, чтобы установить пакеты Node.js и NPM. Когда появится запрос, введите y и нажмите ENTER, чтобы продолжить.
sudo dnf install nodejs npm -y

Далее выполните приведенную ниже команду npm, чтобы установить менеджер пакетов Yarn.
sudo npm install -g yarn
Менеджер пакетов Yarn должен быть доступен в /usr/local/bin каталог. Таким образом. вы должны добавить /usr/local/bin каталог в переменную окружения PATH.
Выполните следующую команду, чтобы добавить каталог /usr/local/bin каталог в переменную окружения PATH с помощью команды .bashrc файл и перезагрузите его, чтобы применить изменения.
echo "export PATH=$PATH:/usr/local/bin" >> ~/.bashrc source ~/.bashrc
Теперь выполните следующую команду, чтобы найти Node.js и менеджер пакетов Yarn. Двоичный файл Node.js находится по адресу /bin/node а менеджер пакетов Yarn находится по адресу /usr/local/bin/yarn.
which node which yarn
Наконец, выполните следующую команду, чтобы проверить версию Node.js и менеджера пакетов Yarn.
node --version yarn --version

В этом шаге вы установите «Средства разработки«, которые необходимы Rails.
Выполните следующую команду, чтобы установить «Средства разработки» в вашей системе AlmaLinux.
sudo dnf group install "Development Tools" -y
После завершения установки перейдите к следующему шагу по установке Rails.
Установка Ruby on Rails с помощью менеджера пакетов Gem
Когда все зависимости установлены, вы готовы к установке Ruby on Rails на машину AlmaLinux.
Выполните следующую команду gem для установки Ruby on Rails на вашу систему.
sudo gem install rails

После завершения установки выполните следующую команду, чтобы найти двоичный файл Rails и проверить версию Rails.
which rails rails --version
В следующем выводе вы должны увидеть, что исполняемый файл Rails находится по адресу /usr/local/bin/rails и текущая версия Rails, которая установлена, такова 7.0.

Создание роли PostgreSQL для проекта Rails
В этом разделе вы создадите новую роль PostgreSQL, которая будет использоваться для проекта Rails. Эта новая роль должна иметь разрешение на создание новых баз данных на PostgreSQL.
Войдите в PostgreSQL с помощью следующей команды. После входа в систему вы должны получить приглашение postgres=>, что подтверждает, что вы подключены к базе данных по умолчанию ‘postgres‘.
sudo -u postgres psql
Теперь выполните следующий запрос, чтобы создать новую роль PostgreSQL, которая будет использоваться для Rails. В этом примере вы создадите новую роль под названием hellorails с паролем пароль пользователя. Этой роли разрешено создавать новые базы данных на PostgreSQL.
CREATE ROLE hellorails WITH CREATEDB LOGIN PASSWORD 'userpassword';
Далее выполните следующий запрос, чтобы проверить список доступных пользователей на PostgreSQL
\du
В случае успеха вы должны увидеть новую роль адские хвосты с атрибутом разрешения Создать БД.

Нажмите Ctrl+d или введите \q для выхода из PostgreSQL.
Создание первого Rails-проекта
В этом разделе вы узнаете, как создать первый проект Ruby on Rails с помощью программы rails команда.
Создайте новый каталог проекта /var/www и переместите в него текущий рабочий каталог.
mkdir -p /var/www; cd /var/www
Теперь создайте новый Rails-проект под названием hellorails с базой данных PostgreSQL с помощью следующей команды rails. При этом также будет создан новый каталог проекта hellorails.
rails new hellorails --database=postgresql

Переместитесь в адские хвосты каталог и откройте конфигурацию базы данных config/database.yml с помощью nano или предпочитаемого вами редактора.
cd hellorails nano config/database.yml
Измените конфигурацию базы данных по умолчанию для разработки, тестирования и производства следующим образом, и не забудьте использовать правильного пользователя и пароль для данных PostgreSQL.
development: database: hellorails_development username: hellorails password: userpassword host: localhost port: 5432
test:
database: hellorails_test
user: hellorails
password: userpassword
host: localhost
port: 5432
production:
database: hellorails_production
username: hellorails
password: userpassword
host: localhost
port: 5432
Сохраните файл и выйдите из редактора после завершения работы.
Далее выполните следующую команду для миграции базы данных. В результате будут созданы новые базы данных для вашего проекта Rails.
rails db:setup rails db:migrate

После переноса базы данных выполните следующую команду для запуска проекта Rails и не забудьте изменить IP-адрес сервера. Это запустит ваш Rails-проект на определенном IP-адресе 192.168.10.15 с портом по умолчанию 3000.
rails server --binding=192.168.10.15

Запустите веб-браузер и зайдите на IP-адрес сервера, за которым следует порт 3000 (т. е. http://192.168.10.15:3000/). Если установка Rails прошла успешно, вы должны получить стандартную страницу index.html вашего проекта Rails.

Заключение
Поздравляем! Теперь вы установили Ruby on Rails с PostgreSQL на машину с AlmaLinux 9. Вы также узнали, как создать роль PostgreSQL и создать первый проект Rails.
Установив Rails на свою систему, вы можете продолжить разработку приложения с помощью Rails, а для стартового пакета вам может быть интересен Ruby Scaffolding, чтобы познакомиться с MVC (Model View Controller) в Rails.