¿Qué es dconf, cuál es su función y cómo lo uso?


78

Mark Shuttleworth escribió recientemente en su blog sobre la decisión de incluir las bibliotecas Qt en la versión 11.10, con un seguimiento de Jono Bacon. Mark afirma que el mayor desafío para integrar aplicaciones escritas en Qt en el sistema Ubuntu más grande es la actual incompatibilidad de Qt con dconf.

¿Qué es dconf y cuál es el papel que juega en Ubuntu?


Respuestas:


88

Introducción

Como otras respuestas en este sitio discuten gconfy dconfjuntas, me concentraré en discutir herramientas de línea de comandos como gsettingsy la interfaz gráfica de usuario dconf-editorque se utilizan para acceder a la dconfbase de datos.

En el sitio oficial de GNOME se observa que

dconf es un sistema de configuración de bajo nivel. Su objetivo principal es proporcionar un back-end a GSettings en plataformas que aún no tienen sistemas de almacenamiento de configuración.

dconf es un sistema de configuración simple basado en claves. Las claves existen en una base de datos no estructurada (pero se pretende que las claves que lógicamente pertenecen juntas se agrupen).

Tener todas las claves en un único formato binario compacto también evita los problemas de fragmentación intensa que actualmente experimenta el enfoque del árbol de directorios de archivos xml.

dconf está optimizado para lecturas. Por lo general, leer una clave de dconf implica cero llamadas al sistema y cero cambios de contexto. Las escrituras están menos optimizadas: atraviesan el bus y son manejadas por un "escritor", un servicio DBus, de la manera habitual.

Utilizando gsettingspara ver y cambiar la configuración

Una vez que uno se entera gsettings, puede ser tan fácil como la interfaz gráfica de usuario dconf-editor. Las opciones se pueden enumerar ingresando man gsettingso yendo a las páginas de manual de Ubuntu en línea .

NOTA: Como el sistema de todos tiene diferentes programas instalados, es posible que tenga que sustituir los elementos específicos que elijo por otros diferentes cuando experimente usted mismo, ya que estoy usando XUbuntu XFce con muchos programas de GNOME.

Para enumerar todos los esquemas disponibles, ingrese

gsettings list-schemas

Para incluir también todas las claves, ingrese

gsettings list-recursively

Sin embargo , por lo general, es más fácil especificar con qué desea, por ejemplo,

gsettings list-schemas | grep -i shotwell

Esto devuelve una larga lista; Lo he acortado a:

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

Ahora, cuando haya encontrado el esquema que le interesa, enumere las claves con

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

Esto devuelve una lista (nuevamente la he acortado):

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

Elija uno y vea cuál es el valor actual con

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

Esto devuelve un valor de verdadero, así que para revertirlo, use

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

Estos son ejemplos triviales , pero muestran básicamente cómo se identifican y cambian las claves y los valores gsettings.

Usando dconf-editor para cambiar la configuración

El programa GUI dconf-editorse instala con el paquete dconf-tools haciendo clic aquí o ejecutando

sudo apt-get install dconf-tools

A continuación, ejecutarlo mediante la introducción en el terminal o en el menú de inicio rápido, dconf-editor.

Como puede ver en la captura de pantalla, todos los diversos esquemas se pueden expandir en el lado izquierdo y seleccionar la clave adecuada. Es muy sencillo navegar hasta el valor que desea (en este caso, las gnome-mplayerpreferencias). Puede hacer clic en la casilla de verificación para activar un valor o agregar un valor numérico en una de las otras casillas. También puede buscar dentro del editor dconf con Ctrl+ Fatajo de teclado.

ingrese la descripción de la imagen aquí

También puede agregar otro registro al log-vieweragregar una ruta en el formulario ['/var/log/auth.log', var .... '] en la captura de pantalla a continuación.

ingrese la descripción de la imagen aquí

Conclusión

Hay muchas otras formas útiles en las que puede modificar la configuración con ambos gsettingsy dconf-editorson fáciles de usar. Vale la pena mirarlos para ver si hay opciones allí que no están en las preferencias de los programas, ya que puede personalizar su programa de la manera que desee. Como fossfreedom mostró recientemente en esta pregunta

saber usar gsettingso dconf-editores extremadamente valioso. Ver también:


55
Dado que los programas gsettingsy el dconf-editortrabajo tanto en la dconfbase de datos, ¿por qué no muestran la misma información? gsettingel 12.04 muestra valores para el esquema com.canonical.Unity.Launchery la clave, favoritespero dconf-editorni siquiera ofrece ni com.canonical.Unitymucho menos el esquema completo o la clave.
AH

@AH: buena pregunta. Lo he preguntado aquí: askubuntu.com/q/243409/2355
Flimm

@AH Siento haber olvidado responder tu comentario: no puedo comentar sobre Unity porque estoy en Xubuntu, pero Flimm ha hecho una pregunta por separado que debería obtener algunas buenas respuestas.

44
Pero, ¿qué demonios hace que dconf sea incompatible con Qt, un kit de herramientas GUI?
Salman von Abbas

En RHEL / CentOS, use yum install dconf-editorpara instalar la herramienta GUI.
Mark Edington

26

Para aquellos que vienen de Windows que quieren una respuesta simple, dconf es el equivalente de gnome al registro de Windows ... un gran árbol binario donde cualquier programa puede almacenar y compartir su configuración.

Primero migraron de las configuraciones tradicionales de Unix (un archivo de texto para cada aplicación, cada una con su propio formato) a un árbol estándar de archivos XML, administrado por gconf. En los últimos tiempos, como casi nadie editó esos archivos XML directamente y los problemas de rendimiento de leer y analizar MUCHOS archivos, migraron a un formato binario al migrar de gconf a dconf.

A diferencia del registro de Windows, dconf debe tener todas las entradas de configuración enumeradas, incluso si están configuradas con los valores predeterminados. Por lo tanto, no hay entradas ocultas, puede cambiarlas o restablecerlas por defecto fácilmente.


10

dconf no es específico de Ubuntu, es la tecnología GNOME utilizada para almacenar la configuración de la aplicación. Para más detalles, lea http://live.gnome.org/dconf


¿Cuál es la relación entre dconf y gconf?
psusi

10
dconf es el reemplazo de GNOME3 para gconf que no se ha mantenido por algún tiempo. También se espera que dconf traiga mejoras de rendimiento sobre gconf (relevante para el inicio de aplicaciones).
João Pinto

1
La pregunta en el comentario anterior de psusi se responde parcialmente en las respuestas a la pregunta " ¿Por qué la controversia sobre dconf y gconf? ". Estoy seguro de que psusi lo sabe, después de haber comentado la pregunta, pero en caso de que alguien más quiera saber más, ahí está.
Pluma de fuego
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.