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
755   19  

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-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-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 в раздел плагинов в .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 -)"

для Рыб оболочки пользователя

set --universal fish_user_paths $fish_user_paths ~/.rbenv/shims/

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

    Ничего не найдено.