Menghapus semua Permata yang terpasang dan memulai kembali


92

Saya baru-baru ini mulai mempelajari Ruby dan Ruby on Rails, dan telah menyaksikan banyak materi untuk memulai. Akhir-akhir ini saya menemukan bahwa saya terus mendapatkan kesalahan di mana permata tidak dapat dipasang atau mereka akan dipasang tetapi tidak dapat digunakan karena alasan tertentu, dan saya telah memutuskan bahwa saya ingin menghapus semuanya sekali lagi hanya dengan menginstal Ruby dan mulai lagi dengan penginstalan. Satu video pelatihan membuat saya menginstal sebagian besar permata saya dengan RVM, jadi saya tidak tahu apakah itu mengubah sesuatu.

Jadi singkatnya pertanyaan saya adalah "Bagaimana cara menghapus RVM, Rubygems, dan semua Permata yang terinstal sehingga saya dapat memulai kembali hanya dengan Ruby?"

Edit: Saya menggunakan Mac OS 10.6


1
Apakah Anda menginstal ke / opt / ruby? Itulah yang saya lakukan agar saya bisa menghapus ruby ​​dengan cepat.
alternatif

Lihat stackoverflow.com/questions/15100496/… Ini seharusnya bekerja untuk 1.9.3 juga :)
Nathan Lilienthal

Judul pertanyaan Anda dan ringkasan "pertanyaan singkat" di bagian akhir adalah dua hal yang berbeda ...
mpowered

Jawaban:


119

Dari situs dukungan RVM :

RVM menginstal semuanya ke ~ / .rvm. Untuk menghapus RVM dari sistem Anda, jalankan 'rm -rf ~ / .rvm'. Anda mungkin memiliki satu file konfigurasi tambahan di ~ / .rvmrc dan tentu saja pengait RVM di file startup bash / zsh Anda.

Jadi, buka saja baris perintah dan ketik rm -rf ~/.rvm

Semua permata yang terpasang ada di folder ~ / .rvm, jadi melakukan hal di atas akan menghapus permata dan rubi yang terpasang sekaligus.

Permata yang Anda tambahkan sebelum RVM dengan instalasi ruby ​​default dapat dihapus dengan mengetik ini di prompt perintah:

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

1
Saya baru saja menjalankannya, tetapi permata masih terpasang. Namun sepertinya itu memuat ulang itu. Tidak yakin apakah itu dimuat ulang dengan default dari Mac XCode atau apa ...
Dave Long

menambahkan baris lain untuk menyingkirkan permata yang Anda tambahkan sebelum RVM
michaelmichael

1
Saya akan menambahkan opsi '-all -x -I' ke gem uninstall untuk mencegahnya meminta Anda (untuk binari, versi, atau dependensi) saat mencopot pemasangan.
timmfin

4
Sebagai referensi, perintah lengkapnya adalah: for x dalam `gem list --no-versi`; lakukan uninstall gem $ x -a -x -I; selesai
Daniel Rehner

7
Untuk referensi lebih lanjut, opsi lain:gem list --no-versions | xargs gem uninstall -aIx
trisweb

68
gem uninstall -aIx

Copot pemasangan semua permata tanpa prompt.

Pilihan

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation

Itu memberi saya:ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
user2023370

34

Untuk Windows dan Unix salin / tempel di command prompt ( Ruby 1.9.x ).

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"

2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
isomorfisma

@isomorphismes tidak yakin apakah saya telah memperbaikinya, tetapi Anda dapat mencoba perintah sekarang.
Haris Krajina

22

menggunakan RVM, Anda bisa mengetik ...

rvm gemset empty GEMSET

di mana GEMSET adalah gemet yang ingin Anda kosongkan. kemudian...

instal bundel

yum install bundler dan akhirnya

bundle install

14

rvm implode(lihat dokumen cli ) tampaknya berfungsi - dan bahkan memberi tahu Anda di mana harus mencari sisa makanan


2
Secara teknis ini adalah jawaban yang paling benar dan untuk apa jawaban itu dirancang.
diberdayakan

"meledak - menghapus semua instalasi ruby ​​yang dikelolanya, semua yang ada di ~ / .rvm"
Nein

5
  1. Ini berfungsi untuk saya di Ubuntu 16.04. Bagi saya, ketika saya menjalankan command rails -v, terjadi kesalahan karena NameError. Saya telah menginstal 3 versi rel (4.2.0, 4.2.6, 5.0.0.1). Saya mencoba mencopot gem yang tidak perlu menggunakan perintah gem uninstall rails -v version number tetapi saya tidak dapat melakukannya, tetapi saya menemukan cara untuk mengatasi masalah ini. Untuk menghapus semua permata, Anda harus mengulang semua entri dalam daftar permata dengan skrip bash. Cara ini sangat merepotkan. Berkat Rubygems 2.1.0, Anda sekarang dapat melakukannya dengan satu perintah.

    LANGKAH 1

    Pertama, pastikan Anda memutakhirkan Rubygems Anda ke 2.1.0 atau yang lebih baru. Untuk menjalankan ini perintah ini (Jika Anda sedang mengerjakan versi yang lebih lama. Anda dapat memeriksa versi gem Anda menggunakan perintah ini salah satu dari mereka gem -v atau gem --version )

    pembaruan permata --system

    gem --version

    LANGKAH 2

    Jalankan perintah ini di terminal Anda

    uninstall permata --semua

    Langkah - 3

    Instal bundel permata (menurut saya tidak perlu hanya untuk pencegahan) bundel pemasangan permata

    Langkah - 4
    Instal rails di sistem Anda menggunakan perintah ini gem install rails -vspecific version you want to install Anda dapat memeriksa versi rails di situs resmi rails semua versi Contoh: - Saya telah menginstal versi rails 4.2.6, Anda menginstal sesuai kebutuhan. permata memasang rel -v 4.2.6

    Langkah - 5

    Terakhir, periksa versi aplikasi kerangka kerja rails yang diinstal dengan Menggunakan perintah dasar rel -v . Ini akan menggemakan versi kerangka rel saat ini. Nikmati :)

    Referensi

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html


2

Langkah 1:

Saya pertama kali terus mengalami kesalahan yang mengatakan:

Anda tidak memiliki izin menulis untuk direktori / usr / bin

Untuk mendapatkan izin, saya menjadi pengguna root dengan (ini berpotensi berbahaya karena alasan di luar pemahaman saya saat ini) :

sudo -s

Kredit

Langkah 2:

Kemudian, saya terus mengalami kesalahan yang mengatakan:

[gem] tidak dapat dihapus karena ini adalah permata default

Ini memungkinkan saya untuk mencopot semuanya:

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

Kredit

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.