Как использовать chruby для ручного изменения версии ruby ​​в соответствии со значением в.ruby-version

Я использую источник /usr/local/opt/chruby/share/chruby/auto.sh для автоматического переключения ruby ​​на версию в.ruby-версии, но, к сожалению, это работает только на CD.

Когда я открываю новую вкладку в моем терминале Mac, она открывается в том же каталоге, в котором я находилась на предыдущей вкладке, но автоматическое изменение не работает. Мое решение этого заключается в cd .. и cd обратно, что вызывает изменение. Это утомительно, очевидно.

Я пытался вручную вызвать функцию chruby_auto в новой вкладке, но это не имеет никакого эффекта.

Может кто-нибудь предложить решение, как обновить мою версию ruby ​​в этом случае? Я бы предпочел автоматическое решение, но соглашусь на команду для вызова.

2 ответа

Решение

На самом деле не имеет значения, я проследил это до проблемы в порядке этих вызовов в моем.bashrc

source /usr/local/opt/chruby/share/chruby/chruby.sh
source /usr/local/opt/chruby/share/chruby/auto.sh
chruby ruby-2.3.0 

Оказывается, вы должны вызывать автоматическую линию ПОСЛЕ строки по умолчанию. Обратите внимание, что строка по умолчанию должна быть также после строки chruby.sh.

source /usr/local/opt/chruby/share/chruby/chruby.sh
chruby ruby-2.3.0 # default order important, if comes after auto.sh, will undo the auto change
source /usr/local/opt/chruby/share/chruby/auto.sh

Так что просто оставив этот ответ здесь для потомков, я думаю,

Если я не понимаю вашу проблему, похоже, что вы хотите ~/.ruby-version файл (отличается от .ruby-version файл в вашем проекте), чтобы вы могли определить, какую версию Ruby вы хотите использовать по умолчанию при открытии нового окна терминала (это значение затем будет переопределено проектом .ruby-version файл, если он существует). Например, в моем ~/.bashrc, Я имею:

if [[ -e /usr/local/share/chruby ]]; then
  # Load chruby
  source /usr/local/share/chruby/chruby.sh
  # Allow auto-switching of Ruby version when
  # directory has a .ruby-version file
  source /usr/local/share/chruby/auto.sh
fi

мой ~/.ruby-version просто содержит 2.3.1 и звонить не нужно chruby явно в ~/.bashrc, Для получения дополнительной информации см. Раздел Ruby по умолчанию chruby README файл.

Другие вопросы по тегам