Bagaimana cara menghapus RVM (Ruby Version Manager) dari sistem saya


575

Bagaimana saya bisa menghapus RVM (Ruby Version Manager) dari sistem saya?


9
Tidak yakin tentang niat Anda untuk menghapus rvm- ini bisa menjadi 'keganjilannya' - tetapi rbenvmerupakan alternatif yang bermanfaat. Anda masih dapat mengelola beberapa versi Ruby di sistem Anda, tetapi itu tidak mengesampingkan perintah shell, tidak mengelola permata ( Bundler lebih dari cukup), dan tidak perlu dimuat dalam shell.
Jochem Schulenklopper

Jawaban:


923

Ada perintah sederhana bawaan yang akan menariknya:

rvm implode

Ini akan menghapus rvm/direktori dan semua rubi yang ada di dalamnya. Untuk menghapus jejak terakhir dari rvm, Anda juga harus menghapus permata rvm:

gem uninstall rvm

Jika Anda telah membuat modifikasi pada Anda, PATHAnda mungkin ingin menariknya juga. Periksa .bashrc, .profiledan .bash_profilefile Anda, antara lain.

Anda mungkin juga memiliki /etc/rvmrcfile, atau satu di direktori home Anda ~/.rvmrcyang mungkin perlu dihapus juga.


21
+1 untuk mencatat pengaturan profil dan permata dihapus, jika Anda tidak mendengarkan Wayne di tempat pertama dan memasangnya sebagai permata. :)
Jed Schneider

7
Jika Anda - seperti saya memiliki rvm yang dikonfigurasi dalam penumpang, pastikan untuk menginstal ulang penumpang sesudahnya juga.
berkelanjutan

4
Ini mungkin memecahkannya sementara sampai Anda membuat shell baru, karena itu hanya hal-hal seperti bashberperilaku ketika Anda menarik executable dari PATH.
tadman

14
Saya juga punya referensi ke RVM di~/.zshrc
Nate Cook

8
Adakah yang merasa ingin menghapus rvm lebih mudah dari ini? Saus yang enak.
mycargus

56

Jika jawaban lain tidak cukup menghapus RVM untuk Anda, halaman Pemecahan Masalah RVM berisi bagian ini:

Bagaimana cara saya membersihkan semua jejak RVM dari sistem saya, termasuk untuk pemasangan sistem yang luas?

Berikut ini skrip khusus yang kami beri nama cleanout-rvm. Meskipun Anda dapat menggunakan rvm implodesebagai pengguna biasa atau rvmsudo rvm implodeuntuk pemasangan sistem secara luas, skrip ini berguna karena langkahnya benar-benar di luar RVM dan membersihkan RVM tanpa menggunakan RVM itu sendiri, tanpa meninggalkan jejak.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete
or comment out if this was a Per-User installation."

37

Saat menggunakan implodedan Anda melihat:

Psychologist intervened, cancelling implosion, crisis avoided :)

Maka Anda mungkin ingin menggunakan --force

rvm implode --force

Kemudian hapus RVM dari lokasi berikut:

rm -rf /usr/local/rvm
sudo rm /etc/profile.d/rvm.sh
sudo rm /etc/rvmrc
sudo rm ~/.rvmrc

Periksa file berikut dan hapus atau komentar referensi ke RVM:

~/.bashrc 
~/.bash_profile 
~/.profile 
~/.zshrc
~/.zlogin

Beri komentar / hapus baris berikut dari / etc / profile:

 source /etc/profile.d/sm.sh
 source /etc/profile.d/rvm.sh

/ etc / profile adalah file read-only jadi gunakan:

sudo vim /etc/profile

Dan setelah melakukan perubahan tulis menggunakan bang!

:w!

Terakhir login ulang / restart terminal Anda.


Apa yang membuat pesan awal itu muncul?
Newbyte

1
Jika RVM diinstal untuk satu pengguna, itu seharusnya tidak dilakukan menggunakan sudoawalnya, jadi tidak ada file yang ada di jalur /etcatau /usr. Hanya ketika itu dipasang menggunakan multi-user atau dengan sudoakan Anda lihat itu, dan keberadaan mereka adalah petunjuk yang kuat bahwa dokumentasi instalasi RVM itu tidak diikuti untuk menginstalnya di tempat pertama.
the Tin Man

17

Selain jawaban @ tadman saya menghapus pembungkus /usr/local/binserta file /etc/profile.d/rvm.

Pembungkus meliputi:

erb
gem
irb
rake
rdoc
ri
ruby
testrb

3
Catatan: /usr/local/binbukan /user/local/bin.
bfontaine

7

Banyak orang melakukan kesalahan umum dengan berpikir bahwa 'rvm implode' melakukannya. Anda perlu menghapus semua jejak file .rm. Juga, itu akan mengambil beberapa penghapusan manual dari root. Pastikan, itu terhapus dan juga semua versi ruby ​​yang Anda instal menggunakannya.


6

Hapus skrip memuat RVM dari /.bash_rc atau /.zsh_rc, lalu gunakan:

rm -rf /.rvm

Atau:

rvm implode

2
Apakah itu rvm rm -rf /.rvmatau rm -rf ~/.rvm?
shibly

5

Lari:

rvm implode

Sekarang Anda perlu menghapus permata RVM menggunakan:

gem uninstall rvm

Periksa apakah ada file RVM yang tersisa di direktori home Anda, jika ya hapuslah.

Buka direktori home dan daftarkan semua file tersembunyi:

ls -a

rm  .rvm
rm  .rvmrc

Catatan: RVM bukan permata jadi gem uninstall rvmakan gagal.
the Tin Man

3

Perhatikan bahwa jika Anda menginstal RVM melalui apt-get, Anda harus menjalankan beberapa langkah lebih lanjut daripada rvm implodeatau apt-get remove ruby-rvmuntuk benar-benar menghapus instalannya.

Lihat " Menginstal RVM di Ubuntu ".


2

Jika Anda masih mendapatkan env: ruby_executable_hooks: No such file or directoryketika menelepon beberapa paket Ruby, itu berarti RVM meninggalkan sedikit hadiah untuk Anda di $PATH.

Jalankan yang berikut ini untuk menemukan skrip yang menyinggung:

grep '#!/usr/bin/env ruby_executable_hooks' /usr/local/bin/*

Kemudian rm semua pertandingan. Anda harus menginstal ulang semua perpustakaan itu dengan bebas RVM gem, tentu saja.


2

Untuk pemula shell lainnya mencoba untuk memperbaiki variabel PATH

Setelah mengikuti instruksi dalam jawaban yang diterima, periksa dan modifikasi variabel PATH Anda jika perlu:

env | grep PATH 

jika Anda melihat "rvm" di mana saja, Anda perlu mencari tahu di mana Anda mengatur PATH dan memodifikasi. Saya mengaturnya dalam 3 file - jadi periksa semua file berikut:

vim .bashrc  

Hapus baris-baris dalam file referensi rvm menggunakan perintah dd. : wq untuk menyimpan dan keluar.
source .bashrcuntuk "memuat ulang"

Ulangi proses ini (dimulai dengan perintah vim) untuk .profile dan .bash_profile


Ini adalah poin yang sangat bagus .
the Tin Man

0

Per dokumentasi pemecahan masalah RVM " Bagaimana cara saya membersihkan semua jejak RVM dari sistem saya, termasuk untuk pemasangan di seluruh sistem? ":

Berikut ini skrip khusus yang kami beri nama 'cleanout-rvm'. Meskipun Anda dapat menggunakan rvm implodesebagai pengguna biasa atau rvmsudo rvm implodeuntuk pemasangan sistem secara luas, skrip ini berguna karena langkahnya benar-benar di luar RVM dan membersihkan RVM tanpa menggunakan RVM itu sendiri, tanpa meninggalkan jejak.

#!/bin/bash
/usr/bin/sudo rm -rf $HOME/.rvm $HOME/.rvmrc /etc/rvmrc /etc/profile.d/rvm.sh /usr/local/rvm /usr/local/bin/rvm
/usr/bin/sudo /usr/sbin/groupdel rvm
/bin/echo "RVM is removed. Please check all .bashrc|.bash_profile|.profile|.zshrc for RVM source lines and delete or comment out if this was a Per-User installation."

0

Saya menjalankan Ubuntu 19.04 dan mengikuti semua instruksi di atas dan kemudian beberapa. Akhirnya, yang berhasil bagi saya adalah lari

sudo apt autoremove rvm

dan sekarang ketika saya mencoba dan menginstal ulang RVM itu benar-benar hilang. RVM bersifat invasif, untuk sedikitnya.


Ada banyak upaya untuk menjelaskan cara menginstal RVM di internet, dan sebagian besar sudah ketinggalan zaman dan cukup salah karena aplikasi ini telah berkembang pesat sejak diluncurkan. Situs RVM adalah sumber pasti untuk informasi tentang menginstal, menghapus, atau menggunakannya. Ada banyak halaman karena itu alat yang fleksibel, tetapi jika Anda mengikuti instalasi dasar Anda akan menemukan itu sama sekali tidak invasif dan cukup mudah untuk dikelola atau dihapus.
the Tin Man

-1

Saya mencoba perintah di atas untuk menghapus RVM dari macOS, tetapi entah bagaimana itu masih muncul di jalan.

Inilah yang saya lakukan, yang berhasil:

$ open ~/.bash_profile

Tambahkan ke profil bash Anda berikut ini:

unset GEM_PATH
unset MY_RUBY_HOME
unset GEM_HOME

Kemudian di terminal run:

$ source ~/.bash_profile

Itu harus diinisialisasi di suatu tempat; grepuntuk variabel-variabel tersebut di direktori home Anda dan peluangnya bagus Anda akan mengetahui di mana. Dalam instalasi multi-user mereka bisa di /env/bash_profile.
the Tin Man

Saya menggunakan grep. Saya lupa menyebutkan. Permintaan maaf.
Sumi

Tidak masalah untuk mengedit jawaban Anda dan mengubahnya untuk lebih akurat menunjukkan apa yang Anda lakukan. Ingat, SO bukan tentang solusi langsung untuk OP seperti halnya tentang jawaban jangka panjang untuk orang lain di masa depan yang mencari solusi. Orang lupa itu bukan situs ambil-a-point, ini tentang membuat perubahan positif dalam kode programmer.
the Tin Man
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.