Há casos em que eu gostaria de reverter e desinstalar todas as instalações de gemas anteriores.
Por exemplo, eu precisava ajudar um amigo a migrar sua máquina de desenvolvimento de trilhos para usar o RVM. Como eles usavam o sistema anteriormente gem
, ele estava com muitas dores de cabeça ao trabalhar com vários projetos. Essencialmente, ele era o garoto-propaganda de um convertido RVM.
Como posso desinstalar elegantemente todas as jóias do sistema OSX?
yes Y | gem uninstall -a -I
Respostas:
Rubygems> = 2.1.0
a
remove todas as versõesI
ignora dependênciasx
inclui executáveisRubgems <2.1.0
fonte
ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem
(gem 2.0.3)for i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
Você também pode criar um novo Gemfile e executar
bundle clean --force
. Isso removerá todas as outras jóias que não estão incluídas no novo Gemfile.fonte
Uma versão diferente, mais leve, pulando a etapa de corte, aproveitando a opção '--no-version':
Como você está removendo tudo, não vejo a necessidade da opção 'I'. Sempre que a gema é removida, tudo bem.
fonte
sudo
não deve ser necessário se as gemas foram instaladas por um usuário comum.Primeiro, verifique se você tem pelo menos a versão 2.1.0 da gem
Para desinstalar, basta executar:
Pode ser necessário usar o
sudo
comando:fonte
Use um
ou
Dependendo do que você deseja, pode ser necessário executar os dois, porque "gem list" e "sudo gem list" fornecem listas independentes.
Não misture uma "lista de gemas" normal com uma "desinstalação de gemas" sudo-ed nem o contrário, caso contrário você poderá desinstalar as gemas instaladas no sudo (anterior) ou com muitos erros (último).
fonte
Se você estiver usando Rubygems versão 2.1.0 ou posterior, você pode tentar:
gem uninstall --all
.fonte
Se você gosta de fazer isso usando ruby:
Felicidades
fonte
Rubygems> = 2.1.0
Se o Terminal retornar abaixo do erro
Em seguida, escreva o comando acima como abaixo
E digite sua senha da conta do Mac OS Concluído !!
fonte
E para aqueles de vocês que estão aqui porque desejam remover todas as jóias com um determinado prefixo ( ahem , estou olhando para você aws-sdk!), Você pode executar algo assim:
Obviamente, coloque sua consulta em vez de
aws-sdk-
. Você precisa do-I
lá para ignorar dependências.Formulário adotado Resposta anterior de Ando
fonte
O único comando me ajudou a limpar todas as gemas e ignora as gemas padrão, que não podem ser desinstaladas
fonte
Eu fiz isso não faz muito tempo (a mesma situação de comutador RVM criança poster):
Pega a lista de todas as gemas (incluindo as versões), corta para manter apenas o nome da gema e depois desinstala todas as versões dessas gemas.
Isso
sudo
só é útil se você tiver gemas instaladas em todo o sistema e não deve ser incluído, a menos que seja necessário.fonte
Ao tentar remover as gemas instaladas como raiz, o xargs parece parar quando encontra um erro ao tentar desinstalar uma gema padrão:
Isso não funcionará para todos, mas aqui está o que eu usei:
fonte
grep aqui está excluindo gemas padrão. Todas as outras gemas serão desinstaladas. Você também pode precedê-lo
sudo
caso tenha problemas de permissão.fonte