Ruby on Rails — один из самых популярных среди разработчиков наборов приложений для создания сайтов и веб-приложений. Язык программирования Ruby в сочетании с системой разработки Rails делает разработку приложений очень простой.
Вы можете легко установить Ruby и Rails с помощью инструмента командной строки rbenv. Использование rbenv обеспечит надежную среду для разработки приложений Ruby on Rails, позволяющую легко сменять версии Ruby, чтобы вся команда использовала одну и ту же версию.
rbenv обеспечивает поддержку версий Ruby для конкретных приложений, позволяет изменять глобальную версию Ruby для каждого пользователя и использовать переменную среды для принудительного определения версии Ruby.
В этом обучающем модуле вы научитесь выполнять установку Ruby и Rails с помощью 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" "$@")"
;;
*)
command rbenv "$command" "$@"
;;
esac
}
Затем установите плагин [ruby-build] (https://github.com/rbenv/ruby-build). Этот плагин добавляет команду rbenv install
, упрощающую процесс установки новых версий Ruby:
- git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Итак, вы установили rbenv и ruby-build. Теперь выполним установку 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, проверив номер версии:
- 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.
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.
Чтобы установить 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.
Поскольку вы установили rbenv вручную с помощью Git, вы можете обновить установленную версию до последней в любое время, запустив команду git pull
в каталоге ~/.rbenv
:
- cd ~/.rbenv
- git pull
Это обеспечит использование последней актуальной версии rbenv.
После загрузки дополнительных версий Ruby в каталоге ~/.rbenv/versions
может оказаться слишком много версий. Используйте в плагине ruby-build
субкоманду uninstall
для удаления ненужных предыдущих версий.
Например, следующая команда удалит версию Ruby 2.1.3:
- rbenv uninstall 2.1.3
Команда rbenv uninstall
позволяет удалять старые версии Ruby, чтобы в каталоге были установлены только используемые версии.
Если вы решите больше не использовать утилиту rbenv, вы можете удалить ее из своей системы.
Для этого вначале откройте в редакторе файл ~/.bashrc
:
- nano ~/.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 на нескольких серверах.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!