Usunięcie wszystkich zainstalowanych klejnotów i rozpoczęcie od nowa


92

Niedawno zacząłem uczyć się Ruby i Ruby on Rails i obejrzałem mnóstwo materiałów wprowadzających. Ostatnio odkryłem, że wciąż otrzymuję błędy, w których klejnoty nie zostaną zainstalowane lub zostaną zainstalowane, ale z jakiegoś powodu nie mogą być używane i zdecydowałem, że chcę usunąć wszystko, aby ponownie zainstalować Ruby i zacznij od początku instalacji. Jeden film szkoleniowy kazał mi zainstalować większość moich klejnotów z RVM, więc nie wiem, czy to coś zmienia.

Krótko mówiąc, moje pytanie brzmi: „Jak pozbyć się RVM, Rubygems i wszystkich zainstalowanych Gems, abym mógł zacząć od nowa tylko z Rubim?”

Edycja: korzystam z systemu Mac OS 10.6


1
Czy zainstalowałeś / opt / ruby? To właśnie robię, więc mogę szybko usunąć rubin.
alternatywa

Zobacz stackoverflow.com/questions/15100496/… To powinno działać również w wersji 1.9.3 :)
Nathan Lilienthal

Tytuł Twojego pytania i podsumowanie „krótkiego pytania” na końcu to dwie różne rzeczy ...
mpowered

Odpowiedzi:


118

Z witryny pomocy technicznej RVM :

RVM instaluje wszystko w ~ / .rvm. Aby usunąć RVM z systemu, uruchom „rm -rf ~ / .rvm”. Możesz mieć jeden dodatkowy plik konfiguracyjny w ~ / .rvmrc i oczywiście zaczep RVM w swoich plikach startowych bash / zsh.

Po prostu przejdź do wiersza poleceń i wpisz rm -rf ~/.rvm

Wszystkie zainstalowane klejnoty znajdują się w folderach ~ / .rvm, więc wykonanie powyższego spowoduje usunięcie klejnotów i zainstalowanych rubinów za jednym razem.

Klejnoty dodane przed RVM z domyślną instalacją Ruby można usunąć, wpisując to w wierszu polecenia:

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

1
Właśnie to uruchomiłem, ale klejnoty nadal są zainstalowane. Wygląda jednak na to, że załadował go ponownie. Nie jestem pewien, czy załadował się ponownie z ustawieniami domyślnymi z Mac XCode, czy co ...
Dave Long,

dodano kolejną linię, aby pozbyć się klejnotów, które dodałeś przed RVM
michaelmichael

1
Dodałbym opcje '-all -x -I' do deinstalacji gem, aby zapobiec wyświetlaniu monitów (o pliki binarne, wersje lub zależności) podczas odinstalowywania.
timmfin

4
Dla porównania, pełne polecenie to: for x in `gem list --no-version`; wykonaj deinstalację gem $ x -a -x -I; gotowe
Daniel Rehner

7
Aby uzyskać więcej informacji, inna opcja:gem list --no-versions | xargs gem uninstall -aIx
trisweb

68
gem uninstall -aIx

Odinstalowuje wszystkie klejnoty bez monitu.

Opcje

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

To daje mi: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

W systemie Windows i Unix kopiuj / wklej w wierszu poleceń ( 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) ^
izomorfizm

@isomorphismes nie jestem pewien, czy to naprawiłem, ale możesz teraz wypróbować polecenie.
Haris Krajina

22

używając RVM, możesz po prostu wpisać ...

rvm gemset empty GEMSET

gdzie GEMSET to zestaw kamieni, który chcesz opróżnić. następnie...

zainstaluj pakiet

yum install bundler i w końcu

bundle install

14

rvm implode(zobacz dokumentację cli ) wydaje się działać - a nawet mówi ci, gdzie szukać resztek


2
To jest technicznie najbardziej poprawna odpowiedź i dokładnie to, do czego została zaprojektowana.
mpowered

„implode - usuwa wszystkie zarządzane przez siebie instalacje ruby, wszystko w ~ / .rvm”
Nein

5
  1. To działa dla mnie na Ubuntu 16.04. U mnie, gdy wykonywałem polecenia z linii poleceń -v, generowało błędy z powodu NameError. Zainstalowałem 3 wersje szyn (4.2.0, 4.2.6, 5.0.0.1). Próbowałem odinstalować niepotrzebny klejnot za pomocą polecenia gem uninstall rails -v numer wersji, ale nie mogę, ale znajduję sposób na rozwiązanie tego problemu. Aby odinstalować wszystkie klejnoty, musisz przejrzeć wszystkie wpisy na liście klejnotów za pomocą skryptów bash. Ta metoda jest bardzo niewygodna. Dzięki Rubygems 2.1.0 możesz to teraz zrobić jednym poleceniem.

    KROK 1

    Po pierwsze, upewnij się, że zaktualizowałeś Rubygems do wersji 2.1.0 lub nowszej. W tym celu uruchom to polecenie (O ile pracujesz na starszej wersji. Możesz sprawdzić swoją wersję klejnotu za pomocą tego polecenia, któregokolwiek z nich gem -v lub gem --version )

    aktualizacja klejnotów - system

    klejnot - wersja

    KROK 2

    Uruchom to polecenie w swoim terminalu

    deinstalacja klejnotów - wszystko

    Krok 3

    Zainstalować pakiety szlachetnych (nie jest konieczne, myślę tylko o ostrożności) gem install pakiet

    Krok - 4
    Zainstaluj szyny w swoim systemie za pomocą tego polecenia gem install rails -vspecific version you want to install możesz sprawdzić wersję railsów na oficjalnej stronie rails wszystkie wersje przykład: - Zainstalowałem rails w wersji 4.2.6, instalujesz zgodnie z wymaganiami. gem install rails -v 4.2.6

    Krok - 5

    Na koniec sprawdź wersję zainstalowanej aplikacji frameworkowej rails, używając podstawowych poleceń rails -v . Będzie to odzwierciedlać obecną wersję frameworków railsowych. Cieszyć się :)

    Bibliografia

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


2

Krok 1:

Po raz pierwszy napotkałem błąd, który mówił:

Nie masz uprawnień do zapisu w katalogu / usr / bin

Aby uzyskać pozwolenie, zostałem użytkownikiem root z (jest to potencjalnie niebezpieczne z powodów niezrozumiałych) :

sudo -s

Kredyt

Krok 2:

Potem ciągle pojawiał się błąd, który mówił:

Nie można odinstalować [klejnotu], ponieważ jest to domyślny klejnot

To pozwoliło mi odinstalować wszystko:

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

Kredyt

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.