Процесс установки Ruby на Mac OS через систему управления пакетами RVM.
Введение
Я уже писал о том, как установить Ruby на Mac OS через Homebrew.
Минус вышеуказанной установки в том, что Ruby и его гемы будут установлены в рут директорию. В этом нет ничего плохого, если всё делать правильно.
А можно пойти другим путём и установить Ruby и gem-ы, не затрагивая основную версию. Для этого на Mac OS есть сторонние инструменты вроде rbenv и RVM (Ruby Version Manager). На последнем и остановимся.
Установка RVM (система управления пакетами)
Вариант 1
При этой команде может возникнуть ошибка:
Ругается на отсутствие GnuPG. По умолчанию в маке он не установлен. Можно его установить через Homebrew:
А затем заново повторить команду.
Вариант 2
Без дополнительных установок, инсталлируем через curl:
В конце установки появится надпись, которая сообщает, что делать дальше:
in all your open shell windows, in rare cases you need to reopen all shell windows.
Команда установит RVM для текущего пользователя:
На этом установка менеджера для Ruby завершена.
Установка Ruby с помощью RVM
Посмотрим какие версии руби можно установить:
На само деле, указываются не все версии. Самые последние могут не показываться. Можно загуглить последнюю стабильную сборку и указать её версию в установке.
Устанавливаем последнюю версию руби:
Не пугаемся надписи, всё нормально:
No binary rubies available for: osx/10.14/x86_64/ruby-2.5.1.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Установка занимает несколько минут. Полный процесс установки:
Для выбора версии Ruby, которая будет использоваться по умолчанию, используется команда:
Можно вернуться к использованию системной версии ruby
Для каждой из версии руби можно установить отдельный набор гемов (gemset).
Создаём gemset который назовём work:
Можно посмотреть все созданные «наборы гемов»:
Применить «набор сетов» по умолчанию:
Установка gems в Ruby на RVM
Если после установки гемов ничего не работает, можно попробовать установить через sudo.
Устанавливаем гем компосса:
Устанавливаем дополнительные любые другие гемы, например:
rvm @work do gem install autoprefixer-rails
Процесс установки:
Удаляем гем из набора гемов:
где listen — название гема
Чистка и удаление RVM
Удалить определенную версию Ruby:
Чтобы удалить «набор гемов» (gemset):
Посмотреть все установленные версии ruby:
Перезагрузка RVM
Полностью удалить RVM:
Настройка в PhpStorm
По умолчанию compass в маке находится по такому пути:
Однако мы установили в другую директорию, поэтому меняем путь на другой:
Также настраиваем под себя Arguments:
Заключение
- Установили систему управления пакетами для Ruby
- Установили нужную нам версию руби в директорию текущего юзера
- Добавили туда необходимые гемы
- Настроили compass в PhpStorm
Возможные ошибки
/Users/Dream/.rvm/rubies/ruby-2.5.1/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- compass/core (LoadError)
from /Users/Dream/.rvm/rubies/ruby-2.5.1/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
from /Users/Dream/.rvm/gems/ruby-2.5.1@work/gems/compass-1.0.3/lib/compass.rb:14:in `block in '
from /Users/Dream/.rvm/gems/ruby-2.5.1@work/gems/compass-1.0.3/lib/compass.rb:13:in `each'
from /Users/Dream/.rvm/gems/ruby-2.5.1@work/gems/compass-1.0.3/lib/compass.rb:13:in `'
from /Users/Dream/.rvm/rubies/ruby-2.5.1/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
from /Users/Dream/.rvm/rubies/ruby-2.5.1/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
from /Users/Dream/.rvm/gems/ruby-2.5.1@work/gems/compass-1.0.3/bin/compass:20:in `block in '
from /Users/Dream/.rvm/gems/ruby-2.5.1@work/gems/compass-1.0.3/bin/compass:8:in `fallback_load_path'
from /Users/Dream/.rvm/gems/ruby-2.5.1@work/gems/compass-1.0.3/bin/compass:19:in `'
Это может означать, что в шторме, в настройках File Watchers указан неправильный путь.
LoadError on line ["59"] of /Users/Dream/.rvm/rubies/ruby-2.5.3/lib/ruby/site_ruby/2.5.0/rubygems/core_ext/kernel_require.rb: cannot load such file -- autoprefixer-rails
Run with --trace to see the full backtrace
Process finished with exit code 1
Не хватает определенного гема. В данном случае ругается на отсутствие autoprefixer-rails. Как установить недостающие гемы указано выше.