Yüklü tüm Mücevherleri kaldırma ve yeniden başlama


92

Yakın zamanda Ruby ve Ruby on Rails'i öğrenmeye başladım ve çok sayıda başlangıç ​​materyali izledim. Son zamanlarda, mücevherlerin yüklenmediği veya yüklenecekleri ancak herhangi bir nedenle kullanılamayacakları hatalar almaya devam ettiğimi fark ettim ve her şeyi bir kez daha Ruby'nin kurulmasına kadar kaldırmak istediğime karar verdim. ve kurulumla baştan başlayın. Bir eğitim videosu değerli taşlarımın çoğunu RVM ile yüklememi sağladı, bu yüzden bunun bir şeyi değiştirip değiştirmediğini bilmiyorum.

Kısacası sorum şu: "Sadece Ruby ile baştan başlayabilmem için RVM, Rubygems ve kurulu tüm Gemlerden nasıl kurtulurum?"

Düzenleme: Mac OS 10.6 kullanıyorum


1
/ Opt / ruby'e yüklediniz mi? Yakutu çabucak yok edebilmek için yaptığım bu.
alternatif

Bkz stackoverflow.com/questions/15100496/... Bu :) sıra 1.9.3 için çalışmalıdır
Nathan Lilienthal

Sorunuzun başlığı ve sondaki "kısa soru" özeti iki farklı şeydir ...
04'te güçlendirildi

Yanıtlar:


118

Gönderen RVM destek sitesine:

RVM her şeyi ~ / .rvm içine yükler. RVM'yi sisteminizden kaldırmak için 'rm -rf ~ / .rvm' komutunu çalıştırın. ~ / .Rvmrc içinde bir ek yapılandırma dosyanız ve tabii ki bash / zsh başlangıç ​​dosyalarınızda RVM kancası olabilir.

Bu nedenle, komut satırına gidin ve şunu yazın: rm -rf ~/.rvm

Yüklü tüm taşlar ~ / .rvm klasörlerindedir, bu nedenle yukarıdakileri yapmak, mücevherleri ve yüklü yakutları tek seferde kaldıracaktır.

Varsayılan ruby ​​kurulumuyla RVM öncesi eklediğiniz mücevherler, komut istemine şunu yazarak kaldırılabilir:

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

1
Bunu biraz önce çalıştırdım ama mücevherler hala yüklü. Ancak yeniden yüklüyor gibi görünüyor. Mac XCode varsayılanları ile yeniden yüklendiğinden emin değilim ya da ...
Dave Long

RVM öncesi eklediğiniz mücevherlerden kurtulmak için bir satır daha ekledi
michaelmichael

1
Kaldırma sırasında (ikili dosyalar, sürümler veya bağımlılıklar için) sizi uyarmasını önlemek için gem yüklemesini kaldırmak için '-all -x -I' seçeneklerini eklerdim.
timmfin

4
Başvuru için tam komut: for `gem list --no-version` içindeki x; gem kaldırmak yap $ x -a -x -I; bitti
Daniel Rehner

7
Daha fazla referans için başka bir seçenek:gem list --no-versions | xargs gem uninstall -aIx
trisweb

68
gem uninstall -aIx

İstenmeden tüm mücevherleri kaldırır.

Seçenekler

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

Bu bana şunu verir: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

İçin , Windows ve Unix kopya / istemi komutu (yapıştırmak 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) ^
isomorphismes

@isomorphismes düzeltip düzeltmediğimden emin değil, ancak şimdi komutu deneyebilirsiniz.
Haris Krajina

22

RVM kullanarak, sadece yazabilirsiniz ...

rvm gemset empty GEMSET

GEMSET, boşaltmak istediğiniz mücevher setidir. sonra...

paketi yükle

yum install bundler ve sonunda

bundle install

14

rvm implode( cli belgelerine bakın ) işe yarıyor gibi görünüyor - ve hatta artıklar için nereye bakmanız gerektiğini bile söylüyor


2
Bu teknik olarak en doğru cevap ve tam olarak bunun için tasarlandı.
2017'de

"implode - yönettiği tüm Ruby kurulumlarını, ~ / .rvm içindeki her şeyi kaldırır"
Nein

5
  1. Bu benim için Ubuntu 16.04'te çalışıyor. Benim için, komut raylarını çalıştırırken -v NameError nedeniyle hata veriyor. 3 ray sürümü kurdum (4.2.0, 4.2.6, 5.0.0.1). Gem uninstall rails -v sürüm numarası komutunu kullanarak gereksiz gem'i kaldırmaya çalışıyordum ancak yapamayacağım, ancak bu sorunu çözmenin bir yolunu buldum. Tüm mücevherleri kaldırmak için, gem listesindeki tüm girişleri bash komut dosyasıyla döngülemeniz gerekir. Bu yöntem çok sakıncalıdır. Rubygems 2.1.0 sayesinde, artık bunu tek bir komutla yapabilirsiniz.

    AŞAMA 1

    Öncelikle, lütfen Rubygems'lerinizi 2.1.0 veya daha yenisine yükselttiğinizden emin olun. Bunun için bu komutu çalıştırın (Eski bir sürüm üzerinde çalışıyorsanız. Gem sürümünüzü bu komutu kullanarak gem -v veya gem --version herhangi birini kullanarak kontrol edebilirsiniz )

    gem update --system

    gem --version

    ADIM 2

    Bu komutu terminalinizde çalıştırın

    gem kaldırma - hepsi

    Aşama 3

    Gem paketlerini yükleyin (gerekli değil, sadece önlemler için düşünüyorum) gem kurulum paketi

    Adım - 4
    Bu komutu kullanarak rayları sisteminize kurun gem install rails -vspecific version you want to install resmi site raylarındaki tüm sürümler üzerindeki rayların versiyonunu kontrol edebilirsiniz : - Rayların 4.2.6 versiyonunu kurdum, ihtiyaca göre kurun. gem yükleme rayları -v 4.2.6

    Adım 5

    Son olarak, temel komut raylarını -v kullanarak kurulu raylar çerçeve uygulamasının sürümünü kontrol edin . Ray çerçevelerinin güncel versiyonunu yansıtacak. Zevk almak :)

    Referanslar

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


2

Aşama 1:

Önce şunu söyleyen bir hatayla karşılaştım:

/ Usr / bin dizini için yazma izniniz yok

İzin almak için root kullanıcısı oldum (şu anki anlayışımın dışındaki nedenlerden dolayı bu potansiyel olarak tehlikelidir) :

sudo -s

Kredi

Adım 2:

Sonra, şunu söyleyen bir hatayla karşılaşmaya devam ettim:

[gem] varsayılan bir mücevher olduğu için kaldırılamaz

Bu, her şeyi kaldırmama izin verdi:

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

Kredi

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.