606 votes

L'installation de gem ou la mise à jour de RubyGems échoue avec l'erreur d'autorisations

Essayez d'installer un gem (gem install mygem) ou la mise à jour de RubyGems (gem update --system) échoue avec ce message d'erreur:

ERREUR: lors de l'exécution ... bijou (Gemme::FilePermissionError)
Vous n'avez pas les autorisations en écriture sur le dossier /Library/Ruby/Gems/2.0.0 répertoire.

Toute personne ayant des idée de comment résoudre ce problème?

331voto

the Tin Man Points 69148

Vous ne disposez pas des autorisations d'écriture dans le dossier /Library/Ruby/Gems/1.8 répertoire.

que veut dire exactement, vous n'avez pas la permission d'y écrire.

C'est la version de Ruby installé par Apple, pour leur propre usage. Alors qu'il est OK pour faire des modifications mineures que si vous savez ce que vous faites, parce que vous n'êtes pas sûr au sujet du problème d'autorisations, je dirais que c'est pas une bonne idée de continuer le long de cette voie.

Au lieu de cela, je vous suggère fortement de vous regarder dans l'aide soit rbenv ou RVM pour gérer un distinct Ruby, installé dans un bac à sable dans votre répertoire home, que vous pouvez modifier/plier/broche/modifier sans se soucier d'avoir à remodeler le système de Ruby.

Entre les deux, j'utilise rbenv, bien que j'ai utilisé RVM beaucoup dans le passé. rbenv prend un plus "mains-libres" pour la gestion de votre installation de Ruby. RVM a beaucoup de fonctionnalités et est très puissant, mais, la suite est plus intrusive. Dans les deux cas, LIRE la documentation d'installation pour eux une couple de fois avant de commencer à installer selon ce que vous choisissez.

96voto

l3x Points 434

Vous devez vraiment être à l'aide d'un Ruby version manager.

À l'aide d'un bon permettrait de prévenir et de résoudre votre problème d'autorisation lors de l'exécution d'un gem update commande.

Je recommande rbenv.

Toutefois, même lorsque vous utilisez un Ruby version manager, vous pouvez toujours obtenir le même message d'erreur.

Si vous le faites, et vous êtes à l'aide de rbenv, suffit de vérifier que l' ~/.rbenv/shims répertoire est avant le chemin d'accès pour le système de Ruby.

$ echo $PATH va vous montrer la commande de votre chemin de chargement.

Si vous trouvez que votre cales répertoire vient après votre système Ruby bin, puis modifier votre ~/.bashrc le fichier et de mettre ce que votre dernier CHEMIN d'exportation de commande: export PATH=$HOME/.rbenv/bin:$PATH

$ ruby -v vous indique quelle version de Ruby, vous utilisez

Cela montre que je suis actuellement en utilisant le système de version de Ruby (généralement pas bon)

$ ruby -v
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]

$ rbenv global 1.9.3-p448 commutateurs moi pour une nouvelle, version pré-installée (voir les références ci-dessous).

Cela montre que je suis en utilisant une version plus récente de Ruby (qui ne sera probablement pas la cause de la Gemme::FilePermissionError)

$ ruby -v
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin12.4.0]

En général, vous ne devriez pas avoir besoin de préface, un joyau de commande avec sudo. Si vous vous sentez le besoin de le faire, quelque chose qui est probablement mal configuré.

Pour plus de détails sur rbenv voir la suivante:

73voto

Bobz Points 173

Pourquoi ne pas vous faire:

sudo gem update --system

35voto

Hendrik Points 1180

Pour moi le problème n'avait pas l' rbenv global xxx

Après le réglage:

rbenv global 2.0.0-p247

Tous les travaillait.

16voto

Eliot Arntz Points 255
sudo gem update --system
sudo gem install (gemfile)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X