Per Make apt-get (или aptitude) запускается с ключом -y, но не запрашивает замену файлов конфигурации?
Я сделал следующее:
ec2run ami-3c994355 --region us-east-1 -n 1 -t m1.large -z us-east-1d
На машине:
sudo apt-get update
sudo apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Я все еще получаю подсказку, спрашивающую меня, какой файл конфигурации я хочу использовать. Это строки перед подсказкой:
Setting up grub-pc (1.99-21ubuntu3.1) ...
тогда:
┌───────────────────────────────────────────────────────┤ Configuring grub-pc ├───────────────────────────────────────────────────────┐
│ A new version of configuration file /etc/default/grub is available, but the version installed currently has been locally modified. │
│ │
│ What do you want to do about modified configuration file grub? │
│ │
│ install the package maintainer's version │
grub2
apt
amazon-ec2
fratrik
источник
источник
Ответы:
/etc/default/grub
Файл создается в пакете установки времени, которое необходимо , потому что она интегрируется с DebConf. Это означает, что он не может рассматриваться как файл конфигурации dpkg, и поэтому обработка файла конфигурации dpkg не знает об этом.Вместо этого он использует
ucf
более сложный инструмент Debian для обработки конфигурации. Это, к сожалению, не понимает параметров dpkg, поэтому настройкаDpkg::Options::="--force-confdef"
не поможет. Тем не менее, у него есть свой собственный способ обновления без подсказок через переменные средыUCF_FORCE_CONFFNEW
иUCF_FORCE_CONFFOLD
.ucf
используетсяdebconf
для запроса, поэтому установка интерфейса debconfnoninteractive
также отключит сообщение. Если вы действительно хотите неинтерактивные обновления, вам все равно придется это делать - произвольные пакеты могут задавать вопросы debconf (хотя, как правило, этого не происходит во время обновлений).Вы можете установить интерфейс debconf как одноразовый, добавив его
DEBIAN_FRONTEND=noninteractive
в свою среду, или можете установить его навсегда, запустивdpkg-reconfigure debconf
и выбрав неинтерактивный интерфейс. Если вы используете неинтерактивный интерфейс, вы получите ответ по умолчанию на любые вопросы, которые может задать пакет.Для
ucf
по умолчанию ответ «сохранить существующий файл».Таким образом, полная команда для действительно 100% гарантированного - обновления без подсказок будет.
Ответ: Технически возможно, чтобы пакеты использовали другой метод запроса, чем debconf, но это противоречит политике Debian. Если вы столкнетесь с таким пакетом, сообщите об ошибке.
источник
Исходя из ответа RAOF и потратив бесчисленное количество часов на поиск в Интернете, чтобы иметь возможность выполнить полностью автономное обновление и dist-upgrade в Ubuntu 12.04, я пришел к этому благодаря тому факту, что этот пост ( https: // bugs .launchpad.net / ubuntu / + source / grub / + bug / 239674 / comments / 1 ) указывает, что grub придерживается UCF, а не Dpkg Options, если вы хотите использовать grub menu.lst для сопровождающих пакетов вместо любого возможного локального меню .lst правки.
я оставил опции принудительного открытия Dpkg для других пакетов, которые не являются grub.
источник
unattended-upgrades
и отредактировали некоторую конфигурацию grub: как вы устанавливаетеUCF_FORCE_CONFFNEW
в этом контексте? Или вам нужно занести в черный список grub от обновления?Предыдущие решения не будут работать с 16.04. Это работает из этого ответа на переполнение стека :
источник
Последние несколько дней я обсуждаю ту же проблему с Ubuntu 18.04. При запуске нового экземпляра EC2 (в частности, ami-00035f41c82244dab) я запускаю сценарий автоматической инициализации (через конфигурацию пользовательских данных, предоставленную во время инициализации), одним из первых шагов которой является запуск apt update / upgrade.
Сценарий блокируется, когда пользователю предлагается изменить измененные файлы GRUB - сначала / etc / default / grub, а затем /boot/grub/menu.lst. Так как он работает в автоматическом режиме, когда предоставляется как пользовательские данные, процесс останавливается и никогда не восстанавливается.
Похоже, что из-за большого количества поисков в Google это была давняя проблема GRUB в той или иной форме, с внесением исправлений, а затем с последующим повторным регрессом, насколько я могу судить.
В конечном счете, единственным способом, который мне удалось успешно применить, является следующий уродливый хак в моем скрипте инициализации. Надеюсь, что это может вывести кого-то еще из-под контроля, хотя!
Я могу только предположить, что проблема, с которой я столкнулся, весьма специфична для доступной в настоящее время версии Ubuntu 18.04 AMI, и любая обновленная версия, которая включает в себя более новые пакеты GRUB, может не подвергаться той же проблеме. В частности, характер изменений
/etc/default/grub
вряд ли будет применим к более новым версиям AMI. В любом случае, просто добавлю это.источник
sudo DEBIAN_FRONTEND=noninteractive apt-get -y -o DPkg::options::="--force-confdef" -o DPkg::options::="--force-confold" -qq --force-yes upgrade