Меню
Главная
Случайная статья
Настройки
|
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 года.
Ссылки
|
|