Désinstallation rails et des pierres précieuses, obtenir l'erreur « ne peut pas désinstaller, cochez la case « liste bijou -d ... »

StackOverflow https://stackoverflow.com/questions/4007074

Question

Je vais commencer par la ligne habituelle de noob, « Je suis nouveau sur les rails ». Oh, et je suis sous Mac OS X 10.6.4

J'ai suivi un groupe de guides pour se mettre en place, en particulier ces deux ici et ici . Les guides sont grandes, la raison pour laquelle j'utilise le second est à cause de RVM et la raison pour laquelle j'utilise la première est pour MYSQL.

Quoi qu'il en soit, quand j'ai commencé, je ne suivais pas les directions complètement et donc après avoir installé RVM, pour une raison que j'ai installé des rails avec sudo gem install rails -v 2.3.8 parce que c'est la version que j'ai besoin. Alors ... je me suis aperçu que j'utilisais le rubis du système, et ne profitait pas de RVM. Ce que je faisais était maintenant installer Ruby 1.9.2 donc je peux installer des rails 3 et le tester, et j'ai aussi installé 1.8.7 et 2.3.8 rails donc je peux l'utiliser pour ce que je besoin.

Maintenant, je suis en train de désinstaller les pierres précieuses du système Ruby, mais chaque fois que j'essaie de je reçois cette erreur:

  

ERREUR: Pendant l'exécution gem ...   (Gem :: InstallError)
    ne peut pas désinstaller, consultez « liste des pierres précieuses -d    quel que soit petit bijou que j'essaie de désinstaller

Toutes les idées sur la façon de retirer les rails et toutes ces pierres précieuses? Je veux juste commencer à partir de zéro avec RVM.


Mise à jour:

En exécutant la commande gem list -d rails j'ai localisé les pierres précieuses dans /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/18. Dois-je les supprimer manuellement?

Était-ce utile?

La solution

SOLUTION !! Je ne comprends toujours pas pourquoi cela est arrivé, j'aimerais si quelqu'un pourrait expliquer. Pourquoi le chemin non existant? Ce qui a causé cette erreur?

, je veux aussi mentionner que la solution que je lié à a un commentaire disant que la question est un doublon. Cependant, l'original a une autre solution et ne m'a pas aidé (même si sa base pour trouver cette réponse). La simple suppression des gemmes manuellement dans le Finder ne les retirer de la liste des pierres précieuses.

Sans plus tarder - il se trouve que lorsque vous essayez de désinstaller la pierre précieuse, il ne peut pas trouver son chemin (je pense que le problème est dû à l'installation avec sudo, mais je peux me tromper) . Ce que vous devez faire est de (vous devez faire un par un pour chaque bijou, ou tout au moins je devais):

  1. gem list -d 'name of gem' et notez le "Installé à:" emplacement (dans mon cas, /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8)
  2. sudo gem uninstall 'name of gem' -i 'the path noted above' (ex. Dans mon cas, sudo gem uninstall rails -i /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
  3. Certaines pierres peuvent toujours pas désinstaller une erreur de retour d'autorisations. Si tel est le cas, ce que vous devez faire est de créer un dossier / bin, dans le chemin ci-dessus. (Dans mon cas, mkdir /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/bin
  4. poursuivre la désinstallation comme dans l'étape 2, en utilisant toujours le chemin d'origine (/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8).

Maintenant, tous les désinstallations doivent travailler!

Autres conseils

Deux choses que vous devez noter lors de l'utilisation RVM:

  1. Vous devez JAMAIS utiliser sudo installer des pierres précieuses, faites juste un gem install xxx

  2. Vous ne pouvez pas désinstaller des pierres précieuses installées dans le global gemset à partir d'un autre gemset. Vous devez passer à l'gemset global et désinstaller à partir de là:


 rvm gemset use global
 gem uninstall xxx

exécuter ce soit dans irb ou dans un bon script:

`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

essayez de cette façon:

sudo apt purge rails

ok je vois ....

à ce stade, si vous êtes dans le terminal, il ne devrait pas prendre, mais quelques minutes pour réinstaller tout le tralala

Je suppose que vous pourriez ne pas être au nom de RVM correct qui a les pierres précieuses que vous essayez d'installer donc ce pourquoi je vous suggère de réinstaller rubygems et la construction que vous êtes des pierres précieuses de base depuis le début de votre nom de Global rvm gemset.

Une réponse plus générique pour supprimer toutes les pierres précieuses pour les anciennes versions de gemme 1.8.

Liste des pierres précieuses versions --no-| xargs désinstaller sudo gem -Aix

J'utilisais RVM pour gérer mes gemsets et n'avaient pas choisi le gemset. Je n'étais pas que j'avais choisi le mauvais gemset, il était que je ne l'avais pas choisi le gemset du tout. Une belle façon de passer la majeure partie d'une heure de mon premier matin de retour après mes vacances d'été!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top