Что такое dconf, какова его функция и как ее использовать?

Марк Шаттлворт недавно написал в блоге о решении включить библиотеки Qt в выпуск 11.10 с последующим от Джоно Бэкона. Марк утверждает, что самой большой проблемой для интеграции приложений, написанных на Qt, в большую систему Ubuntu является текущая несовместимость Qt с dconf.

Что такое dconf и какую роль он играет в Ubuntu?

91
задан 15 January 2013 в 14:54

3 ответа

Введение

Поскольку другие ответы на этом сайте обсуждают gconf и dconf вместе, я просто сконцентрируюсь на обсуждении таких инструментов командной строки, как gsettings и gui dconf-редактор, которые используются для доступа к базе данных dconf. На официальном сайте GNOME отмечается, что

dconf представляет собой низкоуровневую конфигурационную систему. Ее основной целью является предоставление бэкэнда GSettings на платформах, которые еще не имеют систем хранения конфигураций.

dconf - это простая система конфигурирования, основанная на ключах. Ключи существуют в неструктурированной базе данных (но предполагается, что ключи, которые логически принадлежат друг другу, сгруппированы вместе).

Наличие всех ключей в одном компактном двоичном формате также позволяет избежать интенсивных проблем фрагментации, с которыми в настоящее время сталкивается подход tree-of-directories-of-xml-files.

dconf оптимизирован для чтения. Обычно чтение ключа из dconf включает нулевые системные вызовы и нулевые переключатели контекста. Запись менее оптимизирована -- она проходит по шине и обрабатывается "записывающим устройством" -- службой DBus -- обычным способом.

Использование gsettings для просмотра и изменения настроек

Как только человек узнает gsettings, это может быть так же просто, как и gsettingsdconf-редактор gui -редактор. Опции можно перечислить, введя gsettings man или перейдя на страницу Ubuntu manpages online.

NOTE: Так как в системе каждого человека установлены разные программы, вам, возможно, придётся заменить выбранные мною конкретные пункты на разные при экспериментах, так как я использую XUbuntu XFce с большим количеством программ GNOME.

Чтобы перечислить все доступные схемы, введите

gsettings list-schemas

Чтобы также перечислить все ключи, введите

gsettings list-recursively

Однако, обычно проще указать то, что вы хотите, например,

gsettings list-schemas | grep -i shotwell

Это возвращает длинный список; я сократил его до:

org.yorba.shotwell
org.yorba.shotwell.preferences.ui
org.yorba.shotwell.preferences.slideshow
org.yorba.shotwell.plugins.enable-state
org.yorba.shotwell.printing
org.yorba.shotwell.preferences.editing
org.yorba.shotwell.preferences.files

Теперь, когда вы нашли интересующую вас схему, перечислите ключи с помощью

gsettings list-keys org.yorba.shotwell.preferences.ui

Это возвращает список (опять же, я сократил его):

background-color
display-basic-properties
display-extended-properties
display-photo-ratings
display-photo-tags
display-photo-titles
event-photos-sort-ascending
event-photos-sort-by

Выберите один и посмотрите текущее значение с помощью

gsettings get org.yorba.shotwell.preferences.ui display-photo-tags

Это возвращает значение true, поэтому, чтобы обратить его вспять, используйте

gsettings set org.yorba.shotwell.preferences.ui display-photo-tags false

Это тривиальные примеры, но покажите в основном, как ключи и значения идентифицируются и изменяются с помощью gsettings.

Используя dconf-редактор для изменения настроек

Графическая программа GUI, dconf-редактор устанавливается с пакетом dconf-инструментов нажатием здесь или запуском

sudo apt-get install dconf-tools

Затем запустите его, войдя в терминал или в меню быстрого запуска, dconf-редактор.

Как видно на снимке экрана, с левой стороны можно развернуть все различные схемы и выбрать соответствующую клавишу. Навигация к нужному значению очень проста (в данном случае предпочтения gnome-mplayer). Вы можете установить флажок для активации значения или добавить числовое значение в одно из других полей. Вы также можете выполнять поиск в dconf-редакторе с помощью сочетания клавиш Ctrl+F.

enter image description here

Вы также можете добавить другой лог-файл в logviewer, добавив путь в форме ['/var/log/auth.log', var....'] на скриншоте ниже.

enter image description here

Заключение

Есть много других полезных способов подстройки настроек как с помощью gsettings, так и с помощью dconf-редактора, и они просты в использовании. Стоит просмотреть их, чтобы увидеть, есть ли там опции, которые не входят в предпочтения программ, так как вы можете быть в состоянии настроить вашу программу именно так, как вы хотите. Как недавно показала свобода ямки в этом вопросе

Знание того, как использовать gsettings или dconf-редактор, чрезвычайно ценно. См. также:

99
ответ дан 15 January 2013 в 14:54

dconf не является специфичным для Ubuntu, это технология GNOME, используемая для хранения настроек приложений. Для получения более подробной информации, пожалуйста, прочтите http://live.gnome. org/dconf

11
ответ дан 15 January 2013 в 14:54

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

Сначала они перешли от традиционных конфигураций unix (по одному текстовому файлу для каждого приложения, каждое со своим собственным форматом) к стандартному дереву файлов XML, управляемому gconf. В последнее время, поскольку почти никто не редактировал эти XML-файлы напрямую и возникли проблемы с производительностью чтения и анализа МНОГИХ файлов, они перешли в двоичный формат, перейдя с gconf на dconf.

В отличие от реестра Windows, dconf должен иметь все записи конфигурации в списке, даже если для них установлены значения по умолчанию. Таким образом, нет никаких скрытых записей, вы можете легко их изменить или сбросить до значений по умолчанию.

33
ответ дан 15 January 2013 в 14:54

Другие вопросы по тегам:

Похожие вопросы: