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

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

В основном мне нужен apt / aptitude эквивалент dpkg --force-confnew

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


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

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

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

Что бы вы хотели с этим сделать? Возможны следующие варианты:

Y or I  : install the package maintainer's 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

Почему я не могу использовать dpkg: эти debian должны быть установлены из Repo, и у меня нет локальных debian на моем компьютере

Заранее спасибо, ребята за помощь !!!!


person RamNat    schedule 17.10.2011    source источник


Ответы (3)


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

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

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

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

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

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

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

person Ken Sharp    schedule 21.01.2014

Я думаю, что вам нужна командная строка apt-get

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

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

person pwan    schedule 07.11.2011
comment
Мне тоже пришлось добавить -у. apt-get -o Dpkg :: Options :: = - force-confnew install -y ваш-пакет - person flapjack; 02.04.2016

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

Dpkg::Options {
   "--force-confdef";
   "--force-confold";
}
person Omar Ali    schedule 02.05.2017