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

Введение

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

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

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

В этом обучающем модуле вы научитесь выполнять установку Ruby и Rails с помощью rbenv.

Предварительные требования

Для данного обучающего модуля вам потребуется следующее:

  • Один сервер Ubuntu 18.04, настроенный в соответствии с руководством по начальной настройке сервера Ubuntu 18.04, включая пользователя sudo без прав root и брандмауэр.
  • Node.js, установленный через официальный PPA в соответствии с указаниями руководства Установка Node.js в Ubuntu 18.04. Некоторые функции Rails, в том числе Asset Pipeline, используют среду исполнения JavaScript. Node.js обеспечивает этот функционал.

Шаг 1 – Установка rbenv и зависимостей

Ruby использует несколько пакетов, которые вы можете установить с помощью диспетчера пакетов. После их установки вы можете установить 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. Клонируйте репозиторий 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

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

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

Затем примените изменения, внесенные в файл ~/.bashrc, для текущего сеанса оболочки:

  • source ~/.bashrc

Проверьте правильность настройки rbenv с помощью команды type, которая выводит дополнительную информацию о команде rbenv:

  • type rbenv

В окне терминала будет отображаться следующее:

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

Затем установите плагин ruby-build. Этот плагин добавляет команду rbenv install, упрощающую процесс установки новых версий Ruby:

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

Итак, вы установили rbenv и ruby-build. Теперь выполним установку Ruby.

Шаг 2 – Установка Ruby с помощью ruby-build

После установки плагина 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, проверив номер версии:

  • ruby -v

Если вы установили версию Ruby 2.5.1, результат выполнения этой команды должен выглядеть примерно так:

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

Чтобы установить и использовать другую версию Ruby, запустите команду rbenv с другим номером версии, например, rbenv install 2.3.0 или rbenv global 2.3.0.

Теперь у вас имеется хотя бы одна установленная версия Ruby, и вы выбрали версию Ruby по умолчанию. Теперь мы настроим Gems и Rails.

Шаг 3 — Работа с Gems

Gems — это способ распределения библиотек Ruby. Вы можете использовать команду gem для управления этим распределением. Мы используем эту команду для установки Rails.

При установке gem процедура установки генерирует локальную документацию. Это может значительно увеличить время установки gem, так что отключите генерирование локальной документации, создав файл ~/.gemrc с параметром конфигурации, отключающим эту функцию:

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

Bundler — это инструмент, управляющий зависимостями gem в проектах. Далее установите компонент Bundler, поскольку Rails зависит от него.

  • gem install bundler

Вывод будет выглядеть следующим образом:

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

Вы можете использовать команду gem env (субкоманда env означает среду), чтобы узнать больше о среде и конфигурации gems. Вы можете увидеть место установки gems с помощью аргумента home, примерно так:

  • gem env home

Результат будет выглядеть примерно так:

/home/sammy/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0 

После настройки gems вы можете установить Rails.

Шаг 4 – Установка Rails

Чтобы установить Rails, нужно использовать команду gem install с флагом -v для указания версии. Для данного обучающего модуля мы используем версию 5.2.0:

  • gem install rails -v 5.2.0

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

Output... Successfully installed rails-5.2.0 38 gems installed 

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

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

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

  • gem install rails

rbenv создает каталог shims, указывающий на файлы, которые используются текущей активной версией Ruby. Используя субкоманду rehash, rbenv сохраняет shims в этом каталоге для соответствия всех команд Ruby во всех установленных версиях Ruby на вашем сервере. При установке новой версии Ruby или элемента gem, который предоставляет команды, наподобие Rails, нужно использовать следующую команду:

  • rbenv rehash

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

  • rails -v

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

OutputRails 5.2.0 

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

Шаг 5 – Обновление rbenv

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

  • cd ~/.rbenv
  • git pull

Это обеспечит использование последней актуальной версии rbenv.

Шаг 6 – Удаление версий Ruby

После загрузки дополнительных версий Ruby в каталоге ~/.rbenv/versions может оказаться слишком много версий. Используйте в плагине ruby-build субкоманду uninstall для удаления ненужных предыдущих версий.

Например, следующая команда удалит версию Ruby 2.1.3:

  • rbenv uninstall 2.1.3

Команда rbenv uninstall позволяет удалять старые версии Ruby, чтобы в каталоге были установлены только используемые версии.

Шаг 7 – Удаление rbenv

Если вы решите больше не использовать утилиту rbenv, вы можете удалить ее из своей системы.

Для этого вначале откройте в редакторе файл ~/.bashrc:

  • nano ~/.bashrc

Найдите в файле следующие две строки и удалите их:

~/.bashrc

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

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

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

 rm -rf `rbenv root` 

Выйдите из системы и снова войдите в нее, чтобы применить изменения в оболочке.

Заключение

В этом обучающем модуле вы установили rbenv и Ruby on Rails. Теперь вы можете узнать больше о повышении безопасности этих сред.

Узнайте, как использовать Ruby on Rails с PostgreSQL или MySQL вместо базы данных по умолчанию sqlite3, чтобы обеспечить дополнительную масштабируемость, централизацию и стабильность ваших приложений. По мере роста ваших потребностей вы также можете изучить масштабирование приложений Ruby on Rails на нескольких серверах.