Pull to refresh

Comments 18

Один нюанс про который забыто в статье. После установки джемов которые ставят бинари (или шелл скрипты) в bin для ruby надо после дёргать rbenv rehash. Иначе, после gem install rails команда rails не доступна. Если использовать всегда bundler то это можно и не делать, Bundler сам всё сделает.
Когда выступаю в роли админа, ужасно бесит эта особенность gem'ов — ставятся в обход системного пакетного не только в свой /usr/lib/ruby, но и в bin.
Наверное, не стоит запускать лишнего под su.
А вы предлагаете под каждого юзера ставить отдельный набор гемов?
Пока не слишком понимаю, зачем вообще многим юзерам Ruby. Или эти юзеры так друг другу доверяют, что спокойно запускают бинарники друг друга? Может, их просто внести в общую группу, и сделать .rbenv/versions общим через символические ссылки?
Да, это отдельная и довольно интересная фича. В rbenv используются три уровня, global (системный, общий), local (директория) и shell (текущая сессия), для каждого из которых можно установить в качестве используемой свою версию Ruby, причём приоритет у shell выше, чем у остальных, а у local выше, чем у global.
Видимо вопрос скорее не в этом. А в том что «если ли в rbenv аналог .rvmrc». Есть. Создаём в проекте файл .rbenv-version с содержимым «1.9.3-preview1» и при заходе в проект rbenv сменит руби на нужный.
Ну, в принципе rbenv local ровно это самое и делает — этот файл создаёт.
Тоже недавно перешел с rvm на ruby-build и rbenv.
Также важно отметить, что разным версия ruby ставится разный rubygems. C 1.8.7 ставится 1.6.2, что приятно.
>>Исхожу из того, что у вас установлена ОС, отличная от Windows.

А для любителей маленького и мягкого подобные решения есть?
а в чем приемущество то? rvm — ставится с пол пинка, rehash не требует — «круто, но зачем»?
В rvm есть баг когда ты заходишь в терминале через mc в проект с .rvmrc которому rvm ещё не доверяет, терминал виснет. Наверно ожидает ввода «yes» на вопрос о доверии к нему. Совсем недавно это было «исправлено» отключением этой фичи в rvm.
ну а помимо? :) есть какое то приемущество, конкретно под macos?
Я бы сказал то, что rbenv это просто переписанный правильно rvm который делает только одно своё дело. Переключает версии руби. Больше ничего он не делает. Об этом написано на https://github.com/sstephenson/rbenv. А так как это продвигают 37signals, то точно будет популярно. :)
Не делает ничего лишнего. Цитируя автора:
— не перегружает команды оболочки, такие как cd
— не имеет конфигурационного файла, так как ничем, кроме как контролем версий Ruby не занимается
— не устанавливает Ruby, для этого есть ruby-build, или это можно сделать вручную
— не управляет gemset'ами, для этого есть Bundler или, на худой конец, rbenv-gemset
— не требует патчей совместимости для Ruby gem'ов
Итого — ничего лишнего, KISS.
Sign up to leave a comment.

Articles