Ruby on Rails – один из самых популярных стеков для разработки сайтов и веб-приложений. Стек включает в себя язык программирования Ruby и фреймворк Rails.
Ruby и Rails можно быстро установить с помощью менеджера версий RVM (Ruby Version Manager), который также позволяет управлять несколькими средами Ruby на одном сервере.
Данное руководство поможет установить RVM на сервер Debian 8, а затем с помощью этого менеджера установить стабильную версию Ruby on Rails.
Требования
- Сервер Debian 8 (руководство по начальной настройке сервера можно найти здесь).
- Пользователь с доступом к sudo.
- Предварительно установленная платформа Node.js (инструкции по установке можно найти здесь).
Установка Ruby on Rails
Чтобы установить Ruby on Rails с помощью RVM, нужно запустить сценарий установки, который можно найти на сайте RVM.
Используйте команду gpg, чтобы получить открытый ключ и запросить ключ релиза RVM. Так вы сможете убедиться в подлинности пакета RVM. Перейдите в домашний каталог и введите команду:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
Команда выведет:
gpg: directory `/home/8host/.gnupg' created
gpg: new configuration file `/home/8host/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/8host/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/8host/.gnupg/secring.gpg' created
gpg: keyring `/home/8host/.gnupg/pubring.gpg' created
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpg: /home/8host/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
Затем загрузите сценарий установки RVM с сайта проекта с помощью команды curl. Слеш в начале команды позволяет обойти псевдонимы команды curl.
\curl -sSL https://get.rvm.io -o rvm.sh
Флаг –s запускает команду в немом режиме, флаг –S будет выводить сообщения об ошибках, если такие возникнут. Флаг –L выполняет все перенаправления, -o вместо стандартного вывода направляет результат в файл.
Прежде чем запустить сценарий, вы можете ознакомиться с его содержимым.
nano rvm.sh
После этого можно перенаправить сценарий в bash, чтобы установить последнюю стабильную версию Rails, вместе с которой будет загружен стабильный релиз Ruby.
cat rvm.sh | bash -s stable --rails
Читайте также: Перенаправление ввода-вывода в Linux
Во время установки будет запрошен пароль текущего пользователя.
...
Checking requirements for debian.
Installing requirements for debian.
Updating system 8host password required for 'apt-get --quiet --yes update':
Введите пароль, и RVM начнёт установку инструментов, необходимых для компиляции Ruby.
...
Installing required packages: gawk, g++, gcc, make, libc6-dev, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgmp-dev, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev
Requirements installation successful.
После этого менеджер загрузит последнюю версию Ruby, фреймворк Ruby on Rails и их зависимости.
...
ruby-2.3.0 - #configure
ruby-2.3.0 - #download
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 24.2M 100 24.2M 0 0 31.4M 0 --:--:-- --:--:-- --:--:-- 31.4M
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.0 - #validate archive
ruby-2.3.0 - #extract
ruby-2.3.0 - #validate binary
ruby-2.3.0 - #setup
ruby-2.3.0 - #gemset created /home/8host/.rvm/gems/ruby-2.3.0@global
ruby-2.3.0 - #importing gemset /home/8host/.rvm/gemsets/global.gems..............................
ruby-2.3.0 - #generating global wrappers........
ruby-2.3.0 - #gemset created /home/8host/.rvm/gems/ruby-2.3.0
ruby-2.3.0 - #importing gemsetfile /home/8host/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.0 - #generating default wrappers........
Creating alias default for ruby-2.3.0...
...
36 gems installed
* To start using RVM you need to run `source /home/8host/.rvm/scripts/rvm`
in all your open shell windows, in rare cases you need to reopen all shell windows.
* To start using rails you need to run `rails new <project_dir>`.
После окончания установки выполните команду source, чтобы получить доступ к сценариям RVM в текущей сессии:
source ~/.rvm/scripts/rvm
Убедитесь, что установка прошла успешно:
which ruby
Вы увидите такой вывод:
/home/8host/.rvm/rubies/ruby-2.3.0/bin/ruby
Среда Ruby on Rails готова к использованию.
Установка определенной версии Ruby и Rails
Если приложение привязано к определённой версии Ruby и ему не подходит последний релиз, вы можете установить эту версию с помощью RVM. Для начала нужно обновить RVM, чтобы получить актуальный список доступных версий Ruby.
rvm get stable
Запросите список доступных версий Ruby:
rvm list known
Чтобы установить конкретную версию Ruby, введите команду:
rvm install ruby_version
Примечание: Вместо ruby_version укажите необходимую версию Ruby (например, ruby-2.3.0 или просто 2.3.0).
Чтобы просмотреть список установленных версий, введите:
rvm list
Переключаться между версиями Ruby можно с помощью команды:
rvm use ruby_version
Поскольку Rails является gem-ом, вы можете установить несколько версий Rails с помощью команды gem. Просмотрите доступные версии Rails:
gem search '^rails$' --all
Затем установите необходимую версию.
gem install rails -v rails_version
Примечание: Вместо rails_version укажите номер необходимой версии Rails (например, 4.2.7).
Каждая версия Ruby может использовать несколько версий Rails. Для этого нужно создать gemset и установить Rails с помощью команды gem:
rvm gemset create gemset_name # create a gemset
rvm ruby_version@gemset_name # specify Ruby version and our new gemset
gem install rails -v rails_version
Gemset-ы создают полноценную среду для приложения Ruby. Также с их помощью можно настроить несколько сред для каждой установленной версии Ruby. Это позволяет протестировать приложение в нескольких разных средах и быстро обнаружить ошибки.
Заключение
Установив RVM и Ruby on Rails, вы можете приступать к разработке или развёртыванию приложений.
Читайте также: