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.