Рельсы

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

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

Ответ 1

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

Пат Шонесси имеет хорошее описание bundle clean и другие новые дополнения в bundler 1.1.

Ответ 2

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

Ответ 3

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

Так как связующее средство предназначено для использования в качестве средства управления версиями для проекта, оно не предоставляет команду bundle clean. Это будет означать возможность удаления драгоценных камней, связанных с другими проектами, что было бы нежелательно. Это означает, что связующее устройство, вероятно, является неправильным инструментом для управления каталогом драгоценных камней. Мои личные рекомендации состоят в том, чтобы использовать RVM gemsets для песочницы ваших драгоценных камней в определенных проектах или рубиновых версиях.

Ответ 4

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

Ответ 5

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

Ответ 7

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

Ответ 8

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

bundle clean --force