Atualizando a versão ruby ​​com Rbenv mas as gemas aparentemente não atualizadas - ruby, rubygems, gem, bundler, rbenv

Acabei de atualizar o Ruby da versão 1.9.3-p448 para 1.9.3-p484 usando rbenv em um servidor de produção do Ubuntu. A atualização parece ser bem sucedida. A versão em Ruby mostra a última versão que acabei de atualizar.

No entanto, quando olho as gemas desta versão 1.9.3-p484 sob o diretório: .rbenv/versions/1.9.3-p484/lib/ruby/gems/1.9.1/gems.

Eu só encontro algumas joias nesse diretório. E quando eu olhei para o diretório da versão anterior, há um monte de joias lá. Eu perdi um passo em algum lugar no processo de atualização do Ruby?

Agora que estou usando a nova versão do Ruby, preciso reinstalar todas as gemas desta versão? Se assim for, vai correr bundle install faz o trabalho?

Respostas:

1 para resposta № 1

Sim, você precisa executar bundle install para a versão rubi ativa. Por favor, certifique-se de que a versão ruby ​​ativa e o gemset para o aplicativo estão definidos corretamente. Basta fazer o seguinte (em Linux / MacOS):

$ cat .ruby-version
ruby-1.9.3-p484

$ cat .ruby-gemset
your_app_name

E antes de atualizar gem, por favor, volte a entrar na sua pasta application / gem.

$ cd ..
$ cd your_app_name

Eu tenho uma nota adicional. Se a sua candidatura for uma gema, não há razão para adicionar o .ruby-versione .ruby-gemset arquivos para o git repositório, basta adicioná-los .gitignore Arquivo. Quando sua aplicação é um trilhos app, adicionando os arquivos junto com o Gemfile.lock para dentro git O repo faz sentido, porque você corrige a versão do ruby ​​e o gem set para o aplicativo da web, para aquele que é o que funciona de maneira única. Também alguns serviços em nuvem como heroku requer Gemfile.lock para ser adicionado em um git repo.


2 para resposta № 2

Em suma, sim. Como o rbenv mantém um diretório separado para cada instalação ruby, você precisará executar bundle novamente para instalar as gemas para esse rubi.

Quando você instala uma gema em execução no ruby ​​1.9.3-p448, por exemplo, essa gema será instalada para esse rubi. Quando você muda para outra versão do ruby, essa gem não estará disponível para uso até que você a instale.


Cardápio