
У меня есть Ubuntu 12.04.5 LTS, созданный в Azure Cloud. Я создаю его из сборки Jenkins powershell, которая: 1. Создает VM в Azure 2. Выполняет несколько удаленных команд SSH (среди них apt-get dist-upgrade) 3. Создает виртуальный образ из VM
Но сборка зависает на шаге 2. На шаге 2 среди прочих команд я выполняю:
apt-get update
apt-get -q -y dist-upgrade
Цель -y - избежать интерактивных вопросов. Если я запускаю вручную из оболочкиapt-get -q -y dist-upgradeвсе работает нормально, пока дважды не зависает:
Параметр -y должен избегать этой ситуации. Как вы видите, проблемный пакет —waagent, то есть Microsoft Azure Linux Agent, и он устанавливается по умолчанию после завершения шага 1
Мой вопрос:Как мне избежать этих интерактивных вопросов?(либо ответ «Да», либо «Нет», либо отказ от обновления этого пакета или что-то еще)
решение1
Может быть, вы также можете попробовать:
DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes
решение2
Похоже, что конфликты с файлами конфигурации довольно распространены в apt-get (dkpg). Я решаю проблему с помощью:
apt-get -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
Варианты означают:
- --force-confdef: Попросите dpkg принять решение самостоятельно, когда это возможно, и выдать подсказку в противном случае...
- --force-confold: Не изменяйте текущий файл конфигурации...