Установка Ruby on Rails с помощью rbenv в macOS
Ruby on Rails – один из самых популярных программных стеков для разработки сайтов и приложений. Он состоит из языка программирования Ruby и фреймворка Rails.
Ruby и Rails можно легко установить с помощью инструмента командной строки rbenv. Rbenv предоставляет надёжную среду для разработки приложений Ruby on Rails и позволяет переключать версии Ruby, сохраняя работу команды в одной версии.
Инструмент rbenv поддерживает настройку индивидуальных версий Ruby для каждого приложения, а также позволяет установить версию Ruby по умолчанию для каждого пользователя и переопределять версии Ruby с помощью переменных окружения.
Требования
- Локальная или виртуальная машина macOS с правами администратора и доступом к интернету. Этот мануал выполнен на macOS 10.14 Mojave.
- Установка Node.js на этой машине (вам поможет мануал Установка Node.js и настройка локальной среды разработки в macOS). От этой программы зависят некоторые функции Rails, например, Asset Pipeline.
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: Mac OS, Rails, rbenv, Ruby, Ruby on Rails