2011-12-29 18 views
105

io non sono in grado di passare la versione corrente di Ruby:Come cambio la mia versione di Ruby usando RVM?

➜ ~ rvm list 

rvm rubies 

    ruby-1.9.2-p290 [ x86_64 ] 
    ruby-1.9.3-p0 [ x86_64 ] 

➜ ~ rvm use ruby-1.9.3-p0 

RVM is not a function, selecting rubies with 'rvm use ...' will not work. 
+0

Sei certo installato correttamente rvm? quale sistema operativo stai usando? – lesce

+2

aggiungere l'output di 'RVM info' alla tua domanda per favore. ho avuto –

+0

un problema simile di installando rvm con apt-get su Ubuntu 11.10, ho dovuto rimuoverlo e reinstallarlo con '$ bash -s stable <<(curl -s https://raw.github.com/wayneeseguegu/rvm/master/binscripts/rvm -installer) ' – lesce

risposta

119

riparato. Avevo bisogno di aggiungere:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # This loads RVM 

a .zshrc

+5

Probabilmente un buon esempio perché è necessario RTFM :) – Alexander

+1

+1 funziona su jenkins per utilizzare più versioni di rvm. – Sairam

11

La shell non conosce la funzione RVM. Dopo averlo installato, ti dice come prenderti cura di questo. Oppure vai alla pagina install sul sito RVM e controlla la sezione "2. Carica RVM nelle tue sessioni shell come funzione"

Esegui questa volta per aggiungere la riga che carica rvm nel tuo ~/.bash_profile:

$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile 

oppure aggiungerlo manualmente. (Si noti che su alcuni sistemi, si vorrà metterlo in altri posti, ad esempio sul mio sistema, Mac OSX Lion, lo metto in ~/.profile)

+0

@edwardsharp Oppure no. –

+0

Sto usando OS X Snow Leopard, mettere quella linea nel mio .profile ha fatto il trucco per me. – Heldraug

5

Per aggiungere tutte le funzionalità di RVM al tuo profilo .bash tu dovrebbe utilizzare seguente comando:

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile 

Dopo di che si dovrebbe ricaricare la shell corrente o aprire una nuova sessione di terminale e digitare il seguente comando per ricaricare .bash_profile:

source .bash_profile 
55

Questo è accaduto anche a me. Ho avuto:

export PATH=~/.rvm/bin:$PATH 

Aggiunto nel mio .bashrc.

Tutto quello che dovevo fare era aggiungere un altro

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" 

allo stesso file e ha funzionato! Ovviamente, è necessario riavviare il terminale dopo.

+1

ho avuto questa stessa riga (il [[-s "$ HOME/...) nel mio ~/.bash_profile e che non sembrava" prendere "quando ho aperto un nuovo terminale ... ma quando ho aggiunto il linea sotto la linea PATH in ~/.bashrc, ha funzionato - cioè, potrei digitare rvm usare 1.9.3 e riconoscerebbe immediatamente rvm come comando senza che io debba prima digitare source ~/.bash_profile - i Non sono una persona Linux, quindi questo mi confonde, ma sono felice che funzioni, forse qualcuno può chiarire la mia confusione – TimDog

+0

è grandioso, ho appena messo questa riga in ~/.bashrc, funziona. non so perché: –

+0

Sì, funziona, ma ogni volta che riavvio la macchina devo dare i comandi sopra indicati Se non fornisco i comandi, dice che rvm non è una funzione –

0

Avevo un'installazione globale di RVM, che esegue /etc/profile.d/rvm.sh. Tuttavia, per questo script è necessario impostare BASH_VERSION o ZSH_VERSION. Stavo correndo da crontab, che usa "sh".

Ho creato uno script wrapper che utilizza/bin/bash per l'origine di /etc/profile.d/rvm.sh.

9

(Kubuntu 11.10) Il ~/.bash_profile ora si chiama ~/.profile

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.profile 
source ~/.profile 
rvm info # And now the fields display 
3

ho dovuto richiamare fonte ~/.bash_profile

+0

questo risolve il problema per me –

1

Installazione di RVM, Vedi qui http://octopress.org/docs/setup/rvm/

+0

Non utilizzare fonti non autorevoli per l'installazione di RVM. [Pagina di installazione RVM] (http: // rvm.io/rvm/install) dice specificatamente: "Si noti che le esercitazioni esterne NON sono supportate indipendentemente dal fatto che funzionino o no. Le esercitazioni sono grandi, tuttavia abbiamo speso enormi quantità di ore di lavoro per il debug del processo di installazione.) solo da questo sito, poiché questo è l'unico tipo e metodo di installazione supportato. " –

3

Su una nuova installazione di Ubuntu 12.04 I incontrato lo stesso problema. Il programma di installazione RVM crea o aggiunge un file chiamato ~/.bash_login il bit necessaria di codice per evitare il problema originale:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function* 

Tuttavia questo non sembra per essere invocato. L'aggiunta a ~/.bashrc ha risolto il problema per me.

+0

In effetti, hai bisogno di quella lin in '~/.bashrc' grazie! – Max

6

Per modificare l'impostazione predefinita versione di Ruby:

In Ubuntu 11.10
si prega di modificare l'impostazione del terminale di GNOME:

Vai Terminal e quindi seguire le seguenti istruzioni:

1. Edit > Profile Preferences 
2. Open Title and Command Tab    
3. Check Run Command as a login Shell 
4. Restart terminal 

Esegui questo comando sul terminale:

rvm --default use ruby_Version 
+0

come aggiunta: https://rvm.io/integration/gnome-terminal – pvllnspk

4

La soluzione sopra riportata funzionerà solo se RVM è installato per l'utente corrente. Una soluzione più generale sarebbe utilizzare la variabile percorso RVM:

# The following code loads RVM as user or system install: 
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm" 
+0

'rvm_path =/home/myuser/.rvm./Home/myuser/.rvm/scripts/rvm' –

1

Nel mio caso su Ubuntu, la voce in ~/.bashrc aveva:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && ."$HOME/.rvm/scripts/rvm" # BAD 

invece di:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # WORKING 

Notare lo spazio mancante tra. e "$ HOME.

Inoltre, se questo è il problema, si dovrebbe anche essere notando un errore in cima quando si avvia il terminale.

0

È necessario modificare le preferenze di emulazione di terminale per consentire l'accesso shell. a volte è necessario per utilizzare /bin/bash --login come il comando .

Problemi correlati