debconf (программный пакет) — Википедия
debconf — утилита для выполнения системных задач по настройке в unix-подобных операционных системах. Она разработана для дистрибутива Debian GNU/Linux и тесно интегрирована с системой управления пакетов Debian dpkg.
Пока пакеты устанавливаются, debconf задаёт пользователю вопросы, которые определяют содержание системных конфигурационных файлов, ассоциированных с этим пакетом. После того, как пакет установлен, можно вернуться и изменить настройку пакета командой dpkg-reconfigure
или другой программой, такой как Synaptic.
Дизайн debconf позволяет добавлять модули оболочки (front-ends) для ответов на вопросы настройки. В качестве примеров таких оболочек можно привести dialog, одну для readline, одну, использующую текстовый редактор, одну для KDE, одну для GNOME[1], a Python front-end API и т. д.. Оригинальная реализация debconf написана на Perl. В ходе разработки Debian-Installer, была разработана новая реализация на C, которая была названа cdebconf. Новая реализация в настоящее время используется только в инсталляторе, но должна в конечном счёте полностью заменить оригинальную. Обе реализации используют один и тот же протокол для связи между debconf front-end и кодом клиента («confmodule»); это простой строко-ориентированный протокол, подобный общим протоколам Интернета.
Debconf физически не настраивает пакеты, но задаёт пользователю некоторые вопросы по настройке, хранящиеся в файле .templates, под руководством сценариев мейнтейнера пакета (.config, .postinst, etc.). Обычно, сценарий .config используется чтобы задавать вопросы, в то время как .postinst применяет настроечные изменения к распакованному пакету в соответствии с ответами; как бы то ни было, это может варьироваться в зависимости от технических требований. Ответы пользователя на вопросы, задаваемые debconf, сохраняются (кэшируются) в базе данных debconf.
Пример использования
[править | править код]Пакет tzdata предоставляет настройку часового пояса. При установке пакета пользователю с помощью debconf скрипта будет предложено выбрать свой континент и город. Чтобы перенастроить можно выполнить команду sudo dpkg-reconfigure tzdata
и будет показан такой диалог:
После сохраненния настроек их можно будет посмотреть с помощью команды debconf-show
:
$ debconf-show tzdata tzdata/Zones/Pacific: tzdata/Zones/Asia: tzdata/Zones/Arctic: * tzdata/Zones/Europe: Minsk tzdata/Zones/America: tzdata/Zones/Antarctica: * tzdata/Zones/Etc: UTC tzdata/Zones/Africa: tzdata/Zones/Atlantic: tzdata/Zones/US: tzdata/Zones/Australia: * tzdata/Areas: Europe tzdata/Zones/Indian:
Чтобы найти ключи выбора можно ещё использовать команду debconf-get-selections | grep tzdata
. Но она показывает ключи уже после установки пакета.
Изначально все ключи выбора и их переводы хранятся в установочном deb файле tzdata.deb/control.tar.gz/./templates
.
Изначальную конфигурацию можно провести перед установкой пакета. Это необходимо для автоматизированных скриптов которые выполняются без участия человека в неинтерактивном режиме. Например при установке MySQL можно задать имя пользователя и пароль заранее:
sudo echo 'mysql-server mysql-server/root_password password your_password' | debconf-set-selections sudo echo 'mysql-server mysql-server/root_password_again password your_password' | debconf-set-selections
тоже самое можно сделать используя многострочную команду:
cat << EOF | sudo debconf-set-selections mysql-server mysql-server/root_password password your_password mysql-server mysql-server/root_password_again password your_password EOF
Проверить можно командой:
$ sudo debconf-get-selections | grep ^mysql mysql-server mysql-server/root_password_again password your_password mysql-server mysql-server/root_password password your_password
После этого можно установить пакет с опцией подтверждения -y
sudo apt -y install mysql-server
Примечания
[править | править код]- ↑ The GNOME Journal: Simplified Package Management in Ubuntu Hoary . Дата обращения: 17 сентября 2010. Архивировано 17 июля 2011 года.
Ссылки
[править | править код]- Исходный код
- debconf на Launchpad
- debconf . kitenet.net. Дата обращения: 25 мая 2017. — сайт мейнтейнера
- Manpage of DEBCONF . www.fifi.org. Дата обращения: 25 мая 2017.
- The Debconf Programmer's Tutorial . www.fifi.org. Дата обращения: 25 мая 2017.
Для улучшения этой статьи желательно:
|