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

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

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

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

Требования

1: Установка rbenv

Сначала мы установим rbenv и настроим автозапуск этого инструмента. Для этого используется менеджер Homebrew.

Чтобы установить rbenv при помощи Homebrew, введите:

brew install rbenv

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

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

nano .bash_profile

Добавьте в него такую строку:

eval "$(rbenv init -)"

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

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

source ~/.bash_profile

Чтобы убедиться, что настройка инструмента 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
}

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

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

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

rbenv install -l

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

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

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

rbenv install 2.6.3

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

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

rbenv global 2.6.3

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

ruby -v

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

ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]

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

rbenv install 2.3.0
rbenv global 2.3.0

Теперь у вас есть одна версия Ruby, которую вы настроили как версию по умолчанию. Далее мы поработаем с пакетами и библиотеками Ruby – так называемыми gem-ами, с помощью которых можно установить Rails.

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

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

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

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

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

gem install bundler

Вы увидите:

Fetching: bundler-2.0.2.gem
Successfully installed bundler-2.0.2
1 gem installed

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

gem env home

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

/Users/8host/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0

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

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

gem install rails -v 5.2.3

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


Successfully installed rails-5.2.3
38 gems installed

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

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

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

gem install rails

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

rbenv rehash

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

rails -v

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

Rails 5.2.3

5: Обновление и удаление rbenv и Ruby

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

Обновить rbenv и ruby-build можно с помощью Homebrew:

brew upgrade rbenv ruby-build

Если rbenv или ruby-build нуждается в обновлении, Homebrew автоматически обновит их. Если же ваши экземпляры уже обновлены, вы получите такой вывод:

Error: rbenv 1.1.2 already installed
Error: ruby-build 20190615 already installed

Это значит, что на вашей машине уже используется последняя версия rbenv.

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

К примеру, чтобы удалить версию 2.1.3, нужно ввести команду:

rbenv uninstall 2.1.3

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

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

nano ~/.bash_profile

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


eval "$(rbenv init -)"

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

Чтобы обновления вступили в силу в текущей сессии, введите:

source ~/.bash_profile

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

rm -rf `rbenv root`

Теперь нужно удалить пакет rbenv из Homebrew:

brew uninstall rbenv

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

rbenv -v

Вы получите такой вывод:

-bash: /usr/local/bin/rbenv: No such file or directory

Это значит, что rbenv удален с машины.

Заключение

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

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

Tags: , , , ,