Como configurar o Ruby GEM_HOME e o GEM_PATH

9

Sou um usuário NOVICE do Linux e uso o Linux mint 17.1

Eu reinstalei o Linux Mint 20 nos últimos 3 dias para esse problema, mas não consegui corrigi-lo

Estou tentando instalar o ruby on rails usando o rvm. O que aconteceu é que se você iniciar uma nova instalação do Linux e tentar instalar gemas e ruby e outras coisas em uma sessão de terminal instalada com êxito assim que eu fechar a sessão de terminal não posso Pegue essas jóias.

Ao reinstalar mais de 20 vezes nos últimos três dias, também pesquisei na Web. Fui avisado para colocar a variável de ambiente em /etc/environment ecoei o caminho naquela sessão e colei isso no arquivo /etc/environment .

mesmo agora não recebo minhas gemas instaladas

quando eu digitei rvm -v , recebi os seguintes erros

Warning: PATH set to RVM ruby but GEM_HOME and/or GEM_PATH not set, see:
    https://github.com/wayneeseguin/rvm/issues/3212

Warning! PATH is not properly set up, $GEM_HOME is not set,
         usually this is caused by shell initialization files - check them for 'PATH=...' entries,
         it might also help to re-add RVM to your dotfiles: 'rvm get stable --auto-dotfiles',
         to fix temporarily in this shell session run: 'rvm use ruby-2.2.2'.
rvm 1.26.11 (latest) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

Eu sou uma pessoa muito novata quando se trata de trabalhar com terminal eu posso executar alguns comandos básicos para trabalhar com ruby.

Eu gostaria de saber

  1. Como definir o PATH
  2. Como definir GEM_HOME
  3. Como definir GEM_PATH

Abaixo está o meu caminho completo

echo $PATH
/home/sharif/.rvm/gems/ruby-2.2.2/bin:/home/sharif/.rvm/gems/ruby-2.2.2@global/bin:/home/sharif/.rvm/rubies/ruby-2.2.2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/sharif/.rvm/bin
    
por Amjad 14.05.2015 / 14:12

6 respostas

15

Parece que você deseja o comando export para definir variáveis de ambiente:

export PATH=$PATH':/path/to/add'
export GEM_HOME=$HOME/.gem
export GEM_PATH=$HOME/.gem

Isso só terá efeito para a sessão atual. Para torná-los mais permanentes, adicione essas linhas ao seu ~/.bashrc .

    
por 16.06.2015 / 15:04
3

Geralmente, isso significa que o rvm não está configurado corretamente. O erro comum é que você não modificou seu .bashrc corretamente (ou similar) ou não recarregou seu terminal.

Você não deve definir GEM_HOME ou GEM_PATH manualmente ao usar rvm.

Você pode tentar source ~/.rvm/scripts/rvm e ver se isso funciona.

Também pode ser que você ainda não tenha criado um gemset. Não use rvm e sudo. O RVM funciona melhor quando instalado na sua conta e não no sistema.

    
por 16.06.2015 / 15:27
1

Aqui está o que eu aprendi e como resolvi este problema aparentemente comum de variáveis de ambiente GEM_HOME e GEM_PATH não configuradas com erro.

Plano de fundo

A instalação do RVM deve criar GEM_HOME e GEM_PATH env vars para cada RVM que é configurado e faz isso. Mas há um bug aparentemente tal que em alguns casos o env vars é definido apenas temporariamente, e para configurá-los novamente você deve configurá-los com a linha de comando. Eu encontrei uma solução para fazer o env vars persistir por um RVM.

Solução alternativa

  1. Encontre sua versão Ruby ativa (no RVM): Em seu servidor de produção, vá para o diretório do aplicativo e digite $rvm list . Isso resultará em uma lista das versões Ruby instaladas e qual delas está ativa para o RVM. Exemplo da resposta:

    rvm rubies ruby-1.9.3-p547 [ x86_64 ] => ruby-1.9.3-p551 [ x86_64 ]

Então, eu sei que o RVM está atualmente usando a versão ruby-1.9.3-p551 . Você precisa desta informação para o próximo passo.

  1. Obtenha os caminhos para GEM_PATH e GEM_HOME : você faz isso executando a linha de comando $rvm use ruby-1.9.3-p551 . Então, ainda da linha de demonstração, mostre todas as configurações do ambiente usando o comando env . Pesquise por GEM_PATH e GEM_HOME e copie-os na íntegra em um espaço de trabalho.

    GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551

  2. Defina as variáveis de ambiente GEM_HOME e GEM_PATH: Agora defina essas variáveis de ambiente em um dos muitos arquivos de perfil. Eu queria manter a estrutura de isolamento da versão RVM, então atualizei o /profile.d/appspecific.sh com estas duas linhas:

    export GEM_PATH=/usr/local/rvm/gems/ruby-1.9.3-p551:/usr/local/rvm/gems/ruby-1.9.3-p551@global export GEM_HOME=/usr/local/rvm/gems/ruby-1.9.3-p551

por 23.08.2015 / 19:58
1

Descobri que .profile é carregado por último e que coloca ~ / .local / bin e ~ / bin na frente do caminho. Eu movi /etc/profile.d/rvm.sh para ~ / .rvm e no final do .profile eu adicionei "source ~ / .rvm / rvm.sh" e o erro desapareceu. Eu estou no Linux Mint 18.3. Eu tenho pyenv, rvm e sdkman instalados e todos eles querem ser o último. Eles estão todos funcionando bem agora. :)

Se for um sistema compartilhado, simplesmente mova o rvm.sh para algum lugar fora do caminho e qualquer outro usuário pode obtê-lo, como em /opt/rvm/rvm.sh, por exemplo.

    
por 21.02.2018 / 03:41
0

Como @coteyr mencionou, você não deve definir manualmente GEM_HOME e GEM_PATH ao usar rvm . Se você verificar sua variável de ambiente PATH, executando $ echo $PATH e $ HOME / .rvm / bin é parte dela, então você precisa ter certeza de que seu terminal executa comandos como um shell de login. Por exemplo, se você estiver em uma máquina Ubuntu, abra seu terminal e vá para: menu > Editar > Preferências de perfil > Comando , em seguida, selecione "Executar comando como um shell de login"

Este parece ser um problema antigo com rvm , que eu assumo não é trivial de corrigir, já que já existe há algum tempo.

    
por 10.08.2016 / 09:37
0

Para preencher $GEM_PATH com o meu sistema (Manjaro / Arch) gems adicionei ao meu .bashrc :

for _entry in /usr/lib/ruby/gems/*; do
  if [[ -d $_entry ]]; then
    # TODO: Add only if not there already
    export GEM_PATH=$_entry:$GEM_PATH
  fi
done
unset _entry
    
por 08.10.2018 / 17:17