Как сделать 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 на моей машине
Спасибо, ребята за вашу помощь заранее!!!!
Ответы
Ответ 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";
}