комплект рельсов - PullRequest
       3

комплект рельсов

84 голосов
/ 26 октября 2011

После обновления комплекта у вас будут некоторые драгоценные камни, которые могут быть устаревшими - так как была установлена ​​более новая версия этого драгоценного камня.Под исполняемым файлом bundle такой команды нет, т. Е. bundle clean.Как избавиться от этих устаревших драгоценных камней?

Это попытка уменьшить размер пули в моем приложении rails.

Ответы [ 7 ]

126 голосов
/ 17 апреля 2012

Если вы используете Bundler 1.1 или более позднюю версию, вы можете использовать bundle clean, как вы и предполагали.Это избыточно, если вы используете bundle install --path (Bundler управляет местоположением, указанным вами в --path, поэтому берет на себя ответственность за удаление устаревших драгоценных камней), но если вы использовали Bundler для установки драгоценных камней в качестве системных драгоценных камней, то bundle clean --forceудалит все системные драгоценные камни, не требуемые вашим Gemfile.Слепо очевидное предостережение: не делайте этого, если у вас есть другие приложения, использующие системные гемы, которых нет в вашем Gemfile!

У Пат Шонесси хорошее описание bundle clean и других новых дополненийв бандлере 1.1 .

36 голосов
/ 26 января 2013

Если вы используете RVM, вы можете использовать rvm gemset empty для текущего набора камней - эта команда удалит все драгоценные камни, установленные в текущем наборе драгоценных камней (сам набор будет оставаться на месте).Затем запустите bundle install, чтобы установить актуальные версии гемов.Также убедитесь, что вы не удаляете такие общие гемы как rake, bundler и т. Д. Во время rvm gemset empty (если это так, то установите их вручную через gem install до bundle install).

21 голосов
/ 26 октября 2011

Если вы используете RVM, вы можете установить свои драгоценные камни в gemsets . Таким образом, когда вы хотите выполнить полную очистку, вы можете просто удалить набор гемов, который, в свою очередь, удалит все установленные в нем гемы. Другой вариант - просто удалить неиспользованные самоцветы и повторно запустить команду bundle install.

Поскольку bundler предназначен для использования в качестве инструмента управления версиями для каждого проекта, он не предоставляет команду bundle clean. Это будет означать возможность удаления драгоценных камней, связанных с другими проектами, что нежелательно. Это означает, что bundler, вероятно, не тот инструмент, который используется для управления вашим каталогом gem. Моя личная рекомендация - использовать наборы гемов RVM для песочницы в некоторых проектах или версиях ruby.

13 голосов
/ 12 декабря 2012

Честно говоря, у меня были проблемы с циклическими зависимостями в компоновщике, и лучший путь - это rm -rf .bundle. Избавьте себя от головной боли и просто используйте молоток.

1 голос
/ 08 февраля 2013

При поиске ответа на тот же вопрос, с которым я столкнулся gem_unused .
Вы также можете прочитать эту статью: http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
Исходный код доступен на GitHub: https://github.com/apolzon/gem_unused

1 голос
/ 26 октября 2011

Я полагаю, вы устанавливаете драгоценные камни в vendor/bundle? Если так, то почему бы просто не удалить все драгоценные камни и сделать чистую bundle install?

0 голосов
/ 26 октября 2011

Просто удалите устаревшие драгоценные камни из вашего Gemfile. Если вы говорите о Heroku (вы не упомянули об этом), то слаг компилируется в каждом новом выпуске, просто используя текущее содержимое этого файла.

...