Come cambio la mia versione di Ruby usando RVM?


111

Non sono in grado di cambiare la versione corrente di Ruby:

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

sei sicuro di aver installato rvm correttamente? che sistema operativo stai usando?
lesce

2
Aggiungi l'output di rvm infoalla tua domanda per favore.
Tin Man

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

4
Hai la funzione di caricamento RVM nello script di avvio della shell? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"è il codice da usare. Se hai RVM installato nel tuo percorso, ma non lo hai nello script di avvio, puoi ottenere l' RVM is not a functionerrore.
Michelle Tilley

Questa soluzione funziona per me - rvm.io/integration/gnome-terminal
gotqn

Risposte:


122

Aggiustato. Avevo bisogno di aggiungere:

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

per .zshrc


57

È successo anche a me. Avevo:

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

Aggiunto nel mio .bashrc.

Tutto quello che dovevo fare era aggiungerne un altro

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

allo stesso file e ha funzionato! Ovviamente, dopo devi riavviare il tuo terminale.


1
avevo questa stessa riga (il [[-s "$ HOME / ...) nel mio ~ / .bash_profile e non sembrava" prendere "quando ho aperto un nuovo terminale ... ma quando ho aggiunto la riga sotto la riga PATH in ~ / .bashrc, ha funzionato, il che significa che 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 contento che abbia funzionato. forse qualcuno può chiarire la mia confusione.
TimDog,

è fantastico, ho appena inserito questa riga in ~ / .bashrc, funziona. ma non so nemmeno perché.
Jack Ma

Sì, funziona. Ma ogni volta che riavvio la mia macchina devo dare i comandi sopra menzionati. Se non fornisco i comandi si dice che rvm non è una funzione.
Apurva Mayank

11

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

Eseguilo una 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

o aggiungilo manualmente da solo. (Nota che su alcuni sistemi, vorrai metterlo in altri posti, ad esempio sul mio sistema, Mac OSX Lion, lo metto in ~ / .profile)


Sto usando OS X Snow Leopard, inserire quella riga nel mio .profile ha fatto il trucco per me.
Heldraug

9

(Kubuntu 11.10) ~/.bash_profileAdesso 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

6

Per modificare la versione predefinita di ruby:

In Ubuntu 11.10
, modifica le impostazioni del tuo terminale GNOME:

Vai su Terminal e segui 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

5

Per aggiungere tutte le funzionalità RVM al tuo .bash_profile dovresti usare il seguente comando:

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

Dopodiché dovresti ricaricare la shell corrente o aprire una nuova sessione di terminale e digitare il seguente comando per ricaricare .bash_profile:

source .bash_profile

4

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

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

rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
Jose Alban,

3

Dovevo solo invocare la fonte ~/.bash_profile


3

Su un'installazione pulita di Ubuntu 12.04 mi sono imbattuto nello stesso problema. Il programma di installazione RVM crea o aggiunge a un file chiamato ~ / .bash_log il bit di codice necessario 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 essere invocato. L'aggiunta a ~ / .bashrc ha risolto il problema per me.


1

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


Non utilizzare fonti non autorevoli per l'installazione di RVM. La pagina di installazione RVM dice specificamente: "Nota che qualsiasi tutorial esterno NON è supportato indipendentemente dal fatto che funzioni o meno. I tutorial sono fantastici, tuttavia abbiamo speso enormi quantità di ore di lavoro per eseguire il debug del processo di installazione. Utilizza il processo di installazione da solo questo sito, poiché questo è l'unico tipo e metodo di installazione supportati. "
Tin Man

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, dovresti anche notare un errore all'inizio quando avvii il tuo terminale.


0

Ho avuto un'installazione globale di RVM, che esegue /etc/profile.d/rvm.sh. Tuttavia, quello script richiede l'impostazione BASH_VERSION o ZSH_VERSION. Stavo correndo da crontab, che usa "sh".

Ho creato uno script wrapper che utilizza / bin / bash per generare /etc/profile.d/rvm.sh.


0

È necessario modificare le preferenze dell'emulatore di terminale per consentire la shell di accesso. A volte è necessario utilizzare /bin/bash --logincome comando.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.