Utilizzo di RVM e installazione di rspec gem per Ruby

1

Penso di aver installato correttamente rvm. Quando digito rvm -v emette

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

Tuttavia, sto cercando di installare la gemma rspec. Digito

gem install rspec

ma l'output è

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

Cosa dovrei fare? Cosa sta andando male? Non riesco nemmeno a capire i documenti di rvm!

    
posta Jwan622 20.10.2014 - 05:54
fonte

2 risposte

2

RVM controlla su quale Ruby la tua attuale shell punta, ma non installa un Ruby controllato dall'utente per impostazione predefinita. Se non hai installato versioni specifiche di Ruby tramite RVM, l'unico Ruby che possiedi è l'unico OS X installato e che richiede sudo di permessi su cui scrivere.

Puoi vedere Rubies disponibili con:

> rvm list

rvm rubies

=* ruby-2.1.2 [ x86_64 ]

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

Nel mio caso ho installato 2.1.2 ed è sia l'attuale Ruby che il predefinito Ruby quando avvio una nuova shell:

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

Per installare una versione di Ruby con RVM fare:

> 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

Ora che hai installato un Ruby gestito da RVM di tua proprietà in modo specifico puoi gem -installare qualsiasi cosa che ti piace senza bisogno di usare 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

Quella gemma è stata installata per la versione 2.1.3 di Ruby che RVM ha messo sotto ~/.rvm per me. Se dovessi passare alla versione 2.1.2 tramite rvm use ruby-2.1.2 non vedrei quella gemma, dovrei reinstallarla per renderla disponibile a quella versione di Ruby.

Puoi anche gestire gems come set in modo che non siano nemmeno condivisi con un'installazione di Ruby. Consulta le informazioni di base su gemset sul sito web RVM per ulteriori dettagli.

    
risposta data 20.10.2014 - 18:26
fonte
0

Questo comando sta tentando di installare la gemma nella directory globale (disponibile per ogni utente sul computer), se è ciò che si desidera eseguire il comando con sudo . Ma se vuoi semplicemente installare rspec puoi fare gem install rspec .

Puoi controllare se stai utilizzando l'eseguibile gem da rvm facendo which gem se mostra una funzione, quindi proviene da rvm. Se l'output è un percorso, fai rvm use default .

    
risposta data 20.10.2014 - 08:09
fonte

Leggi altre domande sui tag