Мне нравится использовать команду «Knife cloudstack server create ...» для создания новой виртуальной машины. Мой шаблон начальной загрузки начинается с «apt-get update» и «apt-get -y upgrade».
Затем обновление останавливается:
10.190.113.11 Configuration file `/etc/nscd.conf'
10.190.113.11 ==> Modified (by you or by a script) since installation.
10.190.113.11 ==> Package distributor has shipped an updated version.
10.190.113.11 What would you like to do about it ? Your options are:
10.190.113.11 Y or I : install the package maintainer's version
10.190.113.11 N or O : keep your currently-installed version
10.190.113.11 D : show the differences between the versions
10.190.113.11 Z : start a shell to examine the situation
10.190.113.11 The default action is to keep your current version.
10.190.113.11 *** nscd.conf (Y/I/N/O/D/Z) [default=N] ?
Итак, действительно есть две проблемы:
Во-первых, могу ли я заставить apt-get что-то делать по умолчанию? Очевидно, нет возможности дать ответ.
Во-вторых, я даже не знаю, каким должен быть правильный ответ на вопрос. Конфигурационный файл, который он заменяет, взят из шаблона. Я еще не посмотрел, что вообще делает "nscd". (Предположительно "Y" - правильный ответ, но исследования, проведенные на момент постановки вопроса, устрашают.)
Вы можете передавать аргументы, чтобы не получать подсказки. У меня это работает;
apt-get update
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
apt-get --yes --force-yes -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" dist-upgrade
--force-confold
(мой выбор) сделаю это "Что вы хотите сделать с измененным файлом конфигурации" вопросы по умолчанию N
(сохраните текущую установленную версию)
--force-confold: do not modify the current configuration file, the new version is installed with a .dpkg-dist suffix. With this option alone, even configuration files that you have not modified are left untouched. You need to combine it with --force-confdef to let dpkg overwrite configuration files that you have not modified.
--force-confnew: always install the new version of the configuration file, the current version is kept in a file with the .dpkg-old suffix.
--force-confdef: ask dpkg to decide alone when it can and prompt otherwise. This is the default behavior of dpkg and this option is mainly useful in combination with --force-confold.
--force-confmiss: ask dpkg to install the configuration file if it’s currently missing (for example because you have removed the file by mistake).
Предупреждение - некоторые измененные файлы конфигурации могут вывести из строя вашу систему, если будут сохранены и несовместимы с обновленной версией пакета. Пожалуйста, проверьте это перед развертыванием в решениях автоматизации.
Если вы совершенно не хотите отвечать на какие-либо интерактивные вопросы, установите DEBIAN_FRONTEND
переменная переднего конца для noninteractive
.
Это может быть так же просто, как DEBIAN_FRONTEND=noninteractive apt-get upgrade
.
Вы не получите никаких сообщений, и будут выбраны значения по умолчанию. В большинстве случаев это означает, что ваши файлы конфигурации не будут изменены, и вы останетесь с файлами, названными как *.dpkg-new
для всех мест, где файл конфигурации был нетронутым. Затем вы можете вручную разрешить изменения или передать свою локальную конфигурацию в систему с помощью системы управления конфигурацией или чего-то еще.
Во-вторых, я даже не знаю, каким должен быть правильный ответ на вопрос
Удар по D Клавиша отобразит разницу, которую вы затем сможете проверить. Если вы уверены, что никогда не меняли этот файл вручную, выберите Y заменить его, вероятно, безопасно (вы проверили обновление резервных копий) ПРАВО!!). Выбор N просто сохраняет старый файл, который также безопасен в 95% случаев, если в пакете не были серьезные изменения, которые обычно рассматриваются в журнале изменений / примечаниях к выпуску, которые вы также прочитали перед запуском команды upgrade / dist-upgrade.
После этого просто сначала попробуйте команду в своей тестовой среде. Посмотрите, не работает ли что-нибудь. Если вы действительно не уверены, получите различие и прочтите документацию к пакету и исследованиям.