Установка камней Ruby, не работающих с Home Brew
Невозможно выполнить создание драгоценных камней через sudo gem install ...
(я получаю command not found
).
Кажется, они устанавливаются в /usr/local/Cellar/
, который является Brew установочным каталогом (также не работают камни в /Library/Ruby/
). Есть ли что-то еще, что мне нужно сделать, чтобы сделать камни исполняемыми? Я использую ZSH в Mac OS X 10.6 с Ruby v1.8 для одного в Brew.
EDIT: Кажется, он работает сейчас. Я просто вышел на несколько часов и вернулся, чтобы повторить попытку.
Ответы
Ответ 1
Вам лучше использовать RVM вместо того, чтобы беспокоиться с Homebrew.
Edit
Еще лучше, используйте rbenv.
Для анонимных downvoters
-
если вы используете downvoting, потому что я рекомендовал RVM вместо rbenv, помните, что, когда я писал этот ответ, rbenv можно было бы найти только на Сэм Стивенсон (или в голове), в то время как RVM был стандартом.
-
если вы фанатик из Homebrew, и вы злитесь, потому что я ударил ваш любимый инструмент, пожалуйста, знайте, что я часто использую его сам и считаю его отличным инструментом. Только тогда, используя выделенный инструмент, был лучший вариант. Возможно, два года спустя все улучшилось. Я не знаю. Я знаю, что мой ответ был ограничен Ruby.
Ответ 2
Доморощенный это приятно. Однако, в отличие от brew
и npm
, gem
не создает псевдонимы в /usr/local/bin
автоматически.
Решение
Лично я пошел за гораздо более простой подход:
export PATH=/usr/local/opt/ruby/bin:$PATH
export PATH=/usr/local/lib/ruby/gems/2.5.0:$PATH
Добавьте это к вашему .bashrc
(или .bash_profile
, .zshrc
и т.д.).
Это! Теперь все Ruby-контейнеры и установленные драгоценные камни будут доступны из вашей оболочки!
Раньше с ruby20 требовалось следующее.
export PATH=/usr/local/opt/ruby20/bin:$PATH
После ruby20 гемы были перенесены в отдельный каталог. Больше не в /usr/local/opt/ruby/bin
, а в /usr/local/lib/ruby/gems/2.0.0/bin
(где 2.0.0 - последняя основная версия Ruby для Gem).
Как это устроено
Homebrew имеет запись пути, по которому установлен пакет. В случае с Ruby он также имеет каноническую символическую ссылку.
$ brew --prefix ruby
/usr/local/opt/ruby
$ l /usr/local/opt/ruby
/usr/local/opt/[email protected] -> ../Cellar/ruby/2.5.3_1
По сути, добавление /usr/local/opt/ruby
к PATH
аналогично следующему:
export PATH=/usr/local/Cellar/ruby/2.5.3_1/bin:$PATH
За исключением этого последнего примера, жестко кодирует текущую установленную версию и перестанет работать при следующем обновлении Ruby.
Что касается Gem, следующая команда скажет вам точный каталог, в который Gem добавляет новые пакеты:
$ gem environment gemdir
/usr/local/lib/ruby/gems/2.5.0
инструменты
Есть/были некоторые инструменты, которые утверждают, что соединяют Homebrew и gem:
Я не использовал их, но они могут работать на вас.
Ответ 3
brew unlink ruby; brew link ruby
может добавить символические ссылки в /usr/local/bin/
:
$ which sass
$ brew unlink ruby; brew link ruby
Unlinking /usr/local/Cellar/ruby/2.0.0-p0... 20 links removed
Linking /usr/local/Cellar/ruby/2.0.0-p0... 31 symlinks created
$ which sass
/usr/local/bin/sass
brew --prefix ruby
все еще довольно медленный, но вы также можете просто добавить /usr/local/opt/ruby/bin
к пути.
$ time brew --prefix ruby
/usr/local/opt/ruby
0.216
$ time brew --prefix ruby
/usr/local/opt/ruby
0.076
$ stat -f%Y /usr/local/opt/ruby
../Cellar/ruby/2.0.0-p0
Ответ 4
Вы можете быть в порядке с рубином, установленным доморощенным тоже. Вам просто не хватает функциональности пользовательских гемзет с доморощенным.
сначала выполните:
sudo nano /etc/paths
это вызовет редактор nano,
затем добавьте следующие пути:
/usr/local/Cellar/ruby/1.9.3-p194/bin
Ваша версия рубина, вероятно, будет изменяться.
Вот оно. Теперь он должен обнаружить ваши драгоценные камни.
О, кстати, вам нужно Ctrl + X > y > ENTER, чтобы сохранить файл в nano.
Ответ 5
Мне нравится домашний brew. Вероятно, есть лучший способ сделать это, но если вы запустите:
gem environment
Это выведет хороший список всех соответствующих путей. Посмотрите на значок с меткой EXECUTABLE DIRECTORY
. Это тот, который вы хотите добавить к своему пути. В моем случае, что /usr/local/Cellar/ruby/1.9.3-p362/bin/ruby
, но я бы предположил, что это изменится с более новой версией Ruby.
Я использую /bin/bash
как свою оболочку, но процесс добавления ее к вашему пути должен быть в значительной степени именем.
Я использую TextWrangler (через инструменты командной строки) для редактирования моего файла .profile
. Для этого просто:
edit ~/.profile
Когда вы закончите, закройте свой терминал и откройте новый или запустите:
source ~/.profile
Ответ 6
Вместо использования = > $(cd $(which gem)/..; pwd)
Вы можете использовать это вместо = > $(brew --prefix ruby)/bin
Ответ 7
Я думаю, что это немного развивается.
Просто добавьте
export PATH=/usr/local/opt/ruby/bin:$PATH
В ваш .bashrc(или .bash_profile,.zshrc/.bashrc,.. - все, что вы используете).
Если у вас есть проблема с самим ruby
brew unlink ruby
brew link ruby