Я установил rbenv в соответствии с инструкциями github. Я использую OSX, но я попробовал это на виртуальной машине Ubuntu 12.04 и получил те же результаты. Вот что я получаю в своем терминале, когда пытаюсь сменить версию 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
Ответы:
Убедитесь, что PATH содержит $ HOME / .rbenv / shims и $ HOME / .rbenv / bin
Также убедитесь, что в вашем ~ / .bash_profile есть следующее при использовании bash или ~ / .zshenv при использовании zsh
ПРИМЕЧАНИЕ. Убедитесь, что это последний параметр в вашем ~ / .bash_profile. Я столкнулся с проблемой, когда я установил программу, которая обновила мой файл .bash_profile и сбросил PATH.
Наконец, убедитесь, что в вашей
$HOME
папке нет.ruby-version
файла, который вы могли создать случайно, если бы вы сделали это$ rbenv local <ruby-version>
в своей$HOME
папке. Делаем$ rbenv global <ruby-version>' modifies the
$ HOME / .rbenv / versionfile, and the existence of a
.ruby-versionfile in the
$ HOMEfolder would override the version set by
$ HOME / .rbenv / version`.Из документов:
источник
exec $SHELL -l
(нижний L)export RBENV_ROOT="$HOME/.rbenv" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Работая довольно хорошо :) Также проверьте PATH inits после объявления rbenv.Я исправил это, добавив следующее в мой ~ / .bash_profile:
Это то, что задокументировано на https://github.com/sstephenson/rbenv .
Из того, что я могу сказать, нет каталога ~ / .rbenv / bin, о котором упоминал в сообщении @rodowi.
источник
export PATH="$HOME/.rbenv/bin:$PATH
работать (как это не получилось для меня)?~/.rbenv/bin/
если вы установили через homebrew или linuxbrew. И вам не нужно самим устанавливать путь прокладок, какrbenv init
это (и многое другое) для вас .Это может быть старый вопрос, но Google привел меня сюда и ради потомства подумал, что я поделюсь.
Моя проблема сохранилась после многих из рекомендуемых решений выше. Как и OP, я установил rbenv, а затем версию ruby, но мой ноутбук по умолчанию подключился к системе. Что я упустил из виду, так это то, что когда я бежал:
IOW, это было все еще по умолчанию для системы. Быстрый
переключил его на новую версию.
источник
Первый шаг - выяснить, какой рубин вызывается:
which ruby
Ваша система говорит:
/usr/bin/ruby
Это НЕ оболочка, используемая rbenv, которая (на MacOS) должна выглядеть так:
/Users/<username>/.rbenv/shims/ruby
На самом деле shim - это скрипт, который действует как перенаправление на установленную вами версию 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
Чтобы убедиться, что это выглядит так: /Users//.rbenv/shims/ruby
Затем добавьте строку в свой профиль, чтобы она запускалась каждый раз, когда вы открываете новое окно терминала:
~/.bash_profile eval "$(rbenv init -)"
Есть другие способы изменить путь, не стесняйтесь заменить любой из них вместо запуска init rbenv.
ПРИМЕЧАНИЕ: переустановите Rails с помощью:
gem install rails
Если вы пытались запустить Ruby on Rails, то сначала нужно, чтобы все это работало, а затем снова установить гем rails. Предыдущая версия Rails будет использовать жестко заданный путь к неправильному рубину, и некоторые другие вещи будут в неправильном месте, поэтому просто установите гем снова.
PS Если ваш MacOS не подчиняется вам (* упомянутый выше), то вам, возможно, придется найти другой способ изменить свой путь, но это вряд ли будет проблемой, потому что «Mac просто работают»;)
источник
Я только что нашел эту же проблему. Что я сделал, так это удалил rbenv (через homebrew) и переустановил его. Я также добавил
в ~ / .bash_profile, когда я переустанавливал rbenv. Работает отлично сейчас.
источник
В моем случае изменение
~/.zshenv
не сработало. Я должен был сделать изменения внутри~/.zshrc
.Я только добавил:
на вершине
~/.zshrc
, перезапустил оболочку и вышел из системы.Проверьте, сработало ли это:
источник
Запустите эту команду
Добавьте rbenv в bash, чтобы он загружался каждый раз, когда вы открываете терминал
это решит вашу проблему Ссылка
источник
Если вы используете Bash , перейдите к
и добавьте следующую строку (если ее там еще нет)
Если вы используете Zsh, перейдите к
и добавьте ту же строку кода в конец файла .zshrc.
Затем просто перезапустите свой терминал, и теперь все должно быть в порядке.
источник
rbenv help shell
"Устанавливает специфичную для оболочки версию Ruby, устанавливая переменную среды 'RBENV_VERSION' в вашей оболочке. Эта версия переопределяет локальные версии приложений и глобальную версию. Должна быть строкой, соответствующей версии Ruby, известной системе rbenv. Строка специальной версии ' 'будет использовать вашу стандартную систему Ruby. Запустите версии rbenv' для получения списка доступных версий Ruby. "
Если rbenv установлен правильно, ruby -v будет соответствовать
rbenv shell 1.9.3-p125
источник
Что касается меня самый простой способ использования
rbenv
вместе сzsh
добавляетrbenv
к плагинов раздела в.zshrc
конфигурации. В моем случае это выглядит примерно так:После этого не возникает проблем при установке, переключении, использовании версий ruby с помощью
rbenv
.Не забудьте перезапустить сеанс терминала после внесенных изменений.
источник
У меня была такая же проблема, но вызванная Homebrew:
Каким-то образом я также установил Ruby через Homebrew, и путь Homebrew был впереди пути rbenv в моем
$PATH
. Бегbrew uninstall ruby
исправил это для меня.источник
бегать:
После того, как я запустил это, когда я установил свою локальную версию rbenv:
тогда мой
ruby -v
и мойrbenv local
версии совпали.Примечание. Возможно, вы также захотите выйти из каталога, в котором вы находитесь, и затем вернуться в него. Я заметил, что это было необходимо для того, чтобы все заработало.
источник
Я пришел к той же проблеме. Исправлено, запустив команду "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
файл в моем домашнем каталоге, указывающий версию, которая больше не существовала. Как только я удалил файл, все заработало.источник
Убедитесь, что последняя строка вашего
.bash_profile
:источник
Принятый ответ предлагает добавить следующее:
Это не будет работать на Mac OSX, на который ссылается OP. Фактически, если вы устанавливаете rbenv через
brew install rbenv
, который на самом деле является единственным методом установки в Mac OSX, посколькуcurl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
в ОС OSX произойдет сбой, тогда исполняемый файл rbenv будет установлен в:Однако даже в OSX корень rbenv останется в каталоге $ HOME:
Что это значит? Это означает, что когда вы устанавливаете рубины, они будут установлены в заданном домашнем каталоге в .rbenv:
Теперь установка brew выполнила некоторую работу, которую вам пришлось бы выполнить вручную в Linux. Например, в Linux вам нужно будет установить ruby-build вручную как плагин:
Это уже сделано с установкой доморощенного. Есть один важный шаг, который должен быть сделан при установке homebrew, как при установке Linux. Вы должны добавить прокладки rbenv на свой путь. Чтобы сделать это, при запуске вашей оболочки вы должны выполнить следующую команду (которая, в свою очередь, добавит прокладки rbenv в начало вашей переменной $ PATH):
Теперь, когда вы бежите
echo $PATH
, вы увидите прокладки rbenv:Теперь проверьте вашу версию ruby, и она будет отражать установленный rbenv ruby:
источник
Как ни странно, версия rbenv не установила файл .rbenv. Проверьте с помощью: ls -ltra -> чтобы увидеть, что был написан rbenv.
источник
Вы могли бы попробовать использовать Chruby ? chruby не полагается на прокладках, а не только он модифицирует
PATH
,GEM_HOME
,GEM_PATH
.источник
Я забыл удалить rvm перед установкой rbenv. Я удалил rvm и переустановил rbenv, но система по-прежнему не использовала версию Ruby, обозначенную rbenv как глобальная. Я попытался закрыть Терминал, но это сработало только после перезапуска всей машины.
источник