¿Cómo soluciono el error "No tiene permisos de escritura en el directorio / usr / bin" al instalar Rails?

132

Estoy tratando de instalar Rails 3 en un nuevo MacBook Pro con OS X 10.6.3, Ruby 1.8.7 y Rails 2.3.5 y me pregunto si me he lavado. Hasta ahora, he ejecutado estos comandos:

$ 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

Sin embargo, cuando ejecuto el último comando, aparece este error:

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

Creo que quiere que ejecute el comando sudopara que pueda sobrescribir /usr/bin/rails. Pero si hago eso, ¿no sobrescribiré mi ejecutable Rails 2.3.5? No quiero hacer eso. En cambio, me gustaría mantener ambas versiones de Rails. ¿Cómo puedo hacer eso?

Rayo
fuente
55
Recibí el mismo error en el primer comando, use este comandosudo gem update --system -n /usr/local/bin
nitish005
1
¿Que es entonces?
Scott Romack
Solo voy a ponerlo aquí que simplemente reiniciar el terminal me resolvió esto.
Ashwood

Respuestas:

14

Sugeriría usar RVM, ya que le permite tener múltiples versiones de Ruby / Rails instaladas con perfiles de gemas y, básicamente, mantener todas sus gemas entre sí. Es posible que desee consultar una publicación similar. ¿Cómo puedo instalar Ruby on Rails 3 en OSX?

Tarellel
fuente
solo hacer eso me resolvió un problema similar con el mismo mensaje de error
Rich Stone
479

use el -nparámetro para instalar like para cocoapods:

sudo gem install cocoapods -n /usr/local/bin
Pradeep Kachhawaha
fuente
77
¿Por qué necesitaríamos esto?
nenchev
28
Falla en MacOS a menos que especifique -n / usr / local / bin. Gracias por la solución
Sacky San
3
¿Qué significa -n?
allenlinli
77
de acuerdo con guides.rubygems.org/command-reference/#gem-install , -n especifica el directorio donde se encuentran los archivos binarios. También lo necesitaba -n /usr/local/binen mi Mac. Corrí which podpara determinar su ubicación existente antes de usar la opción -n que era de hecho / usr / local / bin
mwu
3
Estoy seguro de que RVM es excelente, pero esta es una mejor respuesta que aborda directamente el problema inmediato sin enviarme por un agujero de conejo.
Wayne
62

El uso del indicador -n / usr / local / bin funciona, PERO tenía que volver a esta página cada vez que quería actualizar un paquete nuevamente. Así que descubrí una solución permanente para esto.

Para aquellos interesados ​​en arreglar esto permanentemente :

Crear un archivo ~ / .gemrc

vim .gemrc

Con el siguiente contenido:

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

Ahora puede ejecutar su comando normalmente sin la bandera -n.

¡Disfrutar!

Francois Nadeau
fuente
vim .gemrccómo escribir este cmd
Chandni
No estoy seguro de que esto funcione en Window $, pero supongo que podría usar el Bloc de notas.
Francois Nadeau
¡Gracias, como usted, estaba cansado de buscar este sufijo cada vez que necesitaba hacer una actualización!
Paul-Etienne
49
sudo gem install cocoapods --pre -n /usr/local/bin

Esto funciona para mi.

tong Xu
fuente
¡Tuve este problema y esta respuesta funcionó para mí! Reemplacé cocoapodscon la dependencia que necesitaba
Chris
33

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

Esto funciona para mi.

Damini
fuente
6

Para corregir su error específico, debe ejecutar ese comando como sudo, es decir:

sudo gem install rails --pre
Andrew Nesbitt
fuente
1
NO. Use rvm o rbenv ... no solo sudo.
doublejosh
5

Este error me golpeó después de instalar RVM correctamente. Solución: reiniciar el terminal.

Referencia RVM de Railscast Instalar tutorial.

Akorn
fuente
No exactamente 7 años después, pero esto también funciona si está trabajando en Windows Bash Subsystem. Simplemente salga de la fiesta y ejecútelo nuevamente. Gracias.
Pedro Madrid
0

Para mí, algo diferente funcionó, que encontré en esta respuesta de una pregunta similar. Probablemente no ayudará a OP, pero tal vez alguien como yo que tuvo un problema similar.

Debería usar rvm , pero como nadie le explicó cómo hacerlo sin rvm , aquí tiene:

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
fuente
-2

En macOS High Sierra, esto resolvió mi problema:

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