Bagaimana cara mengubah versi Ruby saya menggunakan RVM?

111

Saya tidak dapat mengganti versi Ruby saat ini:

  ~  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.
donald
sumber
apakah Anda yakin telah menginstal rvm dengan benar? OS apa yang Anda gunakan?
lesce
2
rvm infoHarap tambahkan keluaran dari pertanyaan Anda.
the Tin Man
Saya memiliki masalah yang sama dengan menginstal rvm dengan apt-get di Ubuntu 11.10, saya harus menghapusnya dan menginstalnya kembali dengan$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
lesce
4
Apakah Anda memiliki fungsi pemuatan RVM di skrip startup shell Anda? [[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"adalah kode yang akan digunakan. Jika Anda memiliki RVM diinstal di jalur Anda, tetapi Anda tidak memilikinya di skrip startup Anda, Anda bisa mendapatkan RVM is not a functionkesalahan.
Michelle Tilley
Solusi ini bekerja untuk saya - rvm.io/integration/gnome-terminal
gotqn

Jawaban:

122

Diperbaiki. Saya perlu menambahkan:

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

untuk .zshrc

donald
sumber
57

Ini juga terjadi pada saya. Saya punya:

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

Ditambahkan di .bashrc saya.

Yang harus saya lakukan hanyalah menambahkan yang lain

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

ke file yang sama dan berhasil! Tentu saja, Anda harus memulai ulang terminal Anda setelah itu.

The Mitra Boy
sumber
1
Saya memiliki baris yang sama ini ([[-s "$ HOME / ...) di ~ / .bash_profile saya dan sepertinya tidak" mengambil "ketika saya membuka terminal baru ... tetapi ketika saya menambahkan baris di bawah baris PATH di ~ / .bashrc, itu berhasil - artinya, saya bisa mengetik rvm menggunakan 1.9.3 dan itu akan segera mengenali rvm sebagai perintah tanpa saya perlu terlebih dahulu mengetikkan sumber ~ / .bash_profile - i ' Saya bukan orang linux, jadi ini membingungkan saya, tapi saya senang ini berhasil. mungkin seseorang dapat menjelaskan kebingungan saya.
TimDog
itu bagus, saya hanya meletakkan baris ini di ~ / .bashrc, berhasil. tapi saya juga tidak tahu kenapa.
Jack Ma
Ya itu berhasil. Tetapi setiap kali saya me-restart mesin saya, saya harus memberikan perintah yang disebutkan di atas. Jika saya tidak memberikan perintah, dikatakan rvm bukan fungsi.
Apurva Mayank
11

Shell Anda tidak tahu tentang fungsi RVM. Setelah Anda menginstalnya, ia memberi tahu Anda cara menangani ini. Atau buka halaman penginstalan di situs RVM dan lihat bagian berjudul "2. Muat RVM ke sesi shell Anda sebagai fungsi"

Jalankan ini sekali untuk menambahkan baris yang memuat rvm ke ~ / .bash_profile Anda:

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

atau tambahkan sendiri secara manual. (Perhatikan bahwa pada beberapa sistem, Anda ingin meletakkannya di tempat lain, misalnya di sistem saya, Mac OSX Lion, saya taruh di ~ / .profile)

Joshua Cheek
sumber
Saya menggunakan OS X Snow Leopard, meletakkan baris itu di profil. Saya melakukan trik untuk saya.
Heldraug
9

(Kubuntu 11.10) ~/.bash_profileSekarang dipanggil~/.profile

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

Untuk Mengubah Versi Default ruby:

Di Ubuntu 11.10
harap ubah pengaturan terminal GNOME Anda:

Pergi ke Terminal lalu ikuti instruksi berikut:

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

Jalankan perintah ini di terminal:

rvm --default use ruby_Version
Mayank Raipure
sumber
5

Untuk menambahkan semua fungsionalitas RVM ke .bash_profile Anda, Anda harus menggunakan perintah berikut:

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

Setelah itu Anda harus memuat ulang shell saat ini atau membuka sesi terminal baru dan mengetikkan perintah berikut untuk memuat ulang .bash_profile:

source .bash_profile
Недоброе Привидение
sumber
4

Solusi di atas hanya akan berfungsi, jika RVM diinstal untuk pengguna saat ini. Solusi yang lebih umum akan menggunakan variabel jalur RVM:

# The following code loads RVM as user or system install:
[[ -s "$rvm_path/scripts/rvm" ]] && . "$rvm_path/scripts/rvm"
pengguna2408574
sumber
rvm_path=/home/myuser/.rvm . /home/myuser/.rvm/scripts/rvm
Jose Alban
3

Saya hanya perlu meminta sumber ~/.bash_profile

Behzad
sumber
3

Pada instalasi bersih Ubuntu 12.04 saya mengalami masalah yang sama. Penginstal RVM membuat atau menambahkan ke file bernama ~ / .bash_login sedikit kode yang diperlukan untuk menghindari masalah asli:

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

Namun ini sepertinya tidak dipanggil. Menambahkannya ke ~ / .bashrc menyelesaikan masalah untuk saya.

gordonbanderson
sumber
1

Menginstal RVM, Lihat di sini http://octopress.org/docs/setup/rvm/

hahakubile
sumber
Jangan gunakan sumber non-otoratatif untuk menginstal RVM. The halaman instalasi RVM secara khusus mengatakan: "Perhatikan bahwa bahwa setiap tutorial di luar TIDAK didukung apakah mereka bekerja atau tidak Tutorial besar, namun kami telah menghabiskan sejumlah besar jam manusia debug proses instalasi Gunakan proses instalasi (es) dari.. situs ini saja, karena ini adalah satu-satunya jenis dan metode penginstalan yang didukung. "
Manusia Timah
1

Dalam kasus saya di Ubuntu, entri di ~ / .bashrc memiliki:

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

dari pada:

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

Perhatikan jarak yang hilang di antara keduanya. dan "$ HOME.

Selain itu, jika ini masalahnya, Anda juga harus memperhatikan kesalahan di atas saat Anda memulai terminal.

mohitj2007
sumber
0

Saya memiliki instalasi RVM global, yang menjalankan /etc/profile.d/rvm.sh. Namun, skrip tersebut membutuhkan BASH_VERSION atau ZSH_VERSION untuk disetel. Saya lari dari crontab, yang menggunakan "sh".

Saya membuat skrip pembungkus yang menggunakan / bin / bash ke sumber /etc/profile.d/rvm.sh.

dfrankow.dll
sumber
0

Anda perlu mengubah preferensi emulator terminal untuk mengizinkan shell login. Terkadang diperlukan untuk digunakan /bin/bash --loginsebagai perintah.

Moamen Abdelwahed
sumber