Если вы используете Bundler 1.1 или более позднюю версию, вы можете использовать bundle clean
, как вы могли себе представить. Это избыточно, если вы используете bundle install --path
(Bundler управляет местоположением, указанным с помощью --path, поэтому берет на себя ответственность за удаление устаревших драгоценных камней), но если вы использовали Bundler для установки драгоценных камней в качестве системных драгоценных камней, тогда bundle clean --force
будут удалены любые системные драгоценные камни, которые не требуется для вашего Gemfile. Совершенно очевидное предостережение: не делайте этого, если у вас есть другие приложения, которые полагаются на системные драгоценные камни, которых нет в вашем Gemfile!
Пэт Шонесси (Pat Shaughnessy) дал хорошее описание bundle clean
и других нововведений в сборщике 1.1 .
bundle clean --force
это не касается ваших глобальных драгоценных камней, а только тех, которые находятся в вашем текущем наборе. Такbundle clean --force
дает тот же результат, что и и быстрее, чемrvm gemset empty
следуетbundle install
.Если вы используете RVM, вы можете использовать его
rvm gemset empty
для текущего набора гемов - эта команда удалит все драгоценные камни, установленные в текущий набор гемов (сам набор гемов останется на месте). Затем запуститеbundle install
, чтобы установить актуальные версии гемов. Также убедитесь, что вы не удалили такие общие драгоценные камни, как rake, bundler и т. Д. Во времяrvm gemset empty
(если это так, установите их вручную с помощьюgem install
доbundle install
).источник
Если вы используете RVM, вы можете устанавливать свои драгоценные камни в наборы . Таким образом, когда вы хотите выполнить полную очистку, вы можете просто удалить гемсет, который, в свою очередь, удалит все установленные в нем драгоценные камни. Другой вариант - просто удалить неиспользуемые драгоценные камни и повторно запустить
bundle install
команду.Поскольку сборщик предназначен для управления версиями гемов для каждого проекта, он не предоставляет
bundle clean
команду. Это будет означать возможность удаления драгоценных камней, связанных с другими проектами, что нежелательно. Это означает, что сборщик, вероятно, не тот инструмент для управления каталогом гемов. Моя личная рекомендация - использовать гемсеты RVM для изолирования ваших драгоценных камней в определенных проектах или рубиновых версиях.источник
Честно говоря, у меня были проблемы с циклическими зависимостями сборщика, и лучший способ - это сделать
rm -rf .bundle
. Избавьтесь от головной боли и просто воспользуйтесь молотком.источник
rvm implode --force
а затем переустановите rvmЯ полагаю, вы устанавливаете драгоценные камни в
vendor/bundle
? Если да, то почему бы просто не удалить все драгоценные камни и не провести чисткуbundle install
?источник
В поисках ответа на тот же вопрос я наткнулся на gem_unused .
Вы также можете прочитать эту статью: http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
Исходный код доступен на GitHub: https://github.com/ apolzon / gem_unused
источник
Просто удалите устаревшие драгоценные камни из своего Gemfile. Если вы говорите о Heroku (вы не упомянули об этом), то слаг компилируется для каждой новой версии, просто используя текущее содержимое этого файла.
источник
Просто выполните, чтобы очистить драгоценные камни от устаревших и удалить предупреждения о печати после сборки.
источник