1 votos

Uso de RVM e instalación de la gema rspec para Ruby

Creo que he instalado rvm correctamente. Cuando escribo rvm -v sale

rvm 1.25.33 (stable) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

Sin embargo, estoy tratando de instalar la gema rspec. Escribo

gem install rspec

pero la salida es

ERROR:  While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

¿Qué debo hacer? ¿Qué está fallando? Tampoco entiendo los documentos de rvm.

2voto

shsteimer Puntos 8749

RVM controla a qué Ruby apunta tu shell actual, pero no instala por defecto un Ruby controlado por el usuario. Si no has instalado ninguna versión específica de Ruby a través de RVM, el único Ruby que tienes es el que instaló OS X y que requiere sudo permisos para escribir.

Puede ver los rubíes disponibles con:

> rvm list

rvm rubies

=* ruby-2.1.2 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

En mi caso tengo instalada la versión 2.1.2 y es tanto el Ruby actual como el Ruby por defecto cuando inicio un nuevo shell:

> which ruby
/Users/ian/.rvm/rubies/ruby-2.1.2/bin/ruby

Para instalar una versión de Ruby con RVM hazlo:

> rvm install ruby-2.1
No binary rubies available for: osx/10.10/x86_64/ruby-2.1.3.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
...snip...
Install of ruby-2.1.3 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri

Ahora que tienes instalado un Ruby gestionado por RVM que te pertenece específicamente puedes gem -instalar lo que quieras sin necesidad de usar sudo :

> rvm list

rvm rubies

 * ruby-2.1.2 [ x86_64 ]
=> ruby-2.1.3 [ x86_64 ]

# => - current
# =* - current && default
#  * - default
> rvm gemdir
/Users/ian/.rvm/gems/ruby-2.1.3
> gem install packer-config

Esa gema ha sido instalada para la versión 2.1.3 de Ruby que RVM puso bajo ~/.rvm para mí. Si me cambiara a la versión 2.1.2 a través de rvm use ruby-2.1.2 No vería esa gema, tendría que reinstalarla para que estuviera disponible para esa versión de Ruby.

También puedes gestionar las gemas como conjuntos para que no se compartan con una instalación de Ruby. Ver el fundamentos del conjunto de gemas en el sitio web del RVM para más detalles.

0voto

Roland Puntos 41

Ese comando está intentando instalar la gema en el directorio global (disponible para todos los usuarios del ordenador), si eso es lo que quieres entonces ejecuta el comando con sudo . Pero si sólo quieres instalar rspec puedes hacer gem install rspec .

Puedes comprobar si estás utilizando el ejecutable de la gema de rvm haciendo which gem si muestra una función entonces es de rvm. Si la salida es una ruta entonces haz rvm use default .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X