Eu tenho várias versões de uma gema Ruby:
$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)
Como posso remover versões antigas, mas manter as mais recentes?
# remove all old versions of the gem
gem cleanup rjb
# choose which ones you want to remove
gem uninstall rjb
# remove version 1.1.9 only
gem uninstall rjb --version 1.1.9
# remove all versions less than 1.3.4
gem uninstall rjb --version '<1.3.4'
Para remover versões mais antigas de todas as gemas instaladas, os seguintes 2 comandos são úteis:
gem cleanup --dryrun
O comando acima irá visualizar quais gemas serão removidas.
gem cleanup
O comando acima realmente os removerá.
Tente algo parecido
gem uninstall rjb --version 1.3.4
.fonte
Maneira de limpar quaisquer versões antigas de gemas.
Se você quiser apenas ver uma lista do que seria removido, você pode usar:
Você também pode limpar apenas uma gema específica especificando seu nome:
para remover apenas uma versão específica como a 1.1.9
Se você ainda estiver enfrentando alguma exceção para instalar o gem, como:
gem inválido: o pacote está corrompido, exceção ao verificar: método indefinido `size 'para nil: NilClass (NoMethodError) em /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. gema
o, você pode removê-lo do cache:
Para mais detalhes:
http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html
fonte
sudo
gem cleanup
usa comandos do sistema. As gemas instaladas são apenas diretórios no sistema de arquivos. Se você deseja excluir em lote, userm -R
.gem environment
e observe o valor deGEM PATHS
cd <your-gem-paths>/gems
ls -1 |grep rjb- |xargs rm -R
fonte
Pode ser necessário definir
GEM_HOME
a limpeza para funcionar. Você pode verificar quais caminhos existem para gemfiles executando:Tome nota da seção GEM PATHS.
No meu caso, por exemplo, com gemas instaladas na minha casa de usuário:
fonte