1

У меня есть пакет, позвоните ему foo, у которого есть зависимость, которая в свою очередь зависит от постфикса. Я пытаюсь автоматизировать установку foo, отвечая на вопросы, используя debconf. Требования, предъявляемые к обув является то, что он должен быть в состоянии установить и настроить все, и должен быть установлен с помощьюОтвет на вопрос об установке вопросов с debconf

sudo apt-get install foo 

Так что-то вроде этого не было бы приемлемо:

DEBIAN_FRONTEND=noninteractive apt-get install -y foo 

Кроме того, к сведению что foo устанавливается на новую установку Ubuntu.

Первое, что я попытался было это (в моем preinst сценарий):

echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections 
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections 

Но это не сработало. В процессе установки все еще возникали вопросы.

Тогда я попытался это:

echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections 
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections 
DEBIAN_FRONTEND=noninteractive apt-get install -y postfix 

И это:

echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections 
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections 
DEBIAN_FRONTEND=noninteractive apt-get install -y postfix << _EOT 
y 
EOT 

И тогда я подумал:

Что делать, если Debconf-Utils были введены в Pre-Depends? Это не сработало.

Однако, если я делаю следующее (из командной строки, а затем сценарий preinst), то установка работает без вопросов:

sudo apt-get install debconf-utils 
echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections 
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections 
sudo apt-get install foo 

Однако, это не приемлемо для требований Я было дано.

Так что теперь я застрял. Если кто-то может выбрать, что я делаю неправильно, это было бы очень оценено, поскольку я искал какое-то время, ища ответ.

ответ

1

Кажется странным, вам не нужно устанавливать debconf-utils для установки данных для dpkg.

Если вы хотите, чтобы предотвратить диалоговые окна, попробуйте использовать dpkg варианты:
--force-confdef(force to keep default option without prompting)
--force-confold (force to keep old conf files)

В конце концов, это будет что-то вроде этого:
echo "postfix postfix/mailname string your.hostname.com" | debconf-set-selections
echo "postfix postfix/main_mailer_type string 'Internet Site'" | debconf-set-selections
sudo apt-get install -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" foo
Надеюсь, это поможет. Если нет, сообщите нам здесь.

+0

Я добавил это к моему preinst (используя постфикс вместо foo). Окна диалога все еще появились. – wc250

+0

Я даже попробовал что-то еще в сценарии preinst: 1) исправить модуль debconf 2) используя db_set postfix/mailname your.hostname.com Это тоже не сработало. – wc250

+0

Я вижу.Итак, не могли бы вы объяснить, почему последний пример, поставленный вами под сомнение, не соответствует требованиям? – antonbormotov

 Смежные вопросы

  • Нет связанных вопросов^_^