J'ai plusieurs versions d'une gemme Ruby:
$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)
Comment supprimer les anciennes versions mais conserver les plus récentes?
J'ai plusieurs versions d'une gemme Ruby:
$ gem list
rjb (1.3.4, 1.3.3, 1.1.9)
Comment supprimer les anciennes versions mais conserver les plus récentes?
Réponses:
# 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'
Pour supprimer les anciennes versions de toutes les gemmes installées, les 2 commandes suivantes sont utiles:
gem cleanup --dryrun
La commande ci-dessus affichera un aperçu des gemmes qui seront supprimées.
gem cleanup
La commande ci-dessus les supprimera.
Essayez quelque chose comme gem uninstall rjb --version 1.3.4
.
Manière de nettoyer toutes les anciennes versions de gemmes.
sudo gem cleanup
Si vous voulez juste voir une liste de ce qui serait supprimé, vous pouvez utiliser:
sudo gem cleanup -d
Vous pouvez également nettoyer uniquement une gemme spécifique en spécifiant son nom:
sudo gem cleanup gemname
pour supprimer une version spécifique comme 1.1.9 uniquement
gem uninstall gemname --version 1.1.9
Si vous rencontrez toujours une exception pour installer gem, comme:
gem non valide: le package est corrompu, exception lors de la vérification: méthode non définie `taille 'pour nil: NilClass (NoMethodError) dans /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2. gemme
le, vous pouvez le supprimer du cache:
rm /home/rails/.rvm/gems/ruby-2.1.1@project/cache/nokogiri-1.6.6.2.gem
Pour plus de détails:
http://blog.grepruby.com/2015/04/way-to-clean-up-gem-or-remove-old.html
sudo
gem cleanup
utilise des commandes système. Les gemmes installées ne sont que des répertoires du système de fichiers. Si vous souhaitez supprimer par lots, utilisez rm -R
.
gem environment
et notez la valeur de GEM PATHS
cd <your-gem-paths>/gems
ls -1 |grep rjb- |xargs rm -R
Vous devrez peut-être définir GEM_HOME
le nettoyage pour qu'il fonctionne. Vous pouvez vérifier quels chemins existent pour les gemfiles en exécutant:
gem env
Prenez note de la section GEM PATHS.
Dans mon cas, par exemple, avec des gemmes installées dans ma maison d'utilisateur:
export GEM_HOME="~/.gem/ruby/2.4.0"
gem cleanup