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?

Rayon
la source
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

Tarellel
la source
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
Pradeep Kachhawaha
la source
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!

François Nadeau
la source
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.

tong Xu
la source
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.

Damini
la source
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
Andrew Nesbitt
la source
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 .

Akorn
la source
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
Sebastian D'Agostino
la source
-2

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

sudo gem update --system -n /usr/local/bin/gem
Subhan Ahmed
la source