Установка Ruby on Rails с помощью rbenv в Ubuntu 18.04

Ruby on Rails – один из самых популярных программных стеков для разработки сайтов и приложений. Он состоит из языка программирования Ruby и фреймворка Rails.

Ruby и Rails можно легко и просто установить с помощью инструмента командной строки rbenv. Rbenv предоставляет надёжное окружение для разработки приложений Ruby on Rails и позволяет переключать версии Ruby, сохраняя работу команды в одной версии.

Инструмент rbenv поддерживает настройку индивидуальных версий Ruby для каждого приложения, а также позволяет установить версию Ruby по умолчанию для каждого пользователя и переопределять версии Ruby с помощью переменных окружения.

Требования

  • Настроенный сервер Ubuntu 18.04 (инструкции можно найти здесь).
  • Пользователь с доступом к sudo.
  • Node.js, предварительно установленный из официального PPA (как показано в мануале Установка Node.js в Ubuntu 18.04). От этой программы зависят некоторые функции Rails.

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

Ruby зависит от нескольких пакетов, которые можно установить через пакетный менеджер.

Сначала нужно обновить индекс пакетов системы.

sudo apt update

Теперь можно установить зависимости Ruby:

sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev

После этого можно приступать к установке инструмента rbenv. Клонируйте его репозиторий с GitHub в каталог ~/.rbenv:

git clone https://github.com/rbenv/rbenv.git ~/.rbenv

Добавьте ~/.rbenv/bin в переменную $PATH, чтобы получить доступ к утилите командной строки rbenv. Отредактируйте файл ~/.bashrc, чтобы эта настройка сохранилась и для следующих сессий.

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

После этого добавьте в файл ~/.bashrc команду eval «$(rbenv init -)», чтобы rbenv загружался автоматически:

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

Активируйте свои изменения:

source ~/.bashrc

Чтобы убедиться, что настройка инструмента rbenv прошла успешно, используйте команду type:

type rbenv

В терминале появится такой вывод:

rbenv is a function
rbenv ()
{
local command;
command="${1:-}";
if [ "$#" -gt 0 ]; then
shift;
fi;
case "$command" in
rehash | shell)
eval "$(rbenv "sh-$command" "$@")"
;;
*)
command rbenv "$command" "$@"
;;
esac
}

Команда rbenv install позволяет упростить процесс установки новых версий Ruby. Чтобы получить доступ к этой команде, нужно сначала установить пакет ruby-build:

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

После этого можно установить Ruby.

2: Установка Ruby

Плагин ruby-build позволяет установить любую доступную версию Ruby с помощью одной простой команды. Просмотрите список версий Ruby:

rbenv install -l

Команда вернёт длинный список версий, которые доступны для установки.

Выберите версию и установите её.

В данном мануале мы установим Ruby 2.5.1.

rbenv install 2.5.1

Процесс установки Ruby может занять много времени.

После завершения установки вы можете задать эту версию Ruby в качестве версии по умолчанию. Для этого используется подкоманда global.

rbenv global 2.5.1

Чтобы убедиться, что установка прошла успешно, запросите версию:

ruby -v

Команда должна вернуть:

ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]

Чтобы установить другую версию Ruby, просто укажите ее в команде вместо 2.5.1. Например:

rbenv install 2.3.0
rbenv global 2.3.0.

3: Установка и использование gem-ов

Gem-ы – это пакеты, с помощью которых можно расширить функции Ruby. Rails является gem-ом, потому его можно установить с помощью команды gem.

Когда вы устанавливаете gem, процесс генерирует локальную документацию. Это может значительно затянуть установку каждого gem-а. Лучше отключите локальную документацию, создав файл ~/.gemrc (он содержит параметр конфигурации для отключения этой функции):

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

Затем установите gem Bundler, инструмент, который управляет зависимостями приложений.

gem install bundler

Вы увидите вывод:

Fetching: bundler-1.16.2.gem (100%)
Successfully installed bundler-1.16.2
1 gem installed

Команда gem env (env это сокращение от environment) предоставляет сведения о среде и настройке gem-ов. Чтобы узнать, куда устанавливаются gem-ы, запустите её с аргументом home.

gem env home

Команда вернёт:

/home/8host/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0

4: Установка Rails

Чтобы установить Rails, введите команду gem install с флагом –v, чтобы задать версию:

gem install rails -v 5.2.0

Команда gem устанавливает указанный вами gem, а также все его зависимости. Rails является сложной средой веб-разработки и имеет много зависимостей, поэтому установка займет некоторое время. В конце вы увидите сообщение о том, что Rails и все зависимости были установлены:


Successfully installed rails-5.2.0
38 gems installed

Примечание: Если вы хотите установить другую версию Rails, вы можете получить список поддерживаемых версий. Для этого выполните поиск, который выведет длинный список возможных версий. Затем можно установить какую-то другую версию, к примеру, 4.2.7:

gem search '^rails$' --all
gem install rails -v 4.2.7

Если вы хотите установить последнюю версию Rails, запустите команду, не указывая версии:

gem install rails

Инструмент rbenv создаёт каталог shim-ов, которые указывают на файлы текущей версии Ruby. Команда rehash позволяет поддерживать shim-ы новых версий Ruby. После установки новой версии или gem-а нужно запускать команду:

rbenv rehash

Чтобы убедиться в том, что установка Rails прошла успешно, запросите версию:

rails -v

Если установка прошла без ошибок, вы увидите версию Rails:

Rails 5.2.0

5: Обновление rbenv

Поскольку вы установили rbenv вручную с Git, вы в любое время можете самостоятельно обновить инструмент rbenv до последней версии с помощью команд:

cd ~/.rbenv
git pull

6: Удаление Ruby

Все версии собираются в каталоге ~/.rbenv/versions, и со временем он может переполниться. Если какая-то версия Ruby больше не нужна, её можно удалить.

Для этого плагин ruby-build предоставляет подкоманду uninstall. К примеру, чтобы удалить версию 2.1.3, нужно ввести:

rbenv uninstall 2.1.3

7: Удаление rbenv

Если вы решили удалить rbenv, откройте в редакторе файл ~/.bashrc:

nano ~/.bashrc

Удалите из него эти строки:


export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

Сохраните и закройте файл.

Затем можно удалить rbenv и все установленные версии Ruby с помощью этой команды:

rm -rf `rbenv root`

Чтобы обновления вступили в силу, выйдите из системы и войдите снова.

Заключение

Теперь вы знакомы с основами работы с rbenv, можете установить Ruby on Rails и управлять различными окружениями Ruby.

Теперь нужно защитить приложение. Вместо стандартной БД sqlite3 в приложениях Ruby on Rails рекомендуется использовать более надёжную СУБД, например PostgreSQL или MySQL. Если требования приложения возросли, читайте статью Масштабирование приложения Ruby on Rails.

Tags: , , , ,