# Установка Ruby on Rails на VPS с Ubuntu

Ruby on Rails — популярный инструмент для создания сложных сайтов и веб-приложений. Rails — фрэймворк для Ruby — позволяет быстро создавать масштабируемые сайты.

В этой инструкции мы установим Ruby с помощью команды rbenv. Это удобная утилита, позволяющая не только устанавливать выбранную версию Ruby, но и переключаться между несколькими версиями этого языка в процессе работы над разными проектами на одной машине.

Для начала работы нам понадобится предварительно настроенный сервер под управлением Ubuntu.

# Установка rbenv и зависимостей

Начнём процесс установки Ruby с установки rbenv. Обновим список доступных пакетов apt и установим некоторые зависимости, которые понадобятся затем в работе:

sudo apt update

sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev

После этого можно сразу же установить rbenv из репозитория:

curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash

Теперь сделаем rbenv исполняемой командой. Для этого добавим исполняемый файл в PATH:

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc

Добавим команду eval, чтобы при перезапуске сервера rbenv стартовал автоматически:

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Запустим rbenv:

source ~/.bashrc

# Установка Ruby

# Подготовка

После установки rbenv перейдём непосредственно к установке Ruby. Клонируем установщик Ruby из репозитория:

git clone https://github.com/rbenv/ruby-build.git

Для корректной работы скрипта-установщика нужно создать дополнительную переменную среды. Создадим её и запустим скрипт:

PREFIX=/usr/local sudo ./ruby-build/install.sh

# Установка

Проверим список доступных для установки версий Ruby:

rbenv install -l

#Output
2.6.10
2.7.6
3.0.4
3.1.2
jruby-9.3.4.0
mruby-3.0.0
rbx-5.0
truffleruby-22.1.0
truffleruby+graalvm-22.1.0

Only latest stable releases for each Ruby implementation are shown.
Use 'rbenv install --list-all / -L' to show all local versions.

В консоли появится список доступных для установки версий Ruby. Выберем нужную и установим:

rbenv install 3.0

После завершения установки можно проверить её правильность следующей командой:

ruby -v

#Output
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]

На этом установку языка Ruby можно считать законченной.

# Установка Rails

# Работа с gems

Аналогом программных библиотек в языке Ruby являются gems. Они так же устанавливаются простой командой из консоли и позволяют серьёзно расширить базовые возможности языка Ruby.

К gems относятся любые расширения — от программных библиотек до фрэймворков.

Установить фрэймворк Rails, как и любой другой, можно с помощью прямой команды:

gem install <gem_name>

Gem — это базовый инструмент для работы с библиотеками и он предназначен только для их установки. Гораздо эффективнее управлять всеми зависимостями проекта Ruby on Rails с помощью специального gem’а — Bundler.

# Bundler

Bundler — один из gem’ов, основная задача которого управлять всеми зависимостями проекта Ruby On Rails. Bundler создаёт Gemfile со списком зависимостей проекта. Таким образом, после развёртывания проекта на сервере можно создать локальную среду для его работы и установить в неё все зависимости одной командой.

Установим Bundler:

gem install bundler

Теперь создадим новую папку для работы проекта и создадим в ней первый Gemfile:

mkdir ruby_project
cd ruby_project

bundle init

Также в этой директории создадим конфигурационный файл для работы Bundler. В этом файле укажем адрес ко всем gem’ам, которые будут устанавливаться для этого проекта.

mkdir .bundler

vim .bundler/config

В конфигурационный файл поместим строку с локальной переменной среды:

BUNDLE_PATH: "~/ruby_project/.gem

В данном случае мы указали путь для установки gem’ов внутри папки проекта.

Одним из преимуществ работы с bundler является возможность одновременной установки gem’а и его добавление в Gemfile.

Установим Rails с помощью Bundler:

bundler add rails

Проверим версию установленного Rails:

rails -v

#Output
Rails 7.0.3

Также проверим, что добавилась запись в Gemfile:

vim Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

# gem "rails"

gem "rails", "~> 7.0"