Są przypadki, w których chciałbym cofnąć i odinstalować wszystkie poprzednie instalacje klejnotów.
Na przykład musiałem pomóc przyjacielowi w migracji maszyny do tworzenia szyn do używania RVM. Ponieważ wcześniej korzystali z systemu w całym systemie gem
, doświadczał wielu bólów głowy podczas pracy z wieloma projektami. Zasadniczo był dzieckiem-plakatem dla konwertowanego RVM.
Jak mogę elegancko odinstalować wszystkie klejnoty z jego systemu OSX?
yes Y | gem uninstall -a -I
Odpowiedzi:
Rubygems> = 2.1.0
a
usuwa wszystkie wersjeI
ignoruje zależności, wx
tym pliki wykonywalneRubgems <2.1.0
źródło
ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem
(gem 2.0.3)for i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
Możesz także zbudować nowy plik Gemfile i uruchomić
bundle clean --force
. Spowoduje to usunięcie wszystkich innych klejnotów, których nie ma w nowym pliku klejnotów.źródło
Najmniejsza inna wersja, pomijająca krok cięcia, wykorzystująca opcję „--no-version”:
Ponieważ usuwasz wszystko, nie widzę potrzeby opcji „ja”. Jeśli klejnot zostanie usunięty, wszystko jest w porządku.
źródło
sudo
nie powinno być konieczne, jeśli klejnoty zostały zainstalowane przez zwykłego użytkownika.Najpierw upewnij się, że masz co najmniej gem w wersji 2.1.0
Aby odinstalować, po prostu uruchom:
Może być konieczne użycie
sudo
polecenia:źródło
Użyj albo
lub
W zależności od tego, co chcesz, może być konieczne wykonanie obu, ponieważ „lista klejnotów” i „lista klejnotów sudo” zapewniają niezależne listy.
Nie mieszaj zwykłej „listy klejnotów” z sudo-ed „deinstalacją klejnotów” ani odwrotnie, w przeciwnym razie możesz skończyć odinstalowaniem klejnotów zainstalowanych w sudo (pierwszy) lub uzyskać wiele błędów (drugi).
źródło
Jeśli używasz rubygems wersji 2.1.0 lub nowszej, można spróbować:
gem uninstall --all
.źródło
Jeśli lubisz to robić używając ruby:
Twoje zdrowie
źródło
Rubygems> = 2.1.0
Jeśli Terminal zwróci poniżej błąd
Następnie napisz powyższe polecenie, jak poniżej
I wprowadź hasło do konta Mac OS Gotowe !!
źródło
A dla tych z was, którzy są tutaj, ponieważ chcą usunąć wszystkie klejnoty z określonym prefiksem ( ahem patrzę na ciebie aws-sdk!), Możesz uruchomić coś takiego:
Oczywiście zamiast tego wpisz zapytanie
aws-sdk-
. Potrzebujesz-I
tam, aby zignorować zależności.Przyjęte z wcześniejszej odpowiedzi Ando
źródło
Jedyne polecenie pomogło mi wyczyścić wszystkie klejnoty i ignoruje domyślne klejnoty, których nie można odinstalować
źródło
Zrobiłem to nie tak dawno temu (ta sama sytuacja przełącznika RVM z plakatem):
Pobiera listę wszystkich klejnotów (łącznie z wersjami), przycina ją, aby zachować tylko nazwę klejnotu, a następnie odinstalowuje wszystkie wersje takich klejnotów.
Jest
sudo
to przydatne tylko wtedy, gdy masz zainstalowane klejnoty w całym systemie i nie powinno być dołączane, chyba że jest to konieczne.źródło
Podczas próby usunięcia klejnotów zainstalowanych jako root, xargs wydaje się zatrzymywać, gdy napotka błąd podczas próby odinstalowania domyślnego klejnotu:
To nie zadziała dla wszystkich, ale oto, czego użyłem:
źródło
grep wyklucza tutaj domyślne klejnoty. Wszystkie inne klejnoty zostaną odinstalowane. Możesz również poprzedzić go ciągiem
sudo
w przypadku problemów z uprawnieniami.źródło