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 / прокладки и $HOME/.rbenv / bin
$ env | grep PATHтакже проверьте, что у вас есть следующее в ваш файл ~/.файл если используете bash или ~/.zshenv при использовании zsh
export PATH="$HOME/.rbenv/bin:$PATH" eval "$(rbenv init -)"Примечание.: Убедитесь, что это последняя настройка в ваш ~/.файл . Я столкнулся проблема, когда я установил программу, обновил .bash_profile и сброс пути.
это может быть старый вопрос, но Google привел меня сюда и, ради потомства, думал, что я поделюсь.
моя проблема сохраняется после многих рекомендуемых решений выше. Как и OP, я установил rbenv, а затем версию ruby, но мой ноутбук по умолчанию перешел на систему. То, что я упустил из виду, было то, что когда я бежал:
[~/.rbenv] $ rbenv versions * system (set by /Users/alphadogg/.rbenv/version) 2.0.0-p247IOW, он все еще был по умолчанию для системы. Быстро
[~/.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-version" есть.вы можете использовать "версии rbenv", чтобы определить, какая версия rbenv установлена для использования (а также расположение и имя файла, который устанавливает что.)
rbenv versionsничего из этого не имеет значения: пока вы не установите путь правильно.
используйте это, чтобы убедиться ,что ваш * MacOS будет подчиняться вам:
eval "$(rbenv init -)"затем:
which rubyчтобы убедиться, что она выглядит: /Пользователи.//rbenv / shims / ruby
затем добавьте строку в свой профиль, чтобы она запускалась каждый раз, когда вы открываете новое окно терминала:
~/.bash_profile eval "$(rbenv init -)"есть и другие способы изменить путь, чувствовать себя бесплатно заменить любой из них вместо запуска инициализации rbenv.
Примечание: переустановите рельсы с помощью:
gem install railsесли вы пытались запустить Ruby on Rails, то вам нужно, чтобы все это работало сначала, а затем снова установить rails gem. Предыдущая установка Rails будет использовать жестко закодированный путь к неправильному Рубину, и несколько других вещей будут в неправильном месте, поэтому просто установите драгоценный камень снова.
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' в вашей оболочке. Эта версия переопределяет локальные версии приложения и глобальную версию. должна быть строка, соответствующая версии 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. Работаетbrew uninstall rubyисправил это для меня.
Я пришел к той же проблеме. Исправлено это путем запуска команды " 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в раздел плагинов в.zshrcconfig. В моем случае это выглядит примерно так:# 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. Я попытался закрыть терминал, но он работал только после того, как я перезапустил всю машину.
Comments