Wygląda na to, że Ruby 2.0.0 dodał "domyślne" klejnoty do miksu i sprawia, że nie są usuwane przez deinstalację gem.Odinstalowywanie wszystkich klejnotów Ruby 2.0.0
Jak usunąć wszystkie klejnoty inne niż domyślne?
Wygląda na to, że Ruby 2.0.0 dodał "domyślne" klejnoty do miksu i sprawia, że nie są usuwane przez deinstalację gem.Odinstalowywanie wszystkich klejnotów Ruby 2.0.0
Jak usunąć wszystkie klejnoty inne niż domyślne?
Użyłem tego skryptu w jednym wierszu.
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
Ignoruje domyślne błędy klejnotów i po prostu kontynuuje. Proste i oczywiste.
To jest prostsze rozwiązanie dla tego problemu, zakładając, że rubygems nadal działa w ten sposób :) –
Dobra robota! Nie widać zbyt wielu poleceń powłoki za pomocą pętli. –
Nie działa.nadal otrzymuję komunikat "nie można odinstalować, ponieważ jest to domyślny klejnot". – Nippysaurus
Napisałem skrypt w ruby, aby usunąć wszystkie klejnoty, które nie są domyślne.
https://gist.github.com/nixpulvis/5042764
Jest to konieczne, ponieważ w przeciwieństwie do obecnie przed 2.0.0 niektóre kamienie są oznaczone jako „default” z instalacją rubin, i nie można odinstalować z gem uninstall
. To sprawia, że dotychczas popularne metody usuwania wszystkich klejnotów nie działają.
Dla odniesienia tutaj jest.
Podany link już nie istnieje. "OH NOES, 404". Czy istnieje gdzieś indziej ten skrypt istnieje, czy jest "do odniesienia" linii całego skryptu? –
Dzięki. Zmieniłem nazwę użytkownika. Adres URL jest naprawiony. –
to powoduje awarię domyślnych klejnotów – brauliobo
pierwsze, przejdź do katalogu klejnotów Jak ../ruby/2.0.0-p195/lib/ruby/gems/2.0.0/specifications
Będziesz znaleźć katalog o nazwie domyślny, który w tym wszystkim kamienie domyślne dostarczane z rubinem 2,0
przenieść wszystkie * .gemspec przechowywane w domyślnie reż do specyfikacje dir i wyjąć pusty domyślny reż.
Potem możesz robić, co chcesz, jak za dawnych dni :-)
Do czego służy katalog specyfikacji? Jest na ścieżce obciążenia, którą zakładam? –
nie znaleźli jeszcze lepszą odpowiedź niż o wykluczeniu „default” perełki.
/usr/local/bin/gem list --no-versions | \
grep -v -E "(bigdecimal|io-console|json|minitest|psych|rake|rdoc|test-unit)" | \
xargs --no-run-if-empty /usr/local/bin/gem uninstall --executables --user-install --all --force
Ten kod zakłada, że zainstalowałeś Ruby 2.0 ze źródła w systemie Linux. – Kevin
można podać przykład klejnoty i jak zainstalowałeś Ruby 2.0 (ręcznie? 'rvm'?) –
Użyłem rbenv do zainstalowania ruby 2.0.0-p0. Klejnoty, które są dla mnie "domyślne" to przynajmniej: bigdecimal 1.2.0, io-console 0.4.2, json 1.7.7, minitest 4.3.2, psych 2.0.0, rake 0.9.6, rdoc 4.0.0, test -jednostka 2.0.0.0. Nie można odinstalować błędów 'gem uninstall json' z gem" json ", ponieważ jest to domyślny klejnot. –
Przepraszam, niezrozumiany. Nigdy nie usuwam klejnotów, nie jestem pewien. Dlaczego potrzebujesz czegoś innego niż "oczyszczanie klejnotów"? –