Как очистить старые жемчужины GitHub-source в компоновщике? - PullRequest
1 голос
/ 20 сентября 2011

Я работаю над гемом и настроил свой Gemfile (Rails 3.0.9) для загрузки последней копии с github.После нескольких обновлений у меня теперь есть куча этих разных версий, установленных через bundler, например:

/Users/jseidel/.rvm/gems/ruby-1.9.2-p180/gems/test_gem-0.0.1/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-073530fbb227/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-19ca852f2dbc/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-1c54d091fa69/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-2a792620be0e/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-3dc70da90fcb/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-4bb5ca8c3fb5/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-6587eb65715f/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-6e58646ce11d/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-725511907cc1/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-7bc40a7293aa/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-7fceecaf1539/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-9ca2049c33f0/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-b63e6a695990/lib/test_gem.rb
/Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test_gem-be3cfbdd01a2/lib/test_gem.rb

bundle exec В списке драгоценных камней показана только самая последняя версия:

test_gem (0.3.2)

bundle execgem uninstall test_gem -v0.1.0 выдает ошибку:

ERROR:  While executing gem ... (Gem::InstallError)
    cannot uninstall, check `gem list -d test_gem`

список драгоценных камней -d test_gem ничего не показывает

bundle exec список драгоценных камней -d test_gem действительно показывает мой драгоценный камень, но без информации о версии

Полагаю, я мог бы зайти и вручную удалить эти записи, но я думаю, что есть лучший способ справиться с этим.

Ответы [ 3 ]

3 голосов
/ 27 сентября 2011

Позвольте мне показать, как на примере mysql2:

$ gem list mysql2

mysql2 (0.3.7, 0.3.6, 0.3.2, 0.2.7, 0.2.6)

Сначала мы можем запустить очистку драгоценных камней в режиме пробного запуска, чтобы посмотреть, что будет удалено:

$ gem cleanup -d

Очистка установленных камней…

...

Режим пробного запуска: удаление mysql2-0.2.6

Режим пробного запуска: удаление mysql2-0.2.7

Режим пробного запуска: удаление mysql2-0.3.2

Режим пробного запуска: будет удалено mysql2-0.3.6

...

Очистка завершена

Как только мы будем довольны результатамимы можем запустить очистку гемов, чтобы фактически удалить старые драгоценные камни:

$ gem cleanup -v

Если вы не видите test_gem в gem list -d test_gem* (обратите внимание * знак), просто попробуйте gem cleanup -d, возможно, это будетпоявляются в этом списке

, иначе - вручную - это лучший выбор!

1 голос
/ 20 сентября 2011
(sudo) rm -rf /Users/jseidel/.rvm/gems/ruby-1.9.2-p180@rails3/bundler/gems/test*
0 голосов
/ 02 октября 2014

Bundler предоставляет способ сделать это, если вам необходимо:

bundle clean --force

Это не рекомендуется, поскольку гемы могут использоваться в других проектах.

Другие варианты - использовать наборы гемов RVM, в этом случае вы можете очистить свой набор с помощью:

rvm gemset empty
...