¿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?


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:



479

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

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

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!


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.


¡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.


6

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

sudo gem install rails --pre

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.


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

-2

En macOS High Sierra, esto resolvió mi problema:

sudo gem update --system -n /usr/local/bin/gem
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.