Como eu mudo minha versão de Ruby usando RVM?


111

Não consigo mudar a versão atual do Ruby:

➜  ~  rvm list

rvm rubies

   ruby-1.9.2-p290 [ x86_64 ]
   ruby-1.9.3-p0 [ x86_64 ]

➜  ~  rvm use ruby-1.9.3-p0

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

tem certeza de que instalou o rvm corretamente? qual sistema operacional você está usando?
— lesce

2
Anexe o resultado de rvm infoà sua pergunta, por favor.
— The Tin Man

Tive um problema semelhante ao instalar o rvm com apt-get no Ubuntu 11.10, tive que removê-lo e reinstalá-lo com$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
— lesce

4
Você tem a função de carregamento RVM no script de inicialização do shell? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"é o código a ser usado. Se você tiver RVM instalado em seu caminho, mas não tiver isso em seu script de inicialização, poderá obter o RVM is not a functionerro.
— Michelle Tilley

Esta solução funciona para mim - rvm.io/integration/gnome-terminal
— gotqn

Respostas:


122

Corrigido. Eu precisava adicionar:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"  # This loads RVM 

para .zshrc


57

Isso aconteceu comigo também. Eu tinha:

export PATH=~/.rvm/bin:$PATH

Adicionado em meu .bashrc.

Tudo que eu tive que fazer foi adicionar outro

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

para o mesmo arquivo e funcionou! Claro, você tem que reiniciar seu terminal depois disso.


1
eu tinha essa mesma linha (o [[-s "$ HOME / ...) em meu ~ / .bash_profile e não parecia" pegar "quando abri um novo terminal ... mas quando adicionei a linha abaixo da linha PATH no ~ / .bashrc, funcionou - ou seja, eu poderia digitar rvm usando 1.9.3 e ele reconheceria imediatamente o rvm como um comando sem que eu precisasse digitar source ~ / .bash_profile - i ' Não sou uma pessoa que trabalha com Linux, então isso me confunde, mas estou feliz que tenha funcionado. Talvez alguém possa esclarecer minha confusão.
— TimDog

isso é ótimo, acabei de colocar esta linha em ~ / .bashrc, funciona. mas também não sei por quê.
— Jack Ma,

Sim, está funcionando. Mas toda vez que eu reinicio minha máquina, tenho que dar os comandos mencionados acima. Se eu não fornecer os comandos, ele diz que o rvm não é uma função.
— Apurva Mayank

11

Seu shell não sabe sobre a função RVM. Depois de instalá-lo, ele informa como cuidar disso. Ou vá para a página de instalação no site RVM e verifique a seção intitulada "2. Carregar RVM em suas sessões de shell como uma função"

Execute isso uma vez para adicionar a linha que carrega o rvm em seu ~ / .bash_profile:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

ou adicione-o manualmente. (Observe que em alguns sistemas, você vai querer colocá-lo em outros lugares, por exemplo no meu sistema, Mac OSX Lion, eu coloquei em ~ / .profile)


Estou usando o OS X Snow Leopard, colocar essa linha em meu .profile funcionou para mim.
— Heldraug

9

(Kubuntu 11.10) O ~/.bash_profile agora é chamado~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile
source ~/.profile
rvm info # And now the fields display

6

Para alterar a versão padrão do ruby:

No Ubuntu 11.10
, altere a configuração do terminal GNOME:

Vá para o Terminal e siga as seguintes instruções:

1.  Edit > Profile Preferences
2.  Open Title and Command Tab               
3.  Check Run Command as a login Shell 
4.  Restart terminal

Execute este comando no terminal:

rvm --default use ruby_Version

5

Para adicionar toda a funcionalidade RVM ao seu .bash_profile, você deve usar o seguinte comando:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile

Depois disso, você deve recarregar o shell atual ou abrir uma nova sessão de terminal e digitar o seguinte comando para recarregar .bash_profile:

source .bash_profile

4

A solução acima só funcionará se o RVM for instalado para o usuário atual. Uma solução mais geral usaria a variável de caminho RVM:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"

rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
— Jose Alban

3

Eu só tive que invocar a fonte ~/.bash_profile


3

Em uma instalação limpa do Ubuntu 12.04, tive o mesmo problema. O instalador RVM cria ou anexa a um arquivo chamado ~ / .bash_login o trecho de código necessário para evitar o problema original:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

No entanto, isso não parece ser invocado. Adicioná-lo a ~ / .bashrc resolveu o problema para mim.


1

Instalando RVM, veja aqui http://octopress.org/docs/setup/rvm/


Não use fontes não autorizadas para instalar o RVM. A página de instalação do RVM diz especificamente: "Observe que quaisquer tutoriais externos NÃO são suportados, funcionem ou não. Os tutoriais são ótimos, no entanto, gastamos muitas horas de trabalho depurando o processo de instalação. Use o (s) processo (s) de instalação de apenas este site, visto que são os únicos tipos e métodos de instalação suportados. "
— O Homem de Lata de

1

No meu caso no Ubuntu, a entrada em ~ / .bashrc tinha:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && ."$HOME/.rvm/scripts/rvm" # BAD

ao invés de:

 [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # WORKING

Observe a falta de espaço entre eles. e "$ HOME.

Além disso, se este for o problema, você também deve notar um erro na parte superior ao iniciar o terminal.


0

Tive uma instalação global do RVM, que executa /etc/profile.d/rvm.sh. No entanto, esse script requer que BASH_VERSION ou ZSH_VERSION seja definido. Eu estava correndo do crontab, que usa "sh".

Eu criei um script de wrapper que usa / bin / bash para fonte /etc/profile.d/rvm.sh.


0

Você precisa alterar as preferências do emulador de terminal para permitir o shell de login. Às vezes, é necessário usar /bin/bash --logincomo o comando.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.