Comment corriger l'erreur «Vous ne disposez pas des autorisations d'écriture dans le répertoire / usr / bin» lors de l'installation de Rails?


133

J'essaie d'installer Rails 3 sur un tout nouveau MacBook Pro exécutant OS X 10.6.3, Ruby 1.8.7 et Rails 2.3.5 et je me demande si je me suis arrosé. Jusqu'à présent, j'ai exécuté ces commandes:

$ gem update --system
$ gem install arel tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
$ gem install rails --pre

Cependant, lorsque j'exécute la dernière commande, j'obtiens cette erreur:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

Je pense qu'il veut que j'exécute la commande avec sudopour qu'il puisse écrire /usr/bin/rails. Mais si je fais cela, est-ce que je n'écraserai pas mon exécutable Rails 2.3.5? Je ne veux pas faire ça. Au lieu de cela, j'aimerais conserver les deux versions de Rails. Comment je fais ça?


5
sudo gem update --system -n /usr/local/bin
J'obtenais la

1
Qu'est-ce que le -n?
Scott Romack

Je vais juste dire ici que le simple redémarrage du terminal a résolu ce problème pour moi.
frêne

Réponses:


14

Je suggère d'utiliser RVM, cela vous permet d'avoir plusieurs versions de Ruby / Rails installées avec des profils de gemmes et de conserver fondamentalement toutes vos gemmes les unes des autres. Vous voudrez peut-être consulter un article similaire Comment puis-je installer Ruby on Rails 3 sur OSX


seulement faire cela a résolu pour moi un problème similaire avec le même message d'erreur
Rich Stone

481

utilisez le -nparamètre pour installer comme pour les cocoapodes:

sudo gem install cocoapods -n /usr/local/bin

7
Pourquoi en aurions-nous même besoin?
nenchev

28
Échoue sur MacOS sauf si vous spécifiez -n / usr / local / bin. Merci pour la solution
Sacky San

3
Que signifie -n?
allenlinli

7
selon guides.rubygems.org/command-reference/#gem-install , -n spécifie le répertoire où se trouvent les binaires. J'avais également besoin -n /usr/local/binsur mon Mac. J'ai couru which podpour déterminer son emplacement existant avant d'utiliser l'option -n qui était en effet / usr / local / bin
mwu

3
Je suis sûr que RVM est génial, mais c'est une meilleure réponse qui aborde directement le problème immédiat sans m'envoyer dans un terrier de lapin.
Wayne

62

L'utilisation de l' indicateur -n / usr / local / bin fonctionne, MAIS je devais revenir sur cette page chaque fois que je voulais mettre à jour un paquet à nouveau. J'ai donc trouvé une solution permanente à ce problème.

Pour ceux qui souhaitent résoudre ce problème de manière permanente :

Créez un fichier ~ / .gemrc

vim .gemrc

Avec le contenu suivant:

:gemdir:
   - ~/.gem/ruby
install: -n /usr/local/bin

Vous pouvez maintenant exécuter votre commande normalement sans l'indicateur -n.

Prendre plaisir!


vim .gemrccomment écrire ce cmd
Chandni

Je ne suis pas sûr que cela fonctionnera dans Window $, mais je suppose que vous pourriez utiliser le Bloc-notes.
Francois Nadeau

Merci, tout comme vous, j'étais fatigué de chercher ce suffixe à chaque fois que je devais faire une mise à jour!
Paul-Etienne

51
sudo gem install cocoapods --pre -n /usr/local/bin

Cela fonctionne pour moi.


J'ai eu ce problème et cette réponse a fonctionné pour moi! J'ai remplacé cocoapodspar la dépendance dont j'avais besoin
chris le

34

Vous pouvez utiliser sudo gem install -n /usr/local/bin cocoapods

Cela fonctionne pour moi.


6

Pour corriger votre erreur spécifique, vous devez exécuter cette commande en tant que sudo, c'est-à-dire:

sudo gem install rails --pre

1
NON. Utilisez rvm ou rbenv ... ne vous contentez pas de sudo.
doublejosh

5

Cette erreur m'a frappé après avoir installé RVM correctement. Solution: redémarrez le terminal.

Référence du didacticiel RVM Install de RailsCast .


Pas exactement 7 ans plus tard, mais cela fonctionne aussi si vous travaillez sur le sous-système Windows bash. Quittez simplement le bash et relancez-le. Je vous remercie.
Pedro Madrid

0

Pour moi, quelque chose de différent a fonctionné, que j'ai trouvé dans cette réponse à une question similaire. Cela n'aidera probablement pas OP, mais peut-être que quelqu'un comme moi a eu un problème similaire.

Vous devriez en effet utiliser rvm , mais comme personne ne vous a expliqué comment faire cela sans rvm , voilà:

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \
  abstract erubis activesupport mime-types mail text-hyphen text-format   \
  thor i18n rake bundler arel railties rails --prerelease --force

-2

Sur macOS High Sierra, cela a résolu mon problème:

sudo gem update --system -n /usr/local/bin/gem
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.