RubyGems les erreurs d'installation, à la fois lors de l'utilisation de 'sudo' et de ne pas utiliser sudo
J'ai un ordinateur sur lequel est installé Ubuntu Hardy, qui dispose de son propre RubyGems paquet. Malheureusement, cette version de RubyGems (1.1.1) est trop vieux pour faire quelque chose d'utile, j'ai donc décidé de mettre à jour manuellement RubyGems à la version actuelle (1.3.6). La partie s'est bien passé, et si je ne gem -v
, je reçois 1.3.6
qui est prévu. Le problème, c'est quand j'essaie de faire: sudo gem install rack
, il retourne cette erreur:
ERROR: While executing gem ... (Errno::EACCES)
Permission denied - /home/username/.gem
Habituellement, lorsque je installer des gems en tant que root, il sait installer dans /usr/lib/ruby/gems
, alors pourquoi est-il vérifier mon répertoire home? Une autre bizarrerie, c'est quand je ne gem install rack
(pas en tant que root), il est dit:
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions into the /usr/lib/ruby/gems/1.8 directory.
qui est l'endroit où je veux aller. J'ai déjà essayé de compensation source_caches, en essayant différentes versions de RubyGems (1.3.5), de forcer l'installation en /usr/lib
avec -i
en vain. Toutes les idées sur pourquoi RubyGems est l'insistance sur la vérification de mes /home
répertoire lors de l'installation en tant que root?
OriginalL'auteur Kenny Peng | 2010-04-21
Vous devez vous connecter pour publier un commentaire.
Sonne comme il pourrait être un problème de chemin d'accès couplé avec le fait d'avoir plusieurs versions installées.
Tout écart de rendement entre:
et
/usr/lib/ruby/gems/1.8
et/home/username/.gem/ruby/1.8
. Ne pourrait-il pas de ne pas être là par défaut avec sudo?Ils sont les mêmes sur mon système, mais seulement après que je suis allé à travers et "nettoyée" tout ce qui est après recompilation 1.9. Les choses que j'ai vérifié: 1. Supprimé par l'onu, utilisé joyau de commande (en avait un dans /usr/bin et /usr/local/bin 2. Vérifié mon ~/.gemrc fichier et nettoyé le chemin jusqu'à un certain point à mon gem path dans /usr/local/lib. Utilisé mon ~/.gem dossier comme une sauvegarde 3. Correspondait à mes GEM_HOME et GEM_PATH variables d'environnement (dans .profil/.bash_profile/.bashrc) avec la .gemrc fichier 4. Vérifié les autorisations sur le gem dossiers 5. Vous pouvez également vérifier pour voir si vous avez quelque chose dans /etc/gemrc
Je suis donc allé à travers ces suggestions, et ils semblent tous pour vérifier: 1) un seul bijou de l'exécutable dans /usr/bin, 2) pas .gemrc, 3) je n'ai jamais définir ces variables dans mon .de profil, 4) gem dossiers avaient des autorisations pour l'utilisateur root, sudo doit être fine, 5) pas de /etc/gemrc. La seule autre hic, c'est peut-être le fait que mon répertoire home de vie sur AFS vis les choses?
Vérifiez ceci: stackoverflow.com/questions/257616/sudo-changes-path-why Peut-être que l'ancienne version de gem n'a pas été installé dans /usr/bin ou /usr/local/bin, et sudo est prendre un CHEMIN différent variable (gem) ou un GEM_PATH (qui pointe vers votre /home/nom d'utilisateur de chemin d'accès) à partir de quelque part? Vous pouvez vérifier /etc/environnement et essayer de trouver où sudo est de ramasser ses variables d'environnement à partir de (peut-être une racine .de profil?).
Je crois que le problème a été causé par le fait d'avoir mon répertoire home sur AFS. RubyGems semble écrire des métadonnées dans votre
.gem
répertoire (~/.gem/specs
), indépendamment de savoir si vous êtes en cours d'exécution en tant que root via sudo. Mais l'exécution en tant que root signifie que vous avez les informations d'identification ne portent pas de plus et vous pouvez rien faire pour l'AFS. J'ai fini par utilisersudo su
et l'installation de choses en tant que root bonne. Il a fait installer dans/usr/lib/ruby/gems
et a écrit un certain nombre de métadonnées dans~/.gem/specs
. Merci à tous pour l'aide, j'ai été en mesure d'affiner la portée du problème.OriginalL'auteur SundayEdition
Essayez de lancer:
et vérifier les valeurs pour la GEMME CHEMIN. Plus d'info à http://docs.rubygems.org/read/chapter/10#page31
OriginalL'auteur nutcracker
J'ai été en cours d'exécution dans le même problème que moi sur Fedora 15, donc j'ai couru "gem install' avec '--backtrace' option pour voir ce qui se passait.
Il s'est avéré qu'il n'était pas à /usr/lib/ruby/site_ruby/1.8/rubygems/doc_manager.rb:203 où il a essayé de chdir pour le répertoire, il avait précédemment stocké à l' (le répertoire home de l'utilisateur, j'étais en sudo)
Je n'ai pas largement debug pour voir ce que la cause sous-jacente, plutôt utilisé une solution de rechange rapide afin que je puisse continuer à aller de l'avant. La solution était tout simplement de cd dans le répertoire racine, par exemple, cd /, avant d'exécuter la commande gem install.
Espère que cette aide /permet de résoudre votre problème.
OriginalL'auteur Mo Morsi
Woulda été plus facile de su (mot de passe) puis chmod 755 /usr/lib/ruby/gems/1.8
OriginalL'auteur Chris