Ответ 1
Эта проблема теперь исправлена выпуском Bundler 1.3.2, который теперь используется на Heroku в последнем официальном Ruby buildpack.
несколько дней назад я начал видеть
Would have removed best_in_place (2.0.2)
Would have removed thor (0.16.0)
в моем выпуске развертывания heroku.
Раньше говорилось, что он удалил камень.
Кто-нибудь знает, что с этим?
обновление
heroku обновлен до последней версии ruby 1.9.3, а кеш отправителя очищен.
Эта проблема теперь исправлена выпуском Bundler 1.3.2, который теперь используется на Heroku в последнем официальном Ruby buildpack.
Это ошибка в конфигурации развертывания Heroku. Он записывает файл .bundle/config, который имеет строку:
BUNDLE_DRY_RUN: false
Когда bundler загружает этот глобальный файл конфигурации, он переводит это на: dry_run = > "false" Когда он проверяет этот параметр, он проверяет настройки [: dry_run], который является строкой, которая оценивает значение true.
Вы можете удалить эту строку с помощью некоторых команд оболочки (heroku run bash):
mv -f .bundle/config .bundle/config.orig
sed '/BUNDLE_DRY_RUN/d' < .bundle/config.orig > .bundle/config
И затем запустите
bundle clean
Это ошибка в жгуте bundler - по сути, дополнительная информация об отладке сбрасывается на экран. Он должен быть исправлен в следующем выпуске. Удаление будет из кеша, скорее всего, потому, что доступна более новая версия (последняя best_in_place
равна 2.0.3, Thor
0.17.0). Их можно безопасно игнорировать.
После некоторых исследований, похоже, это не ошибка, а функция!
как вы можете видеть здесь https://github.com/carlhuda/bundler/pull/2237
a dry_run
флаг был внедрен, чтобы действовать так, как если бы камни были удалены, и вместо их удаления он просто печатает, что
фактический код здесь
if Bundler.settings[:dry_run]
Bundler.ui.info "Would have removed #{output}"
else
Bundler.ui.info "Removing #{output}"
FileUtils.rm_rf(gem_dir)
end
как вы можете видеть, если dry_run печатает это. иначе он удаляет драгоценный камень
так как это функция, а не ошибка, она не будет исправлена в ближайшее время. Это оставляет вопрос для герою (который я жду ответа) о том, почему они используют dry_run..
Примечание для тех, кто не знает - это раздувание slug
size
Экспликация @Roman верна.
Если у вас есть собственный buildpack (или вы можете легко его разветкить и использовать его), он может быть исправлен в одной строке
https://github.com/heroku/heroku-buildpack-ruby/blob/master/lib/language_pack/ruby.rb
строка 408-409 из
puts "Cleaning up the bundler cache."
pipe "bundle clean"
к
puts "Cleaning up the bundler cache."
pipe "bundle config --delete dry_run"
pipe "bundle clean"
bundle config --delete удалить конфигурацию (обратите внимание на подчеркивание) и по умолчанию dry-run
- false.