Usando RVM e instalando la gema rspec para Ruby

1

Creo que instalé rvm correctamente. Cuando escribo en rvm -v sale

rvm 1.25.33 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]

Sin embargo, estoy intentando 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é va mal? ¡No puedo entender los documentos de rvm tampoco!

    
pregunta Jwan622 20.10.2014 - 05:54

2 respuestas

2

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

Puedes ver los rubíes disponibles con:

> rvm list

rvm rubies

=* ruby-2.1.2 [ x86_64 ]

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

En mi caso, tengo 2.1.2 instalado y es tanto el Ruby actual como el Ruby predeterminado cuando inicio una nueva shell:

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

Para instalar una versión de Ruby con RVM, haz:

> 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 tiene instalado un Ruby administrado por RVM que es de su propiedad, específicamente puede gem -install cualquier cosa que desee 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 se ha instalado para la versión 2.1.3 de Ruby que RVM puso bajo ~/.rvm para mí. Si tuviera que cambiar 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 volver a instalarla para que esté disponible para esa versión de Ruby.

También puedes administrar gemas como conjuntos para que ni siquiera se compartan con una instalación de Ruby. Consulte los elementos básicos de gemset en el sitio web de RVM para obtener más detalles.

    
respondido por el Ian C. 20.10.2014 - 18:26
0

Ese comando está intentando instalar la gema en el directorio global (disponible para cada usuario en la computadora), si eso es lo que desea, ejecute el comando con sudo . Pero si solo desea instalar rspec, puede hacer gem install rspec .

Puedes verificar si estás usando el ejecutable gema de rvm haciendo which gem si muestra una función, entonces es de rvm. Si la salida es una ruta, haga rvm use default .

    
respondido por el Ammar Alammar 20.10.2014 - 08:09

Lea otras preguntas en las etiquetas