
Если я пишу сценарий обслуживания пакета Debian (например, сценарий предустановки) для создаваемого мной пакета, как мне заставить сценарий определять, должен ли он работать в неинтерактивном режиме (например, apt-get install
был ли вызван с помощью -y
и т. п.)?
решение1
Если вашим скриптам поддержки необходимо взаимодействовать с пользователем, запускающим установку, рекомендуемым способом является использование debconf
; см.Условная установка файлов и каталогов в пакетах Debianдля указателей. Это может показаться сложным, но это дает ряд преимуществ — не только обрабатывает debconf
неинтерактивные настройки (с явным DEBIAN_FRONTEND=noninteractive
вызовом или из-за отсутствия возможности взаимодействия с пользователем), но и поддерживает различные интерфейсы, а управляемые параметры debconf
могут быть заданы до установки (с помощью «предварительного заполнения»). Это может быть неактуально в вашем случае, но debconf
также поддерживает подсказки на разных языках.
Обратите внимание, что apt-get
флаги отделены от интерактивности скрипта сопровождающего; см.Является ли DEBIAN_FRONTEND=noninteractive избыточным при использовании apt-get -yqq?