Acabei de instalar o RVM, mas não consigo fazê-lo funcionar. Eu tenho essa linha no final do meu .profile
arquivo:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
Tentei executar source .profile
e reiniciar o terminal, mas ainda assim, quando executo rvm use 1.9.2
, estou recebendo:
RVM is not a function, selecting rubies with 'rvm use ...' will not work.
Meu sistema é o Ubuntu 11.10.
Respostas:
Você não está usando um shell de login.
O processo de ativar o sinalizador de login é descrito aqui , e também alguns detalhes sobre o que é um shell de login aqui .
Portanto, você precisa marcar a opção "Executar como shell de login" nas configurações do terminal Gnome. É necessário abrir um novo terminal após esta configuração da bandeira.
Às vezes é necessário para definir o comando para
/bin/bash --login
.Para conexões remotas , é importante entender as diferenças entre executar uma
ssh
sessão interativa e executar comandos únicos.Durante a execução
ssh server
e o trabalho interativo com o servidor, você está usando o shell de login por padrão e está tudo bem, mas parassh server "command"
você não está usando o shell de login, seria necessário executá-lossh server 'bash -lc "command"'
.Qualquer chamada remota pode ter o mesmo problema que executar um comando único com
ssh
.fonte
rvm get stable --auto
e verificar suas configurações de terminais--auto
havia sido preterido em favor de,--auto-dotfiles
então o comando agora érvm get stable --auto-dotfiles
Você precisa executar o seguinte
então execute isso
e se você conseguir
o problema está resolvido.
Você também precisa executar
user$ rvm requirements
para ver os requisitos de dependência do seu sistema operacionalFonte: https://rvm.io/rvm/install/
Esqueci de mencionar que você precisa inserir esse código em seu arquivo ~ / .bashrc ou ~ / .zshrc e não precisará escrever esse código novamente. Felicidades!
fonte
Para resolver permanentemente, basta recortar / colar a seguinte linha:
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
De:
~/.bash_profile
arquivoPara:
~/.bashrc
arquivoA razão pela qual isso funciona é que
.bashrc
é executado sempre que você entra no terminal e.bash_profile
cada vez que faz login. É por isso que a solução/bin/bash --login
funciona, mas você deve fazer isso sempre que entrar no terminal. Dessa forma, você estará definido até o próximo formato e esquecerá tudo isso até lá :)fonte
~/.bashrc
vez de~/.bash_profile
.Eu também enfrentei esse problema. Finalmente eu executei esta linha no terminal.
O problema está resolvido. Porque essa linha fará da instância do RVM uma função por um tempo específico.
fonte
O último RVM (rvm 1.11.6 (estável)) parou de funcionar no Ubuntu (10.10 - 64 bits - nerd gnat ou o que for) - eu continuava recebendo
"RVM não é uma função, selecionar rubis com 'rvm use ...' não funcionará."
Antes, recebi a mensagem, mas 'rvm 1.9.3-p0@rails321' funcionaria. Agora, não funcionaria - você não podia mudar os conjuntos de pedras preciosas.
Nada funcionou, até que eu encontrei isso - faça desta a ÚLTIMA linha
/home/your-name/.bashrc
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
fonte
Como você disse, o erro mostrado pode ser o seguinte.
Como dito acima, basta digitar ' / bin / bash --login ' no seu terminal (depois de reiniciar o seu terminal) e digite o comando 'rvm use 1.9.3' (por exemplo) e ele começará a usar a mesma versão.
Basta executar o comando 'ruby -v' para confirmar que o RVM está usando a versão atualizada do Ruby.
fonte
Eu também tive esse problema em uma instalação nova do rvm, e nenhuma das respostas aqui o corrigiu. Indo para o site oficial do rvm, na seção básica, eles têm este comando:
Você deve alterar a versão 1.9.3 para a versão ruby que realmente deseja, e isso tornará a rvm uma função, independentemente do tipo de shell.
fonte
mesmo que você tenha aceitado uma resposta, gostaria de sugerir outra maneira .. ~ / .bashrc é carregado antes que qualquer shell seja aberto. Adicione essa linha no final disso e você não precisará de nada disso
fonte
Talvez você possa tentar abaixo:
fonte
Execute
bash --login
e depois executervm use 2.0.0
.fonte
Abra o Terminal e, em seguida, vá em Editar> Preferências do perfil e, em seguida, vá para a guia " Título e comando " e marque " Executar comando como shell de login ".
Inicialize o Bash e agora você pode instalar o Gems diretamente do terminal sem o uso do sudo e o erro " RVM não é uma função, a seleção de rubis com 'rvm use ...' não funcionará. " Será eliminada.
Felicidades.
fonte
Todas as respostas acima são válidas. Mas quando enfrentei o mesmo problema, a solução foi a seguinte:
sudo chsh -s $(which zsh) $USER
Verifique se o código a seguir está na parte inferior do seu
.zshrc
depois de instalar o RVM mais recente, provavelmente usando o CURL no site oficial do RVMPONTO MAIS IMPORTANTE: Verifique se no seu
.zshrc
arquivo todas as exportaçõesPATH
são anexadas:$PATH
. Que eu acredito que foi a raiz dos meus problemas, mesmo depois de seguir as etapas acima.postar isso todos os meus problemas de RVM Não sendo uma função desapareceu. Se ainda assim não funcionar, forneça algum rastreio de erro aqui. Após algumas horas de luta para resolver esse problema, tenho certeza de que devo ter visto todos os erros relacionados.
Espero que ajude. Felicidades!
fonte
export PATH="/usr/bin:"
. Ele vai pedir para você anexar$PATH
a ele. Esta foi a causa de um dos meus problemas. Portanto, todosexport PATH
deveriam ter sido$PATH
anexados para que, antes da exportação, qualquer que seja aPATH
variável que foi anexada. De qualquer forma, é bom que isso tenha sido útil.Procedimento para instalar o Ruby 1.9.3-p125 no Mac OSX 10.8 Mountain Lion
http://www.frederico-araujo.com/2011/07/30/installing-rails-on-os-x-lion-with-homebrew-rvm-and-mysql/
Notas:
Para instalar o ruby, pode ser necessário especificar o compilador clang:
$ rvm install 1.9.3p125 --with-gcc = clang
Se o RVM reclamar sobre / usr / local / rvm não encontrado, será necessário criar um link:
$ ln -s / Users / [seu nome de usuário] /. rvm / usr / local / rvm
fonte
... deve fazer o truque ..., provavelmente precisará sair e fazer login novamente.
Como recarregar .bash_profile na linha de comando?
fonte
Eu recebi o mesmo erro porque já havia instalado a versão antiga do rvm ruby-rvm com o comando apt-get.
Resolvi o problema removendo a linha de script para configurar o antigo rvm no arquivo .bashrc.
Verifique o antigo script de configuração do rvm e execute o arquivo .profile
fonte
Instruções «oficiais» estão disponíveis: https://rvm.io/integration/gnome-terminal/
fonte
Corrigi-o adicionando esta linha ao .bash_profile:
fonte
Eu tive o mesmo erro, mas nenhuma das soluções nesta página parecia funcionar. Para mim, bastava adicionar o
rvm
executável ao meu caminho:Et voila!
fonte
Eu tive o mesmo problema e fiz isso no meu .bash_profile e funcionou.
source "$HOME/.rvm/scripts/rvm"
.fonte
Para quem vem com o mesmo problema e está usando o lubuntu como eu segui este link :
Você inicia seu terminal com
Obrigado a @mpapsis que me indicou a direção certa
fonte
Minha maneira impura de mudar a versão ruby é
rvm alias create default ruby-2.2.3 && source ~/.bashrc && rvm list
funciona porque eu tenho a linha abaixo no meu ~ / .bashrc, mas estranhamente não faz o trabalho automaticamente.
[[ -s "/usr/local/rvm/bin/rvm" ]] && source "/usr/local/rvm/bin/rvm"
Tentei conectar-me ao --login no contêiner do docker
mas, nesse caso, o contêiner fica aberto em segundo plano e não consigo inserir comandos.
Eu tentei zhc e terminal com a opção "abrir com
/bin/bash --login
"fonte