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.

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

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


@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

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


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


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!


15

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

bash -l -c "rvm use 2.0.0"

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.


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.


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

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)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.