RVM non è una funzione, selezionando rubini con 'rvm use ...' non funzionerà


160

Elencare le versioni di ruby

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

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

Prova a utilizzare una versione specifica di ruby

console:~$ rvm use 2.0.0

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

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for a example.

1
Cosa stai cercando di fare?
Pavan,

Che terminale usi? L'impostazione della shell di accesso varia in base all'applicazione del terminale. In alternativa, è possibile source $HOME/.profileo source $HOME/.bash_profiledove probabilmente rvm ha definito la sua linea init.
Michael Berkowski

È necessario eseguire la console come shell di accesso. Che sistema hai?
BroiSatse,

Terminal Gnome Ubuntu 12.04
lts

4
Nel caso ti stia chiedendo quale sia la differenza tra una shell di login e non di login: unix.stackexchange.com/questions/38175/…
stephenbez

Risposte:


237

La tua console non funziona come shell di login e quindi non ha accesso alla funzione rvm. Se stai eseguendo Ubuntu, puoi:

  1. Apri la console
  2. Seleziona Modifica -> Preferenze profilo
  3. Selezionare la scheda: titolo e comando
  4. Casella di controllo "Esegui comando come shell di accesso"
  5. Riavvia terminale

1
L'ho fatto ma non ha funzionato. Il problema persiste . Come rimuovere completamente rvm?
user3678471

16
Naturalmente avrai bisogno di quanto segue nel tuo ~ / .profile [[-s "$ HOME / .rvm / scripts / rvm"]] &&. "$ HOME / .rvm / scripts / rvm"
nadersoliman,

3
Penso che questo possa essere spiegato di più - "e quindi non ho accesso alla funzione
rvm

1
Ha funzionato. Ma puoi dire la differenza tra quei due?
Krishnadas PC

6
Quello che funziona per me su OSX è/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh,

116

Digita bash --logindal tuo terminale. E poi darervm use 2.0.0


@AdityaPednekar Quindi, a volte leggere il messaggio di errore / console aiuta effettivamente, RVM is not a function, selecting rubies with 'rvm use ...' will not work. You need to change your terminal emulator preferences to allow login shell. Sometimes it is required to use /bin/bash --login as the command. Please visit https://rvm.io/integration/gnome-terminal/ for a example.specifica i dettagli.
curioso il

Sì, aiuta a capire quanto sia irragionevolmente complesso da usare rvmrispetto anvm
Jannis Ioannou,

53

Sembra che il tuo rvm non carichi correttamente ".bash_profile". Ho fatto per risolverlo in MAC OS X o Ubuntu 14.04 aprendo il terminale e scrivendo:

source ~/.rvm/scripts/rvm

41

Il mio env è OSX Yosemite. Ha avuto lo stesso problema .... risolto aggiungendo quanto segue

1) modifica e aggiungi la seguente riga al file .bash_profile .

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

2) Riavvia il terminale e prova di nuovo il comando RVM


2
Puoi aggiungerlo anche a ~ / .bashrc o ~ / .zshrc (se stai usando zsh).
adridev,

Se non si desidera o non è possibile riavviare il terminale, è possibile eseguirlo source ~/.bash_profiledopo averlo modificato.
Andre Ravazzi,

35

Se non vuoi che ogni volta che apri un terminale, fai di nuovo il suggerimento sopra, aggiungi

source ~/.rvm/scripts/rvm

alla fine di ~/.bashrc


Questo ha aiutato.
Arup Rakshit,

.. e hai bisogno di un riavvio?
Gordie,

16

L'errore è dovuto al fatto che rvm non è in esecuzione come nella shell di accesso. Quindi prova il comando seguente:

/bin/bash --login

Sarai in grado di eseguire immediatamente i comandi rvm come shell di login nel terminale.

Grazie!


15

Stesso principio delle altre risposte, ho pensato che fosse più veloce di riaprire i terminali :)

bash -l -c "rvm use 2.0.0"

Qualcuno dovrebbe trovare una risposta migliore di tutte queste. Questo è l'unico elemento in tutte le risposte a questa domanda che funziona per me, ma questo non è qualcosa che voglio fare sempre. Sono su Mac OSX Sierra
djangofan il

9

Devi aggiungere source ~/.rvm/scripts/rvma ~/.your_shellrc file. Da adesso quando carichi una shell, verrà caricato rvm.

Per esempio:

se si utilizza la shell zsh, è necessario aggiungere nel ~/.zshrcfile

se si utilizza la shell bash, è necessario aggiungere nel ~/.bashrcfile

E quindi apri una nuova scheda per vedere l'effetto.


7

Per me in Ubuntu (18.08), ho aggiunto la riga sotto in .bashrc e funziona.

 source /home/username/.rvm/scripts/rvm

Per favore aggiungi questa linea.


1
Grazie! Questo ha funzionato per me su MacOS! Come suggerimento, penso che sia meglio usare ~per fare riferimento al percorso di casa dell'utente: source ~/.rvm/scripts/rvm:-)
Giovanni Benussi,

2

Da una nuova installazione di Ubuntu 16.04

1) Terminale => Modifica => Preferenze profilo

2) Scheda Comando => Controlla il comando Esegui come shell di accesso

3) Chiudere e riaprire il terminale

rvm --default use 2.2.4

0

FWIW- Mi sono appena imbattuto anche in questo, era nel contesto di una corsa al selenio annullata. Forse c'era un'istantanea che veniva istanziata e lasciata sul posto. Chiudere quella finestra del terminale e aprirne una nuova era tutto ciò che dovevo fare. (macOS Sierra)

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.