Подтвердить что ты не робот

Как сделать apt-get accept Новые файлы конфигурации в автоматической установке debian из Repo

Я пишу script для автоматической установки пакета, который находится в нашем репо, это программный пакет с одной из отмеченных конфигурацией Debians. Есть ли какой-либо параметр, который я могу передать apt-get/aptitude, чтобы он принял новые файлы Config.

В принципе мне нужен эквивалент apt/aptitude для dpkg -force-confnew

Мне нужно ответить на следующий вопрос, поставленный во время установки apt-get с помощью Y


Конфигурационный файл `/opt/application/conf/XXX.conf '

== > Файл в системе, созданной вами или script.

== > Файл также в пакете, предоставленном сопровождающим пакета.

Чем вы хотели бы заняться этим? Ваши варианты:

Y or I  : install the package maintainer version

N or O  : keep your currently-installed version

  D     : show the differences between the versions

  Z     : background this process to examine the 

Действие по умолчанию - сохранить текущую версию.


Дополнительная информация:

Кроме того, я передаю пароль sudo в трубе, чтобы выполнить команду

echo "mysudopass" | sudo -S apt-get mypackage

Это указывает на ошибку при установке, когда установка находится в фазе Config Interactive.

Я на Ubuntu 10.04 apt версия: apt 0.7.25.3

Почему я cannotuse dpkg: эти debians должны быть установлены из Repo, и у меня нет локальных debians на моей машине

Спасибо, ребята за вашу помощь заранее!!!!

4b9b3361

Ответ 1

Я попробовал предложения в других ответах и ​​обнаружил, что этого было недостаточно при попытке установить пакет localepurge.

После использования настроек debconf-set, чтобы установить то, что мне нужно, мне пришлось использовать следующее:

DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge

Только с переменной среды DEBIAN_FRONTEND, установленной на неинтерактивную, я могу заставить localepurge делать то, что я просил. Это может относиться к другим пакетам.

Конечно, с помощью script вы можете экспортировать эту переменную, если хотите, но помните, что она может взаимодействовать с другими пакетами. Например:

#!/bin/sh
export DEBIAN_FRONTEND=noninteractive
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar

Где -y говорит apt-get перестать задавать вопросы (см. справочная страница).

Ответ 2

Я думаю, что команда командной строки apt-get, которую вы ищете,

apt-get -o Dpkg::Options::="--force-confnew" install your-package

Что касается вашей проблемы sudo -S, возможно, попробуйте добавить некоторые пробелы вокруг '|' персонаж. Нет, вопрос Как передать пароль su/sudo/ssh без переопределения TTY? может оказаться полезным.

Ответ 3

Вы также можете настроить apt для этого, создав /etc/apt/apt.conf.d/local и добавив:

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}