Що таке dconf, яка його функція та як я ним користуюся?


77

Нещодавно Марк Shuttleworth провів блог про рішення про включення бібліотек Qt до випуску 11.10 із подальшим описом Jono Bacon. Марк заявляє, що найбільшим завданням інтеграції програм, написаних на Qt, у більшу систему Ubuntu є поточна несумісність Qt з dconf.

Що таке dconf і яку роль він відіграє в Ubuntu?


Відповіді:


87

Вступ

Як і інші відповіді на цьому сайті , обговорити gconfі dconfразом, я буду просто зосередитися на обговорення інструментів командного рядка , такі як gsettingsі графічний інтерфейс dconf-editor, які використовуються для доступу до dconfбази даних.

На офіційному сайті GNOME зазначається, що

dconf - це система конфігурації низького рівня. Її основна мета полягає у наданні вихідного дня для GSettings на платформах, у яких ще немає систем зберігання конфігурації.

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

Наявність усіх клавіш в єдиному компактному бінарному форматі також дозволяє уникнути інтенсивних проблем з фрагментацією, які виникають в даний час підходом дерева-каталогів-xml-файлів.

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

Використовується gsettingsдля перегляду та зміни налаштувань

Як тільки хтось познайомиться, gsettingsце може бути так само просто, як гуї dconf-editor. Перелічити параметри можна, ввівши man gsettingsабо перейшовши на веб- сторінки Ubuntu в Інтернеті .

ПРИМІТКА. Оскільки в кожній системі встановлені різні програми, вам, можливо, доведеться підміняти конкретні елементи, які я вибираю на різні, коли експериментую самостійно, оскільки я використовую 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-editorвстановлюється з пакетом інструментів dconf , натиснувши тут або запустивши

sudo apt-get install dconf-tools

Потім запустіть його, ввівши в терміналі або в меню швидкого запуску, dconf-editor.

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

введіть тут опис зображення

Ви також можете додати інше скажіння журналу log-viewer, додавши шлях у формі ['/var/log/auth.log', var .... '] на скріншоті нижче.

введіть тут опис зображення

Висновок

Є багато інших корисних способів , які ви можете налаштувати параметри з обома gsettingsі dconf-editorвони прості у використанні. Варто ознайомитись з ними, щоб побачити, чи є там варіанти, які не впадають у налаштування програми, оскільки ви, можливо, зможете налаштувати свою програму саме так, як вам захочеться. Як нещодавно показало fossfreedom у цьому питанні

вміння користуватися gsettingsабо dconf-editorнадзвичайно цінно. Дивитися також:


5
Оскільки програми gsettingsі dconf-editorпрацюють на dconfбазі даних, чому вони не показують однакову інформацію? gsetting12.04 показує значення для схеми com.canonical.Unity.Launcherта ключа, favoritesале dconf-editorнавіть не пропонує, com.canonical.Unityне кажучи вже про повну схему чи ключ.
AH

@AH: гарне запитання. Я запитав це тут: askubuntu.com/q/243409/2355
Flimm

@AH Вибачте, що забув відповісти на ваш коментар: Я не можу коментувати Unity, оскільки я перебуваю на Xubuntu, але Flimm задав окреме запитання, на яке слід отримати хороші відповіді.

4
Але що на землі робить dconf несумісним з Qt, інструментарієм графічного інтерфейсу?
Салман фон Аббас

На RHEL / CentOS використовуйте yum install dconf-editorдля встановлення інструменту GUI.
Марк Едінгтон

26

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

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

На відміну від реєстру Windows, dconf повинен містити всі записи конфігурації, навіть якщо вони встановлені за замовчуванням. Таким чином, прихованих записів немає, їх можна змінити або скинути, а потім легко встановити за замовчуванням.


10

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


Який зв’язок між dconf та gconf?
psusi

10
dconf - це заміна GNOME3 для gconf, яка не підтримується деякий час. Очікується, що dconf також покращить продуктивність порівняно з gconf (актуально для запуску програм).
Жоао Пінто

1
Питання в коментарі psusi вище частково відповідає у відповідях на питання " Чому суперечки щодо dconf та gconf? ". Я впевнений, що psusi це знає, прокоментувавши це питання, але у випадку, якщо хтось інший захоче знати більше, це так.
Firefeather
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.