Eu instalei o rbenv de acordo com as instruções do github. Estou executando o OSX, mas tentei isso em uma VM Ubuntu 12.04 e obtive os mesmos resultados. A seguir, é o que recebo no meu terminal quando tento alterar as versões do 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
Alguém tem alguma idéia de por que o rbenv não está mudando a versão ruby como ela pensa? Além disso, não há um arquivo .rbenv no diretório local que faria com que a versão ruby tivesse como padrão 1.8.7
rbenv local
rbenv: no local version configured for this directory
Respostas:
Verifique se PATH contém $ HOME / .rbenv / shims e $ HOME / .rbenv / bin
Verifique também se você possui o seguinte em seu ~ / .bash_profile se estiver usando o bash ou ~ / .zshenv se estiver usando o zsh
NOTA: Verifique se é a última configuração no seu ~ / .bash_profile. Corri para um problema em que instalei um programa que atualizava meu .bash_profile e redefinia o PATH.
Finalmente, certifique-se a sua
$HOME
pasta não tem um.ruby-version
arquivo que você pode ter criado por acidente se você fosse ter feito$ rbenv local <ruby-version>
em sua$HOME
pasta. Fazendo$ rbenv global <ruby-version>' modifies the
$ HOME / .rbenv / versãofile, and the existence of a
.ruby versãofile in the
$ HOMEfolder would override the version set by
$ HOME / .rbenv / version`.Dos documentos:
fonte
exec $SHELL -l
(L inferior)export RBENV_ROOT="$HOME/.rbenv" if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
Trabalhando muito bem :) Verifique também se há PATH init após a declaração rbenv.Corrigi isso adicionando o seguinte ao meu ~ / .bash_profile:
É o que está documentado em https://github.com/sstephenson/rbenv .
Pelo que sei, não há diretório ~ / .rbenv / bin, mencionado no post por @rodowi.
fonte
export PATH="$HOME/.rbenv/bin:$PATH
funcionar (como estava falhando para mim)?~/.rbenv/bin/
se você instalou via homebrew ou linuxbrew. E você não deve ter que configurar o caminho dos calços por conta própria, comorbenv init
faz isso (e mais) para você .Essa pode ser uma pergunta antiga, mas o Google me levou até aqui e, por uma questão de posteridade, achou que eu iria compartilhar.
Meu problema persistiu após muitas das soluções recomendadas acima. Como o OP, instalei o rbenv e, em seguida, uma versão em rubi, mas meu laptop assumiu o padrão de sistema. O que eu tinha esquecido era que quando eu corri:
IOW, ainda estava em falta no sistema. Um rápido
mudou para a nova versão.
fonte
O primeiro passo é descobrir qual ruby está sendo chamado:
which ruby
Seu sistema diz:
/usr/bin/ruby
Este NÃO é o shim usado pelo rbenv, que (no MacOS) deve se parecer com:
/Users/<username>/.rbenv/shims/ruby
O shim é na verdade um script que age como um redirecionamento para a versão do ruby que você define.
rbenv global 1.9.3 rbenv local --unset rbenv shell --unset
Eu recomendo que, para solucionar problemas, desmarque a versão "local" específica do projeto e a versão "shell" específica do shell e apenas teste usando a configuração da versão "global", que é determinada em um arquivo de texto sem formatação em ~ / .rbenv / verion, que será apenas o número da versão "1.9.3" no seu caso. Você pode executar "ls -laG" na raiz da pasta do projeto (não na pasta inicial) para garantir que não exista mais um arquivo ".ruby-version".
Você pode usar "versões rbenv" para identificar qual versão rbenv está configurada para uso (e o local e o nome do arquivo que está definindo isso).
rbenv versions
NENHUM ASSUNTO IMPORTA: até você definir o caminho corretamente.
Use isto para garantir que o seu * MacOS o obedeça:
eval "$(rbenv init -)"
Seguido por:
which ruby
Para garantir que ele se pareça com: /Users//.rbenv/shims/ruby
Em seguida, adicione a linha ao seu perfil para que seja executada toda vez que você abrir uma nova janela do terminal:
~/.bash_profile eval "$(rbenv init -)"
Existem outras maneiras de modificar o caminho, fique à vontade para substituí-las em vez de executar o init rbenv.
NOTA: reinstale o Rails com:
gem install rails
Se você estava tentando rodar o Ruby on Rails, precisa ter tudo isso funcionando primeiro, depois instale a gema do rails novamente. Uma instalação anterior do Rails usará um caminho codificado para o ruby errado e várias outras coisas estarão no lugar errado; portanto, basta instalar o gem novamente.
PS Se o seu MacOS não lhe obedecer (* mencionado acima), talvez seja necessário encontrar outra maneira de modificar seu caminho, mas é improvável que seja um problema porque "Macs simplesmente funcionam";)
fonte
Acabei de encontrar esse mesmo problema. O que fiz foi desinstalar o rbenv (via homebrew) e reinstalá-lo. Eu também adicionei
em ~ / .bash_profile quando eu reinstalei o rbenv. Funciona perfeitamente agora.
fonte
No meu caso, alterar o
~/.zshenv
não funcionou. Eu tive que fazer as mudanças lá dentro~/.zshrc
.Acabei de adicionar:
no topo
~/.zshrc
, reiniciou o shell e efetuou logout.Verifique se funcionou:
fonte
Execute este comando
Adicione rbenv ao bash para que ele seja carregado toda vez que você abrir um terminal
isso vai resolver o seu problema de Referência
fonte
Se você estiver usando o bash , vá para
e adicione a seguinte linha (se ainda não estiver lá)
Se você estiver usando o Zsh, vá para
e adicione a mesma linha de código, no final do arquivo .zshrc.
Em seguida, basta reiniciar o seu terminal e deve estar tudo bem agora.
fonte
rbenv help shell
"Define uma versão Ruby específica do shell, configurando a variável de ambiente 'RBENV_VERSION' no seu shell. Esta versão substitui as versões específicas do aplicativo local e a versão global. Deve ser uma string que corresponda à versão Ruby conhecida pelo rbenv. 'usará o Ruby do sistema padrão. Execute as versões rbenv' para obter uma lista das versões disponíveis do Ruby. "
Desde que o rbenv tenha sido instalado corretamente, o ruby -v corresponderá a
rbenv shell 1.9.3-p125
fonte
Quanto a mim a maneira mais fácil de usar
rbenv
junto comzsh
está adicionandorbenv
a seção de plugins na.zshrc
configuração. No meu caso, é semelhante a:Depois disso, não há problemas ao instalar, alternar, usar versões ruby com a ajuda de
rbenv
.Lembre-se de reiniciar a sessão do terminal após fazer as alterações.
fonte
Eu tive o mesmo problema, mas causado pelo Homebrew:
De alguma forma, eu também instalei o Ruby via Homebrew, e o caminho do Homebrew estava à frente do caminho rbenv no meu
$PATH
. Correndobrew uninstall ruby
consertou para mim.fonte
corre:
Depois de executar isso, quando defino minha versão local do rbenv:
então minhas
ruby -v
e minhasrbenv local
versões coincidiram.Nota: Você também pode querer sair do diretório em que está e depois voltar para ele. Percebi que isso era necessário para que eu fizesse as coisas funcionarem.
fonte
Eu vim para o mesmo problema. Corrigido isso executando o comando "rbenv global" com "sudo". Eu acho que era algo problema de permissão.
atualização: finalmente encontrei a solução. Havia um mesmo arquivo "version" no meu mac, que está em "/usr/local/Cellar/rbenv/0.3.0/". Eu acho que foi criado por engano ocasionalmente. você deve removê-lo.
fonte
Quando tive esses sintomas, o problema foi que a instalação falhou no meio da nova versão do Ruby para a qual eu estava tentando mudar, sem que eu percebesse. A correção foi para excluí-lo e reinstalá-lo.
(Isso significava que, embora o ruby 1.9.3 tenha aparecido na lista rbenv de versões disponíveis, ele não tinha um executável no caminho em que o rbenv supunha que sim. Como o rbenv tenta alterar sua versão do ruby, basta colocar um local para seu caminho, se não houver nada no local que ele precede, seu sistema operacional continuará procurando o caminho padrão e encontrará a versão do sistema, no meu caso, como o da pergunta 1.8.7.)
fonte
para usuário de casca de peixe
fonte
Isso aconteceu comigo logo após a reinstalação
rbenv
. Aparentemente, eu tinha um.ruby-version
arquivo no meu diretório pessoal, especificando uma versão que não existia mais. Depois de excluir o arquivo, tudo funcionou.fonte
Verifique se a última linha do seu
.bash_profile
é:fonte
A resposta aceita sugere adicionar o seguinte:
Isso não funcionará no Mac OSX, ao qual o OP faz referência. De fato, se você instalar o rbenv via
brew install rbenv
, que é realmente o único método de instalação no Mac OSX, poiscurl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-installer | bash
FAIL no OSX, o executável rbenv será instalado em:No entanto, mesmo no OSX, a raiz rbenv permanecerá no diretório $ HOME:
O que isto significa? Isso significa que, quando você instala rubis, eles serão instalados no diretório inicial fornecido em .rbenv:
Agora a instalação do brew fez algum trabalho que você precisaria executar manualmente no Linux. Por exemplo, no Linux, você teria que instalar o ruby-build manualmente como um plug-in:
Isso já foi feito com a instalação do homebrew. Há uma etapa importante que deve ser executada na instalação do homebrew, como na instalação do Linux. Você deve adicionar os calços rbenv ao seu caminho. Para fazer isso, quando o shell iniciar, você deverá avaliar o seguinte comando (que por sua vez adicionará os calços rbenv ao início do seu $ PATH):
Agora, quando você executar
echo $PATH
, você verá os calços rbenv:Agora verifique sua versão do ruby e ela refletirá o rbenv ruby instalado:
fonte
Estranhamente, a versão rbenv não definiu o arquivo .rbenv Verifique com: ls -ltra -> para ver se um rbenv foi gravado
fonte
Você pode tentar usar o chruby ? não chruby não contar com calços, em vez disso, apenas modifica
PATH
,GEM_HOME
,GEM_PATH
.fonte
Esqueci de excluir o rvm antes de instalar o rbenv. Excluí o rvm e reinstalei o rbenv, mas o sistema ainda não estava usando a versão do Ruby sendo designada como global pelo rbenv. Tentei fechar o Terminal, mas só funcionou quando reiniciei a máquina inteira.
fonte