Ich habe mehrere Versionen eines Ruby-Edelsteins:
$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)
Wie kann ich alte Versionen entfernen, aber die neuesten behalten?
Ich habe mehrere Versionen eines Ruby-Edelsteins:
$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)
Wie kann ich alte Versionen entfernen, aber die neuesten behalten?
Antworten:
# remove all old versions of the gem
gem cleanup rjb
# choose which ones you want to remove
gem uninstall rjb
# remove version 1.1.9 only
gem uninstall rjb --version 1.1.9
# remove all versions less than 1.3.4
gem uninstall rjb --version '<1.3.4'
Zum Entfernen älterer Versionen aller installierten Edelsteine sind die folgenden 2 Befehle hilfreich:
gem cleanup --dryrun
Der obige Befehl zeigt eine Vorschau der Edelsteine an, die entfernt werden sollen.
gem cleanup
Der obige Befehl entfernt sie tatsächlich.
Versuchen Sie etwas wie gem uninstall rjb --version 1.3.4
.
Weg, um alte Versionen von Edelsteinen zu entfernen.
sudo gem cleanup
Wenn Sie nur eine Liste der zu entfernenden Elemente anzeigen möchten, können Sie Folgendes verwenden:
sudo gem cleanup -d
Sie können auch nur einen bestimmten Edelstein bereinigen, indem Sie seinen Namen angeben:
sudo gem cleanup gemname
nur zum Entfernen bestimmter Versionen wie 1.1.9
gem uninstall gemname --version 1.1.9
Wenn Sie immer noch eine Ausnahme bei der Installation von gem haben, wie zum Beispiel:
ungültiges gem: Paket ist beschädigt, Ausnahme bei der Überprüfung: undefinierte Methode `size 'für nil: NilClass (NoMethodError) in /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. Juwel
Sie können es aus dem Cache entfernen:
rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem
Für mehr Details:
http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html
sudo
gem cleanup
verwendet Systembefehle. Installierte Gems sind nur Verzeichnisse im Dateisystem. Wenn Sie stapelweise löschen möchten, verwenden Sie rm -R
.
gem environment
und notieren Sie den Wert von GEM PATHS
cd <your-gem-paths>/gems
ls -1 |grep rjb- |xargs rm -R
Möglicherweise müssen Sie festlegen, GEM_HOME
dass die Bereinigung funktioniert. Sie können überprüfen, welche Pfade für Gemfiles vorhanden sind, indem Sie Folgendes ausführen:
gem env
Beachten Sie den Abschnitt GEM PATHS.
In meinem Fall zum Beispiel mit Edelsteinen, die in meinem Benutzerhaus installiert sind:
export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup