Desinstalar trilhos e gemas, obtendo erro "Não pode desinstalar, verifique 'Gem List -d…'
-
25-09-2019 - |
Pergunta
Vou começar com a linha de noob habitual, "Eu sou novo no Rails". Ah, e estou executando o Mac OSX 10.6.4
Eu tenho seguido um monte de guias para ser configurado, especificamente esses dois aqui e aqui. Os guias são ótimos, a razão pela qual estou usando o segundo é por causa do RVM e a razão pela qual estou usando o primeiro é para o MySQL.
De qualquer forma, quando comecei, não estava seguindo completamente as instruções e, depois de instalar o RVM, por algum motivo, instalei trilhos com sudo gem install rails -v 2.3.8
Porque essa é a versão que eu preciso. Então ... percebi que estava usando o sistema Ruby e não estava aproveitando o RVM. O que fiz agora foi instalar o Ruby 1.9.2 para que eu possa instalar o Rails 3 e testá -lo, e também instalei 1.8.7 e Rails 2.3.8 para que eu possa usá -lo para o que preciso.
Agora, estou tentando desinstalar as jóias do sistema Ruby, mas sempre que tento, estou recebendo esse erro:
Erro: ao executar Gem ... (Gem :: Instalerror)
Não é possível desinstalar, verifique 'Gem List -D qualquer jóia que eu tento desinstalar'
Alguma idéia de como remover trilhos e todas essas jóias? Eu só quero começar do zero com o RVM.
ATUALIZAR:
Ao executar o comando gem list -d rails
Eu localizei o Gems em /system/library/frameworks/ruby.framework/versions/1.8/usr/lib/ruby/gems/18. Devo excluí -los manualmente?
Solução
SOLUÇÃO!! Ainda não entendo por que isso aconteceu, eu adoraria se alguém pudesse explicar. Por que o caminho era inexistente? O que causou esse erro?
Além disso, quero mencionar que a solução a que vinculei tem um comentário dizendo que a pergunta é uma duplicata. No entanto, o original tem uma solução diferente e não me ajudou (embora seja a base para encontrar essa resposta). Basta excluir as gemas manualmente no Finder não as removeria da lista de gemas.
Sem mais delongas - Acontece que, ao tentar desinstalar a jóia, ela não pode localizar seu caminho (acho que o problema é por causa da instalação com o sudo, mas posso estar errado). O que você precisa fazer é (você precisa fazer isso para cada jóia, ou pelo menos eu precisava):
gem list -d 'name of gem'
e observe o "instalado em:" Local (no meu caso, /system/library/frameworks/ruby.framework/versions/1.8/usr/lib/ruby/gems/1.8)sudo gem uninstall 'name of gem' -i 'the path noted above'
(Ex. No meu caso,sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
- Algumas gemas ainda podem não desinstalar retornando um erro de permissões. Se for esse o caso, o que você precisa fazer é criar uma pasta /compartimento, no caminho acima. (No meu caso,
mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
- Continue desinstalando como na Etapa 2, ainda usando o caminho original (/system/library/frameworks/ruby.framework/versions/1.8/usr/lib/ruby/gems/1.8).
Agora todas as desinstalações devem funcionar!
Outras dicas
Duas coisas que você deve observar ao usar o RVM:
Você deve NUNCA usar
sudo
Para instalar gemas, basta fazer umgem install xxx
Você não pode desinstalar gemas instaladas no global Gemset de dentro de outro gemset. Você deve mudar para o gemset global e desinstalar a partir daí:
rvm gemset use global
gem uninstall xxx
Execute isso no IRB ou em um script adequado:
`gem list --no-versions`.split("\n").each do |gem|
`gem list -d #{gem}`.gsub(/Installed at(.*):.*/).each do |dir|
dir = dir.gsub(/Installed at(.*): /,'').gsub("\n", '')
system "gem uninstall #{gem} -aIx -i #{dir}"
end
end
Tente desta forma:
sudo apt purge rails
OK eu vejo....
Neste ponto, se você estiver no terminal, não deve levar apenas alguns minutos para reinstalar o shebang inteiro
Suspeito que você não esteja no nome correto do RVM que tenha as jóias que você está tentando instalar, então é por isso que eu sugiro reinstalar os rubygems e construir suas jóias principais desde o começo em seu Global
Nome do Gemset RVM.
Uma resposta mais genérica para excluir todas as gemas para versões mais antigas do GEM 1.8.
Lista de jóias-Não versões | Xargs sudo gem desinstall -aix
Eu estava usando o RVM para gerenciar meus gemsets e não havia selecionado o gemset. Eu não estava que tivesse selecionado o Gemset errado, foi que não havia selecionado o Gemset. Uma maneira adorável de passar a maior parte de uma hora da minha primeira manhã de volta após minhas férias de verão!