RVM bukan fungsi, memilih rubi dengan 'penggunaan rvm ...' tidak akan berfungsi

160

Daftar versi ruby

console:~$ rvm list

rvm rubies

ruby-2.0.0-p481 [ i686 ]

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

Coba gunakan ruby ​​versi tertentu

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.
pengguna3678471
sumber
1
Apa yang sedang Anda coba lakukan?
Pavan
Terminal apa yang Anda gunakan? Pengaturan shell login berbeda per aplikasi terminal. Atau Anda bisa source $HOME/.profileatau di source $HOME/.bash_profilemana rvm mungkin telah mendefinisikan baris init-nya.
Michael Berkowski
Anda perlu menjalankan konsol Anda sebagai shell login. Sistem apa yang Anda miliki?
BroiSatse
Terminal Gnome Ubuntu 12.04 lts
user3678471
4
Jika Anda bertanya-tanya apa perbedaan antara shell login vs non-login: unix.stackexchange.com/questions/38175/…
stephenbez

Jawaban:

237

Konsol Anda tidak berjalan sebagai shell login dan karenanya tidak memiliki akses ke fungsi rvm. Jika Anda menjalankan Ubuntu, Anda dapat:

  1. Buka konsol
  2. Pilih Edit -> Preferensi Profil
  3. Pilih tab: Judul dan Perintah
  4. Centang kotak 'Jalankan perintah sebagai shell masuk'
  5. Mulai ulang terminal
BroiSatse
sumber
1
Saya melakukan itu tetapi tidak berhasil. Masalahnya masih ada. Bagaimana cara menghapus rvm sepenuhnya?
user3678471
16
Tentu saja Anda memerlukan yang berikut di ~ / .profile Anda [[-s "$ HOME / .rvm / script / rvm"]] &&. "$ HOME / .rvm / scripts / rvm"
nadersoliman
3
Saya pikir ini bisa dijelaskan lebih lanjut - "dan karenanya tidak memiliki akses ke fungsi
RVM
1
Itu berhasil. Namun bisakah Anda membedakan antara keduanya?
Krishnadas PC
6
Apa yang berfungsi untuk saya di OSX adalah/bin/bash --login; source ~/.rvm/scripts/rvm; rvm use 2.4.0
Jayesh
116

Ketik bash --logindari terminal Anda. Dan kemudian memberirvm use 2.0.0

ingin tahu
sumber
@AdityaPednekar Jadi, terkadang membaca pesan kesalahan / konsol benar-benar membantu, 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.menentukan detailnya.
ingin tahu
Ya, ini membantu menyadari betapa rumitnya penggunaan rvmdibandingkan dengannvm
Jannis Ioannou
53

Sepertinya rvm Anda tidak memuat ".bash_profile" dengan benar. Saya telah memperbaikinya di MAC OS X atau Ubuntu 14.04 dengan membuka terminal dan menulis:

source ~/.rvm/scripts/rvm
akbarbin
sumber
41

Env saya adalah OSX Yosemite. Punya masalah yang sama .... diselesaikan dengan menambahkan berikut ini

1) edit dan tambahkan baris berikut ke file .bash_profile .

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

2) Mulai ulang terminal dan coba perintah RVM lagi

John Varghese
sumber
2
Anda dapat menambahkan ini ke ~ / .bashrc atau ~ / .zshrc (jika Anda menggunakan zsh) juga.
adridev
Jika Anda tidak ingin atau tidak dapat memulai ulang terminal, Anda dapat menjalankannya source ~/.bash_profilesetelah mengeditnya.
Andre Ravazzi
35

Jika Anda tidak ingin itu setiap kali Anda membuka terminal, lakukan saran di atas lagi, cukup tambahkan

source ~/.rvm/scripts/rvm

pada akhir ~/.bashrc

hhzhu
sumber
Yang ini membantu.
Arup Rakshit
.. dan perlu restart?
Gordie
16

Kesalahan ini karena rvm tidak berjalan seperti di shell login. Maka cobalah perintah di bawah ini:

/bin/bash --login

Anda dapat menjalankan perintah rvm secara langsung sebagai shell login di terminal.

Terima kasih!

Sumit Munot
sumber
15

Prinsip yang sama dengan jawaban lain, hanya berpikir itu lebih cepat daripada membuka kembali terminal :)

bash -l -c "rvm use 2.0.0"
Vigintas Labakojis
sumber
Seseorang harus memberikan jawaban yang lebih baik daripada semua ini. Ini adalah satu-satunya item dalam semua jawaban untuk pertanyaan ini yang bekerja untuk saya tetapi ini bukan sesuatu yang ingin saya lakukan sepanjang waktu. Saya menggunakan Mac OSX Sierra
djangofan
9

Anda perlu menambahkan source ~/.rvm/scripts/rvmuntuk ~/.your_shellrc file. Mulai sekarang saat Anda memuat shell, rvm akan dimuat.

Sebagai contoh:

jika Anda menggunakan zsh shell, perlu menambahkan ~/.zshrcfile

jika Anda menggunakan bash shell, perlu menambahkan ~/.bashrcfile

Dan kemudian buka tab baru untuk melihat efeknya.

Siva Praveen
sumber
7

Bagi saya di Ubuntu (18.08), saya telah menambahkan baris berikut di .bashrc dan berfungsi.

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

Silakan tambahkan baris ini.

Arjun
sumber
1
Terima kasih! Ini bekerja untuk saya di MacOS! Sebagai saran, saya pikir lebih baik menggunakan ~untuk merujuk ke jalur beranda pengguna: source ~/.rvm/scripts/rvm:-)
Giovanni Benussi
2

Dari Instalasi Ubuntu 16.04 baru

1) Terminal => Edit => Preferensi Profil

2) Command Tab => Periksa perintah Run sebagai shell login

3) Tutup, dan buka kembali terminal

rvm --default use 2.2.4
WiredIn
sumber
0

FWIW- Saya hanya berlari melintasi ini juga, itu dalam konteks selenium yang dibatalkan. Mungkin ada sub-shell yang dipakai dan dibiarkan di tempat. Menutup jendela terminal dan membuka yang baru adalah semua yang perlu saya lakukan. (macOS Sierra)

pengguna8099101
sumber