rbenv не меняет версию ruby
Я установил rbenv в соответствии с указаниями github. Я запускаю OSX, но я пробовал это на Ubuntu 12.04 VM и получил те же результаты. Вот что я получаю в своем терминале, когда пытаюсь изменить версии ruby:
rbenv versions
* 1.9.3-p0 (set by /Users/user/.rbenv/version)
1.9.3-p125
rbenv global
1.9.3-p0
rbenv rehash
ruby -v
ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
which ruby
/usr/bin/ruby
у кого-нибудь есть идеи о том, почему rbenv не переключает версию ruby, как она думает? Также нет .файл rbenv в локальном каталоге, который будет вызывать версию ruby по умолчанию 1.8.7
rbenv local
rbenv: no local version configured for this directory
19 ответов
проверьте, что путь содержит $HOME/.rbenv / shims и $HOME/.rbenv / bin
$ env | grep PATH
также проверьте, что у вас есть следующее в ваш файл ~/.файл если используете bash или ~/.zshenv при использовании zsh
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
Примечание.: Убедитесь, что это последняя настройка в ваш ~/.файл . Я столкнулся проблема, когда я установил программу, обновил .bash_profile и путь сброса.
это может быть старый вопрос, но Google привел меня сюда и, ради потомства, думал, что я поделюсь.
моя проблема сохранялась после многих рекомендованных выше решений. Как и OP, я установил rbenv, а затем версию ruby, но мой ноутбук по умолчанию для системы. Я проглядел вот что, когда бежал:--3-->
[~/.rbenv] $ rbenv versions
* system (set by /Users/alphadogg/.rbenv/version)
2.0.0-p247
IOW, он все еще был по умолчанию в системе. Быстрый
[~/.rbenv] $ rbenv local 2.0.0-p247
переключил его на новую версию.
я исправил это, добавив следующее К моему~/.файл:
#PATH for rbenv
export PATH="$HOME/.rbenv/shims:$PATH"
это то, что задокументировано в https://github.com/sstephenson/rbenv.
от того, что я могу сказать нет ~/.каталог rbenv/bin, который был упомянут в сообщении @rodowi.
Я только что нашел эту же проблему. То, что я сделал, это удалить rbenv (через homebrew) и переустановить его. Я также добавил
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
в ~/.файл когда я переустановил rbenv. Теперь работает отлично.
первый шаг-узнать, какой ruby называется:which ruby
ваша система говорит:/usr/bin/ruby
это не прокладка, используемая rbenv, которая (на MacOS) должна выглядеть так:/Users/<username>/.rbenv/shims/ruby
прокладка на самом деле является скриптом, который действует как перенаправление на версию ruby, которую вы установили.rbenv global 1.9.3
rbenv local --unset
rbenv shell --unset
Я рекомендую, чтобы для устранения неполадок вы отключили конкретную "локальную" версию проекта и конкретную " оболочку" версия и просто тест с использованием "глобальной" настройки версии, которая определяется в текстовом файле в ~/.rbenv / verion, который будет просто номером версии "1.9.3" в вашем случае. Вы можете сделать " LS-laG "в корне вашей папки проекта (не домашней папки), чтобы убедиться, что больше нет".ruby-версия " файл там.
вы можете использовать "версии rbenv", чтобы определить, какая версия rbenv установлена для использования (и расположение и имя файла, который устанавливает что.)
rbenv versions
ничего из этого не имеет значения: пока вы не установите путь правильно.
используйте это, чтобы убедиться, что ваш * MacOS будет подчиняться вам:eval "$(rbenv init -)"
затем:which ruby
чтобы убедиться, что она выглядит: /Пользователи.//rbenv / shims / ruby
затем добавьте строку в свой профиль, чтобы она запускалась каждый раз, когда вы открываете новое окно терминала: ~/.bash_profile
eval "$(rbenv init -)"
есть другие способы изменить путь, чувствовать бесплатно заменить любой из них вместо запуска rbenv init.
Примечание: переустановите Rails с помощью:gem install rails
если вы пытались запустить Ruby on Rails, то вам нужно, чтобы все это работало сначала, а затем снова установить rails gem. Предыдущая установка Rails будет использовать жесткий кодированный путь к неправильному ruby, и несколько других вещей будут в неправильном месте, поэтому просто установите драгоценный камень снова.
P. S. Если ваш MacOS не будет подчиняться вам (*упомянуто выше) тогда вам, возможно, придется найти другой способ изменить свой путь, но это вряд ли будет проблемой, потому что "Macs просто работают" ;)
в моем случае изменение ~/.zshenv
не работает. Я должен был внести изменения внутри ~/.zshrc
.
я добавил:
# Include rbenv for ZSH
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
вверху ~/.zshrc
, перезапустил оболочку и вышел из системы.
проверьте, если это сработало:
➜ ~ rbenv install 2.4.0
➜ ~ rbenv global 2.4.0
➜ ~ rbenv global
2.4.0
➜ ~ ruby -v
ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin16]
rbenv help shell
"устанавливает версию Ruby для оболочки, задав переменную среды 'RBENV_VERSION' в вашей оболочке. Эта версия переопределяет localapplication-специфические версии и глобальную версию. должна быть строка, соответствующая версии Ruby, известной rbenv.Строка специальной версии "system" будет использовать систему по умолчанию Ruby. Запустите rbenv versions ' для списка доступных версий Ruby."
при условии, что rbenv был установлен правильно, ruby-v будет соответствовать
rbenv shell 1.9.3-p125
у меня была та же проблема, но вызванная Homebrew:
[~]$ rbenv version
2.3.0 (set by /Users/user/.rbenv/version)
[~]$ ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16]
[~]$ which ruby
/usr/local/bin/ruby
каким-то образом я установил Ruby через Homebrew тоже, и путь Homebrew был впереди пути rbenv в моем $PATH
. Бег!--2-- > исправлено для меня.
Я пришел к той же проблеме. Исправлено это, выполнив команду " rbenv global "с помощью"sudo". Я думаю, это была проблема с разрешением.
обновление: Я наконец нашел решение. На моем mac был один и тот же файл "версия", который находится под "/usr/local/Cellar/rbenv/0.3.0/". Я думаю, что он был создан по ошибке иногда. вы должны удалить его.
когда у меня были эти симптомы, проблема оказалась в том, что установка не удалась на полпути для новой версии Ruby, на которую я пытался переключиться, не заметив. Исправление было удалить и переустановить его.
(Это означало, что, хотя ruby 1.9.3 появился в списке доступных версий rbenv,у него не было исполняемого файла на пути, где rbenv предполагал это. Поскольку rbenv пытается изменить вашу версию ruby, просто добавив местоположение к вашему пути, если есть ничего на самом деле в месте, которое он добавляет, ваша ОС с удовольствием продолжит поиск пути по умолчанию и найдет вашу версию системы, в моем случае, как вопрос 1.8.7.)
Это случилось со мной сразу после переустановки rbenv
. По-видимому, у меня был .ruby-version
файл в моем домашнем каталоге, указав версию, которая больше не существует. Как только я удалил файл, все сработало.
как для меня самый простой способ использовать rbenv
вместе с zsh
добавить rbenv
в раздел плагинов в .zshrc
config. В моем случае это похоже на:
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
# Add wisely, as too many plugins slow down shell startup.
plugins=(git bower rails ruby rbenv gulp npm node nvm sublime)
после этого нет проблем при установке, переключении, использовании версий ruby с помощью rbenv
.
ум, чтобы перезапустить сеанс терминала после внесенных изменений.
выполнить команду
добавьте rbenv в bash, чтобы он загружался каждый раз, когда вы открываете терминал
echo 'if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi' >> ~/.bash_profile
source ~/.bash_profile
это решит вашу проблему ссылка
убедитесь, что последняя строка вашего .bash_profile
- это:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
run:
rbenv init
после того, как я запустил это, когда я установил свою локальную версию rbenv:
rbenv local 2.4.0
затем мой ruby -v
и меня rbenv local
версии совпали.
Примечание: Вы также можете выйти из каталога, в котором вы находитесь, а затем вернуться в него, я заметил, что это было необходимо для меня, чтобы заставить вещи работать.
Как ни странно, версия rbenv не установила .файл rbenv Проверьте с помощью: ls-ltra --> чтобы увидеть, что rbenv был написан
вы можете попробовать использовать chruby? chruby не зависит от проставок, а только изменяет PATH
, GEM_HOME
, GEM_PATH
.
Я забыл удалить rvm перед установкой rbenv. Я удалил rvm и повторно установил rbenv, но система все еще не использовала версию Ruby, обозначенную как глобальная rbenv. Я попытался закрыть терминал, но он работал только после того, как я перезапустил всю машину.