Доморощенный это хорошо. Однако в отличие от brew
и npm
, gem
не создает псевдонимы в /usr/local/bin
автоматически.
Решение
Я выбрал очень простой подход (по состоянию на март 2019 г.):
export PATH=/usr/local/opt/ruby/bin:$PATH
export PATH=/usr/local/lib/ruby/gems/2.5.0/bin:$PATH
Добавьте это к .bashrc
(или .bash_profile
, .zshrc
и т. Д.).
Вот и все! Теперь все Ruby-контейнеры и установленные драгоценные камни будут доступны из вашей оболочки!
В более старых версиях Homebrew (до 2017 года) для Ruby 2 существовал отдельный пакет под названием ruby20
, для которого вместо этого вы использовали бы следующий фрагмент:
export PATH=/usr/local/opt/ruby20/bin:$PATH
Эта строка была единственной, необходимой в то время. Но в Ruby 2.1 гемы были перенесены в отдельный каталог. Больше не в /usr/local/opt/ruby/bin
, а вместо /usr/local/lib/ruby/gems/2.0.0/bin
(где «2.0.0» - последняя основная версия Ruby для целей Gem).
Как это работает
Homebrew отслеживает, куда он установил пакет, и поддерживает символическую ссылку для вас, которая указывает там.
$ brew --prefix ruby
/usr/local/opt/ruby
$ l /usr/local/opt/ruby
/usr/local/opt/ruby@ -> ../Cellar/ruby/2.5.3_1
Фактически добавление /usr/local/opt/ruby
к PATH
аналогично следующему:
export PATH=/usr/local/Cellar/ruby/2.5.3_1/bin:$PATH
Кроме того, эта длинная версия жестко кодирует установленную на данный момент версию Ruby и перестает работать при следующем обновлении Ruby.
Что касается Gem, следующая команда скажет вам точный каталог, в который Gem добавляет новые пакеты:
$ gem environment gemdir
/usr/local/lib/ruby/gems/2.5.0
Инструменты
Эти инструменты предназначались для автоматического соединения между Homebrew и Gem:
Я не использовал их, но они могут работать для вас.