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.