Всем привет!



Хочу поделиться с вами своим опытом в изучении Ruby и фреймверка для веб разработки Ruby on Rails.

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

Ruby и Rails можно быстро установить с помощью инструмента командной строки RVM (Ruby Version Manager, менеджер версий Ruby). RVM позволяет управлять версиями Ruby, работать в нескольких окружениях Ruby и легко переключать их.

Наш первый урок будет посвящен настройке окружения для разработки в ОС Linux. Использовать в процессе обучения будем Ubuntu Linux 16.04 LTS.

Установка RVM


Сначала нужно получить открытый ключ с помощью команды gpg. В данном случае это ключ проекта RVM, который используется для подписи всех релизов. С помощью ключа RVM можно подтвердить подлинность загружаемого пакета.

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3


Перейдите в каталог /tmp и загрузите сценарий RVM в файл:
cd /tmp


С помощью команды curl загрузите установочный сценарий RVM с сайта проекта. Обратный слеш в начале команды запустит обычную команду curl, а не её алиас.

Флаг –s включает автоматический режим, -S переопределяет некоторые настройки системы, чтобы в случае ошибки команда curl смогла вывести сообщение. Флаг –L настраивает поддержку переадресации, а флаг –о перенаправляет стандартный вывод в файл.

\curl -sSL https://get.rvm.io -o rvm.sh


Загрузив сценарий, просмотрите его содержимое:

less /tmp/rvm.sh


Перенаправьте сценарий в bash, чтобы установить последнюю стабильную версию Rails, которая, в свою очередь, загрузит последнюю стабильную версию Ruby.

cat /tmp/rvm.sh | bash -s stable --rails


Во время установки будет запрошен пароль текущего системного пользователя. После установки нужно запустить команду:

rvm


Как установить конкретную версию Ruby и Rails с помощью RVM?



В некоторых случаях приложение требует определённой версии Ruby или Rails вместо последней стабильной версии. Такую установку тоже можно выполнить с помощью RVM.

Сначала нужно узнать, какие версии Ruby доступны:

rvm list known


Чтобы установить конкретную версию Ruby с помощью RVM, используйте такую команду:

rvm install ruby_version


Примечание: Вместо ruby_version нужно указать версию Ruby (например, ruby-2.3.0 или просто 2.3.0).

После установки можно просмотреть список версий Ruby, установленных на данную машину.

rvm list


Версии Ruby можно переключать:

rvm use ruby_version


Поскольку Rails является gem-ом, вы можете установить любую версию Rails с помощью команды gem. Чтобы просмотреть список валидных версий Rails, введите:

gem search '^rails$' --all


Чтобы установить выбранную версию Rails, введите:

gem install rails -v rails_version


Примечание: В этой команде нужно указать только номер версии, например, 4.2.7, а не rails_4.2.7.

С помощью gemset-ов можно использовать вместе разные версии Rails и Ruby. Это делается с помощью команды gem.


rvm gemset create gemset_name # create a gemset
rvm ruby_version@gemset_name  # specify Ruby version and our new gemset


Gemset-ы позволяют создавать полнофункциональные окружения для gem-ов, а также настраивать неограниченное количество окружений для каждой версии Ruby.

Установка JavaScript Runtime



Некоторые функции Rails (например Asset Pipeline) зависят от JavaScript Runtime.

Установите Node.js, чтобы обеспечить эту функциональность.

Как и во время установки RVM, перейдите в каталог /tmp, проверьте сценарий Node.js и запустите less:


cd /tmp
\curl -sSL https://deb.nodesource.com/setup_6.x -o nodejs.sh
less nodejs.sh


Чтобы установить репозиторий NodeSource Node.js v6.x, введите:

cat /tmp/nodejs.sh | sudo -E bash -


Флаг -E сохранит существующие пользовательские переменные окружения.

Обновите индекс пакетов и установите Node.Js:


sudo apt-get update
sudo apt-get install -y nodejs


Вот и всё! Теперь вы умеете настраивать окружение для работы с Ruby и Ruby on Rails.
Поделиться с друзьями
-->

Комментарии (10)


  1. ZurgInq
    22.04.2017 20:31

    Зачем этот hello world который есть на сайте rvm? Как насчёт альтернатив rvm? Статья называется изучаем ruby, а в конце вдруг всплыл rails, но ruby != rails. И наконец, для rails совсем не обязательно тащить node.js.


    1. valerasergeevich
      22.04.2017 20:37

      Данная статья показывает как установить ruby, но так же подготовить к rails. Так как после курса по ruby, будет курс по rails. А альтернатива rvm есть, например, rbenv. Но мне не нравиться с ним работать. Может в будущем напишу статью и про его использование. Если будет интересно читателям.


      1. ZurgInq
        22.04.2017 20:48
        +1

        Я понимаю, что вы ведёте к Rails. Но ваш подход слишком однобокий, с первых строк вы пытаетесь всучить читателю инструменты которые ему совсем не нужны, что бы изучить ruby или rails. И было бы честнее, если бы статья называлась «Изучаем Ruby On Rails». Так как, повторюсь, что бы писать на ruby (и rails) совсем не обязательно ставить rvm и целую node.js.


        1. valerasergeevich
          22.04.2017 20:56

          По своему опыту, лучше сразу подготовить начинащего к использованию «правельных инструментов», на мой взгляд. А на счет того, что rvm ставить не обязательно, я с вами не соглашусь. RVM отличный инструмент для контроля версионности ruby, а так же упревления зависимости ruby gems. Так что я выбрал такой подход.


    1. valerasergeevich
      22.04.2017 20:40

      В rails есть gems, для работы которых необходим node.js. Особенно есть используешь Rails 5.0


      1. ZurgInq
        22.04.2017 20:54

        И какой это gem? На всякий случай, в самой документации Rails сказано, что вместо node.js можно поставить гем therubyracer.


      1. LuckySB
        22.04.2017 20:54

        а что такое gems?

        Очень продуктивная статья ниочем.


        1. valerasergeevich
          22.04.2017 20:57

          gems это набор библиотек для ruby. например rails и sinatra являются gemами.


  1. k2m30
    22.04.2017 20:53

    Зачем rvm для hello world? Что там готовить? apt install или brew install ruby
    Надоело — снес точно также.

    Зачем чайнику/новичку еще грабли с разными версиями? Мало там проблем и без этого?


    1. valerasergeevich
      22.04.2017 20:59
      -1

      Начинающего слудует сразу научить правильной рабоет с инструментами. А в дальнейшем, будут уроки по конфигурированию различных версий ruby с определенными версиями ruby gems. Так что я считаю обоснованным погружение в правильную работу с инструментарием.