При установке некоторых пакетов (например, RabbitMQ) на машины Debian / Ubuntu post-install
step по умолчанию запускает службу.
Хотя в большинстве случаев это замечательно, в некоторых случаях (например, когда у вас уже есть служба, работающая на необходимом порту) это не удается, что делает apt-get
полностью потерпеть неудачу.
Есть ли способ сказать apt-get
пропустить все эти post-install
шаги, чтобы он все еще мог правильно установить?
Заметка Это не вопрос вопросов во время установки, даже в интерактивных сеансах эти установки завершаются неудачно, потому что post-install
сбой шага сбой обрабатывается неправильно
Как мне попросить apt-get пропустить какие-либо интерактивные шаги настройки после установки?
export DEBIAN_FRONTEND=noninteractive
apt-get install -y [packagename]
редактировать: да, это для пропуска (ну, автоматизации) постустановки вопросы, правда - извините.
Нет возможности пропустить пост-установку скрипты. Официальная политика Debian заключается в том, чтобы отредактировать сценарий, чтобы он возвращал нетерминальную ошибку, или исправить сценарий. Видеть http://www.debian-administration.org/articles/251
Похоже, вы автоматизируете это для многих серверов, и в этом случае вы, вероятно, захотите создать свою собственную версию пакета и развернуть ее. Другой вариант - отправить электронное письмо сопровождающему пакета и обсудить, должен ли сбой при запуске быть ошибкой терминала для пост-установки (я не верю, что это относится, например, к другим пакетам, таким как apache или lighttpd, но я могу ошибаться .)
Возможно, вы захотите что-нибудь сделать с policy-rc.d. См. Справочную страницу по invoke-rc.d. Вы можете установить политику, чтобы службы не запускались автоматически.
это должно работать
echo exit 101 > /usr/sbin/policy-rc.d
chmod +x /usr/sbin/policy-rc.d
apt-get install <packagename>
rm -f /usr/sbin/policy-rc.d