Назад | Перейти на главную страницу

Автоматизируйте установку proftpd-basic в ubuntu с помощью apt-get

Я пытаюсь создать сценарий оболочки для автоматизации установки нескольких пакетов на сервер Ubuntu 10.04, и у меня проблемы с proftpd-basic.

Я использую командную строку

apt-get -qy install proftpd-basic >/tmp/install.log

Для большинства пакетов этот подход будет работать нормально, однако proftpd-basic, похоже, требует некоторого взаимодействия (он спрашивает, выполнять ли установку inetd или автономную).

Могу ли я каким-то образом предварительно выбрать эту опцию в командной строке, так как я не хочу, чтобы этот вопрос беспокоил пользователя? - Для информации, если это важно, я хочу выбрать вариант «автономный».

Редактировать:

Интерактивная часть процесса не просто требует простых ответов типа «да / нет», она требует, чтобы я использовал клавиши со стрелками для перехода к нужному мне параметру, требуя, чтобы я нажимал клавишу ввода, чтобы сделать выбор. Это может иметь какое-то отношение к решению этой проблемы.

Вы можете предварительно задать ответы, чтобы debconf увидел, что вы уже ответили на вопрос, и не стал задавать его снова.

Вам понадобятся инструменты из debconf-utils пакет:

sudo apt-get install debconf-utils

Установите свою программу и один раз ответьте на вопросы вручную. Затем вы можете спросить debconf, что он хранит в своей базе данных:

debconf-get-selections | grep proftpd-basic

Эта информация может быть введена в debconf-set-selections (либо по конвейеру, либо при чтении из файла).

Ответ Warner более кроссплатформенный (debconf - это технология, основанная только на Debian и производных), но не всегда работает между версиями, если вопросы меняются; или в случае, если у вас есть вопросы по debconf, которые задаются, только если у вас установлены другие пакеты.

Для подобных вещей существует множество различных решений. Я предпочитаю сценарии оболочки, другие могут предпочесть другие методы.

Для взаимодействия с вещами, требующими ввода и не имеющими флагов для указания ответа, вы можете перенаправить ввод. Я бы прочитал apt-get справочная страница прежде чем применять этот подход, поскольку он может иметь встроенную поддержку того, что вы пытаетесь указать. Например:

apt-get -qy install proftpd-basic <<**
RESPONSES GO HERE
**

Вы также можете использовать что-то вроде ожидать. Некоторые клиенты не всегда обрабатывают перенаправление ввода без дополнительных усилий.

Для ведения журнала вы можете использовать тройник и перенаправить STDERR и STDOUT при запуске основного скрипта. Пример:

bash -x script.sh 2>&1 | tee script.log

Мне часто нравится запускать bash с set -x также. Для сценариев сборки я предпочитаю подробность более чистому выводу.